@spotlightjs/spotlight 4.9.0 → 4.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_commonjsHelpers.js +3 -4
- package/dist/_virtual/additionalItems.js +2 -2
- package/dist/_virtual/additionalProperties.js +2 -2
- package/dist/_virtual/ajv.js +2 -2
- package/dist/_virtual/allOf.js +2 -2
- package/dist/_virtual/anyOf.js +2 -2
- package/dist/_virtual/applicability.js +2 -2
- package/dist/_virtual/boolSchema.js +2 -2
- package/dist/_virtual/code.js +2 -2
- package/dist/_virtual/code2.js +2 -2
- package/dist/_virtual/const.js +2 -2
- package/dist/_virtual/contains.js +2 -2
- package/dist/_virtual/core.js +2 -2
- package/dist/_virtual/dataType.js +2 -2
- package/dist/_virtual/defaults.js +2 -2
- package/dist/_virtual/dependencies.js +2 -2
- package/dist/_virtual/draft7.js +2 -2
- package/dist/_virtual/enum.js +2 -2
- package/dist/_virtual/equal.js +2 -2
- package/dist/_virtual/errors.js +2 -2
- package/dist/_virtual/format.js +2 -2
- package/dist/_virtual/formats.js +2 -2
- package/dist/_virtual/id.js +2 -2
- package/dist/_virtual/if.js +2 -2
- package/dist/_virtual/index.js +2 -2
- package/dist/_virtual/index10.js +2 -2
- package/dist/_virtual/index11.js +2 -2
- package/dist/_virtual/index2.js +2 -2
- package/dist/_virtual/index3.js +2 -2
- package/dist/_virtual/index4.js +2 -2
- package/dist/_virtual/index5.js +2 -2
- package/dist/_virtual/index6.js +2 -2
- package/dist/_virtual/index7.js +2 -2
- package/dist/_virtual/index8.js +2 -2
- package/dist/_virtual/index9.js +2 -2
- package/dist/_virtual/items.js +2 -2
- package/dist/_virtual/items2020.js +2 -2
- package/dist/_virtual/keyword.js +2 -2
- package/dist/_virtual/limit.js +2 -2
- package/dist/_virtual/limitItems.js +2 -2
- package/dist/_virtual/limitLength.js +2 -2
- package/dist/_virtual/limitNumber.js +2 -2
- package/dist/_virtual/limitProperties.js +2 -2
- package/dist/_virtual/metadata.js +2 -2
- package/dist/_virtual/multipleOf.js +2 -2
- package/dist/_virtual/names.js +2 -2
- package/dist/_virtual/not.js +2 -2
- package/dist/_virtual/oneOf.js +2 -2
- package/dist/_virtual/pattern.js +2 -2
- package/dist/_virtual/patternProperties.js +2 -2
- package/dist/_virtual/prefixItems.js +2 -2
- package/dist/_virtual/properties.js +2 -2
- package/dist/_virtual/propertyNames.js +2 -2
- package/dist/_virtual/ref.js +2 -2
- package/dist/_virtual/ref_error.js +2 -2
- package/dist/_virtual/required.js +2 -2
- package/dist/_virtual/resolve.js +2 -2
- package/dist/_virtual/rules.js +2 -2
- package/dist/_virtual/scope.js +2 -2
- package/dist/_virtual/subschema.js +2 -2
- package/dist/_virtual/thenElse.js +2 -2
- package/dist/_virtual/types.js +2 -2
- package/dist/_virtual/ucs2length.js +2 -2
- package/dist/_virtual/uniqueItems.js +2 -2
- package/dist/_virtual/uri.js +2 -2
- package/dist/_virtual/util.js +2 -2
- package/dist/_virtual/validation_error.js +2 -2
- package/dist/instrument.js +7 -4
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js +109 -40
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/client.js +4 -5
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/client.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js +6 -8
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js +2 -2
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js +2 -2
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js +2 -2
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +4 -4
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +23 -36
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +25 -12
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js +7 -10
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +11 -21
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +10 -11
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +75 -91
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js +2 -2
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js +2 -2
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +171 -113
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
- package/dist/node_modules/.pnpm/{@modelcontextprotocol_sdk@1.24.3_zod@4.1.13 → @modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13}/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +7 -8
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.25.2_hono@4.10.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.17.1/node_modules/ajv-formats/dist/formats.js +10 -11
- package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.17.1/node_modules/ajv-formats/dist/formats.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.17.1/node_modules/ajv-formats/dist/index.js +8 -8
- package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.17.1/node_modules/ajv-formats/dist/index.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.17.1/node_modules/ajv-formats/dist/limit.js +9 -10
- package/dist/node_modules/.pnpm/ajv-formats@3.0.1_ajv@8.17.1/node_modules/ajv-formats/dist/limit.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/ajv.js +25 -23
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/ajv.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/code.js +23 -24
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/code.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/index.js +26 -27
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/index.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/scope.js +12 -13
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/errors.js +14 -15
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/errors.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/index.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/index.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/names.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/names.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/ref_error.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/ref_error.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/resolve.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/resolve.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/rules.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/rules.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/util.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/util.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/applicability.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/boolSchema.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/dataType.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/defaults.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/index.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/index.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/keyword.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/subschema.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/core.js +14 -15
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/core.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/refs/data.json.js +2 -2
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +2 -2
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/equal.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/equal.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/ucs2length.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/uri.js +4 -5
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/uri.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/validation_error.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/validation_error.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/allOf.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/contains.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +11 -12
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/if.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/index.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/items.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/items2020.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/not.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/properties.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/code.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/code.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/core/id.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/core/index.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/core/ref.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/index.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/types.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/draft7.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/format/format.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/format/index.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/metadata.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/const.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/enum.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/index.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitItems.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitLength.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/pattern.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/required.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -1
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +3 -4
- package/dist/node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -1
- package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +3 -4
- package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js.map +1 -1
- package/dist/node_modules/.pnpm/{fast-uri@3.0.2 → fast-uri@3.1.0}/node_modules/fast-uri/index.js +57 -60
- package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/index.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js +197 -0
- package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js +261 -0
- package/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js.map +1 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/helper/streaming/sse.js +2 -2
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/middleware/cors/index.js +2 -2
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/middleware/cors/index.js.map +1 -1
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/html.js +2 -2
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/html.js.map +1 -1
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/stream.js +2 -2
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/stream.js.map +1 -1
- package/dist/node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js +3 -4
- package/dist/node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/Options.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/Options.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/Refs.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parseDef.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/selectParser.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +1 -1
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +2 -2
- package/dist/node_modules/.pnpm/{zod-to-json-schema@3.25.0_zod@4.1.13 → zod-to-json-schema@3.25.1_zod@4.1.13}/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +1 -1
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v3/ZodError.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v3/errors.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v3/helpers/errorUtil.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v3/helpers/parseUtil.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v3/helpers/util.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v3/locales/en.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v3/types.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/classic/errors.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/classic/iso.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/classic/parse.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/classic/schemas.js +4 -4
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/classic/schemas.js.map +1 -1
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/api.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/checks.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/core.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/core.js.map +1 -1
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/doc.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/errors.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/parse.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/regexes.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/registries.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/schemas.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/to-json-schema.js +3 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/to-json-schema.js.map +1 -1
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/util.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/util.js.map +1 -1
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/versions.js +2 -2
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/core/versions.js.map +1 -1
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/mini/schemas.js +4 -4
- package/dist/node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/mini/schemas.js.map +1 -1
- package/dist/run.js +5 -6
- package/dist/sentry-config.js +5 -5
- package/dist/server/cli/help.js +3 -4
- package/dist/server/cli/mcp.js +5 -6
- package/dist/server/cli/run.js +4 -5
- package/dist/server/cli/server.js +24 -16
- package/dist/server/cli/tail.js +15 -6
- package/dist/server/cli.js +4 -5
- package/dist/server/constants.js +3 -4
- package/dist/server/formatters/human/errors.js +3 -4
- package/dist/server/formatters/human/index.js +3 -4
- package/dist/server/formatters/human/logs.js +3 -4
- package/dist/server/formatters/human/traces.js +3 -4
- package/dist/server/formatters/human/utils.d.ts +8 -4
- package/dist/server/formatters/human/utils.js +29 -17
- package/dist/server/formatters/index.js +4 -5
- package/dist/server/formatters/json/errors.js +3 -4
- package/dist/server/formatters/json/index.js +3 -4
- package/dist/server/formatters/json/logs.js +3 -4
- package/dist/server/formatters/json/traces.js +3 -4
- package/dist/server/formatters/logfmt/errors.js +3 -4
- package/dist/server/formatters/logfmt/index.js +3 -4
- package/dist/server/formatters/logfmt/logs.js +3 -4
- package/dist/server/formatters/logfmt/traces.js +3 -4
- package/dist/server/formatters/md/errors.js +7 -4
- package/dist/server/formatters/md/event.js +3 -4
- package/dist/server/formatters/md/index.js +3 -4
- package/dist/server/formatters/md/logs.js +7 -4
- package/dist/server/formatters/md/traces.js +3 -4
- package/dist/server/formatters/shared/data-builders.js +3 -4
- package/dist/server/formatters/types.js +3 -4
- package/dist/server/formatters/utils.js +3 -4
- package/dist/server/handlers/fileToServe.js +3 -4
- package/dist/server/logger.js +3 -4
- package/dist/server/main.d.ts +3 -0
- package/dist/server/main.js +21 -10
- package/dist/server/mcp/constants.js +3 -4
- package/dist/server/mcp/mcp.js +6 -6
- package/dist/server/messageBuffer.js +9 -4
- package/dist/server/parser/helpers.js +3 -4
- package/dist/server/parser/processEnvelope.d.ts +10 -3
- package/dist/server/parser/processEnvelope.js +10 -4
- package/dist/server/routes/clear.js +4 -4
- package/dist/server/routes/contextlines/index.js +3 -4
- package/dist/server/routes/contextlines/utils.js +3 -4
- package/dist/server/routes/health.js +3 -4
- package/dist/server/routes/index.js +3 -4
- package/dist/server/routes/mcp.js +3 -4
- package/dist/server/routes/open.js +3 -4
- package/dist/server/routes/stream/debugLogging.js +4 -4
- package/dist/server/routes/stream/index.js +4 -4
- package/dist/server/routes/stream/streaming.js +3 -4
- package/dist/server/routes/stream/userAgent.js +3 -4
- package/dist/server/sdk.d.ts +1 -1
- package/dist/server/sdk.js +5 -6
- package/dist/server/utils/cors.js +3 -4
- package/dist/server/utils/docker-compose-parser.js +3 -4
- package/dist/server/utils/docker-compose.js +3 -4
- package/dist/server/utils/eventContainer.d.ts +2 -1
- package/dist/server/utils/eventContainer.js +4 -4
- package/dist/server/utils/extras.js +3 -4
- package/dist/server/utils/getBuffer.js +3 -4
- package/dist/shared/constants.js +3 -4
- package/dist/ui/assets/index.js +61 -57
- package/dist/ui/assets/index2.js +1 -1
- package/dist/ui/assets/instrumentation.js +18 -19
- package/dist/ui/assets/main.css +1 -1
- package/dist/ui/assets/main.js +1 -1
- package/dist/ui/assets/serverTimingMeta.js +16 -15
- package/dist/ui/index.html +0 -28
- package/dist/ui/manifest.json +3 -7
- package/package.json +9 -9
- package/dist/_virtual/_commonjsHelpers.js.map +0 -1
- package/dist/_virtual/_sentry-release-injection-file.js +0 -11
- package/dist/_virtual/_sentry-release-injection-file.js.map +0 -1
- package/dist/_virtual/additionalItems.js.map +0 -1
- package/dist/_virtual/additionalProperties.js.map +0 -1
- package/dist/_virtual/ajv.js.map +0 -1
- package/dist/_virtual/allOf.js.map +0 -1
- package/dist/_virtual/anyOf.js.map +0 -1
- package/dist/_virtual/applicability.js.map +0 -1
- package/dist/_virtual/boolSchema.js.map +0 -1
- package/dist/_virtual/code.js.map +0 -1
- package/dist/_virtual/code2.js.map +0 -1
- package/dist/_virtual/const.js.map +0 -1
- package/dist/_virtual/contains.js.map +0 -1
- package/dist/_virtual/core.js.map +0 -1
- package/dist/_virtual/dataType.js.map +0 -1
- package/dist/_virtual/defaults.js.map +0 -1
- package/dist/_virtual/dependencies.js.map +0 -1
- package/dist/_virtual/draft7.js.map +0 -1
- package/dist/_virtual/enum.js.map +0 -1
- package/dist/_virtual/equal.js.map +0 -1
- package/dist/_virtual/errors.js.map +0 -1
- package/dist/_virtual/format.js.map +0 -1
- package/dist/_virtual/formats.js.map +0 -1
- package/dist/_virtual/id.js.map +0 -1
- package/dist/_virtual/if.js.map +0 -1
- package/dist/_virtual/index.js.map +0 -1
- package/dist/_virtual/index10.js.map +0 -1
- package/dist/_virtual/index11.js.map +0 -1
- package/dist/_virtual/index2.js.map +0 -1
- package/dist/_virtual/index3.js.map +0 -1
- package/dist/_virtual/index4.js.map +0 -1
- package/dist/_virtual/index5.js.map +0 -1
- package/dist/_virtual/index6.js.map +0 -1
- package/dist/_virtual/index7.js.map +0 -1
- package/dist/_virtual/index8.js.map +0 -1
- package/dist/_virtual/index9.js.map +0 -1
- package/dist/_virtual/items.js.map +0 -1
- package/dist/_virtual/items2020.js.map +0 -1
- package/dist/_virtual/keyword.js.map +0 -1
- package/dist/_virtual/limit.js.map +0 -1
- package/dist/_virtual/limitItems.js.map +0 -1
- package/dist/_virtual/limitLength.js.map +0 -1
- package/dist/_virtual/limitNumber.js.map +0 -1
- package/dist/_virtual/limitProperties.js.map +0 -1
- package/dist/_virtual/metadata.js.map +0 -1
- package/dist/_virtual/multipleOf.js.map +0 -1
- package/dist/_virtual/names.js.map +0 -1
- package/dist/_virtual/not.js.map +0 -1
- package/dist/_virtual/oneOf.js.map +0 -1
- package/dist/_virtual/pattern.js.map +0 -1
- package/dist/_virtual/patternProperties.js.map +0 -1
- package/dist/_virtual/prefixItems.js.map +0 -1
- package/dist/_virtual/properties.js.map +0 -1
- package/dist/_virtual/propertyNames.js.map +0 -1
- package/dist/_virtual/ref.js.map +0 -1
- package/dist/_virtual/ref_error.js.map +0 -1
- package/dist/_virtual/required.js.map +0 -1
- package/dist/_virtual/resolve.js.map +0 -1
- package/dist/_virtual/rules.js.map +0 -1
- package/dist/_virtual/scope.js.map +0 -1
- package/dist/_virtual/subschema.js.map +0 -1
- package/dist/_virtual/thenElse.js.map +0 -1
- package/dist/_virtual/types.js.map +0 -1
- package/dist/_virtual/ucs2length.js.map +0 -1
- package/dist/_virtual/uniqueItems.js.map +0 -1
- package/dist/_virtual/uri.js.map +0 -1
- package/dist/_virtual/util.js.map +0 -1
- package/dist/_virtual/validation_error.js.map +0 -1
- package/dist/instrument.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/client.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +0 -1
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.24.3_zod@4.1.13/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +0 -1
- package/dist/node_modules/.pnpm/fast-uri@3.0.2/node_modules/fast-uri/index.js.map +0 -1
- package/dist/node_modules/.pnpm/fast-uri@3.0.2/node_modules/fast-uri/lib/schemes.js +0 -152
- package/dist/node_modules/.pnpm/fast-uri@3.0.2/node_modules/fast-uri/lib/schemes.js.map +0 -1
- package/dist/node_modules/.pnpm/fast-uri@3.0.2/node_modules/fast-uri/lib/scopedChars.js +0 -40
- package/dist/node_modules/.pnpm/fast-uri@3.0.2/node_modules/fast-uri/lib/scopedChars.js.map +0 -1
- package/dist/node_modules/.pnpm/fast-uri@3.0.2/node_modules/fast-uri/lib/utils.js +0 -236
- package/dist/node_modules/.pnpm/fast-uri@3.0.2/node_modules/fast-uri/lib/utils.js.map +0 -1
- package/dist/run.js.map +0 -1
- package/dist/sentry-config.js.map +0 -1
- package/dist/server/cli/help.js.map +0 -1
- package/dist/server/cli/mcp.js.map +0 -1
- package/dist/server/cli/run.js.map +0 -1
- package/dist/server/cli/server.js.map +0 -1
- package/dist/server/cli/tail.js.map +0 -1
- package/dist/server/cli.js.map +0 -1
- package/dist/server/constants.js.map +0 -1
- package/dist/server/formatters/human/errors.js.map +0 -1
- package/dist/server/formatters/human/index.js.map +0 -1
- package/dist/server/formatters/human/logs.js.map +0 -1
- package/dist/server/formatters/human/traces.js.map +0 -1
- package/dist/server/formatters/human/utils.js.map +0 -1
- package/dist/server/formatters/index.js.map +0 -1
- package/dist/server/formatters/json/errors.js.map +0 -1
- package/dist/server/formatters/json/index.js.map +0 -1
- package/dist/server/formatters/json/logs.js.map +0 -1
- package/dist/server/formatters/json/traces.js.map +0 -1
- package/dist/server/formatters/logfmt/errors.js.map +0 -1
- package/dist/server/formatters/logfmt/index.js.map +0 -1
- package/dist/server/formatters/logfmt/logs.js.map +0 -1
- package/dist/server/formatters/logfmt/traces.js.map +0 -1
- package/dist/server/formatters/md/errors.js.map +0 -1
- package/dist/server/formatters/md/event.js.map +0 -1
- package/dist/server/formatters/md/index.js.map +0 -1
- package/dist/server/formatters/md/logs.js.map +0 -1
- package/dist/server/formatters/md/traces.js.map +0 -1
- package/dist/server/formatters/shared/data-builders.js.map +0 -1
- package/dist/server/formatters/types.js.map +0 -1
- package/dist/server/formatters/utils.js.map +0 -1
- package/dist/server/handlers/fileToServe.js.map +0 -1
- package/dist/server/logger.js.map +0 -1
- package/dist/server/main.js.map +0 -1
- package/dist/server/mcp/constants.js.map +0 -1
- package/dist/server/mcp/mcp.js.map +0 -1
- package/dist/server/messageBuffer.js.map +0 -1
- package/dist/server/parser/helpers.js.map +0 -1
- package/dist/server/parser/processEnvelope.js.map +0 -1
- package/dist/server/routes/clear.js.map +0 -1
- package/dist/server/routes/contextlines/index.js.map +0 -1
- package/dist/server/routes/contextlines/utils.js.map +0 -1
- package/dist/server/routes/health.js.map +0 -1
- package/dist/server/routes/index.js.map +0 -1
- package/dist/server/routes/mcp.js.map +0 -1
- package/dist/server/routes/open.js.map +0 -1
- package/dist/server/routes/stream/debugLogging.js.map +0 -1
- package/dist/server/routes/stream/index.js.map +0 -1
- package/dist/server/routes/stream/streaming.js.map +0 -1
- package/dist/server/routes/stream/userAgent.js.map +0 -1
- package/dist/server/sdk.js.map +0 -1
- package/dist/server/utils/cors.js.map +0 -1
- package/dist/server/utils/docker-compose-parser.js.map +0 -1
- package/dist/server/utils/docker-compose.js.map +0 -1
- package/dist/server/utils/eventContainer.js.map +0 -1
- package/dist/server/utils/extras.js.map +0 -1
- package/dist/server/utils/getBuffer.js.map +0 -1
- package/dist/shared/constants.js.map +0 -1
- package/dist/ui/assets/andromeeda.js.map +0 -1
- package/dist/ui/assets/angular-html.js.map +0 -1
- package/dist/ui/assets/angular-ts.js.map +0 -1
- package/dist/ui/assets/astro.js.map +0 -1
- package/dist/ui/assets/aurora-x.js.map +0 -1
- package/dist/ui/assets/ayu-dark.js.map +0 -1
- package/dist/ui/assets/blade.js.map +0 -1
- package/dist/ui/assets/c.js.map +0 -1
- package/dist/ui/assets/catppuccin-frappe.js.map +0 -1
- package/dist/ui/assets/catppuccin-latte.js.map +0 -1
- package/dist/ui/assets/catppuccin-macchiato.js.map +0 -1
- package/dist/ui/assets/catppuccin-mocha.js.map +0 -1
- package/dist/ui/assets/coffee.js.map +0 -1
- package/dist/ui/assets/cpp.js.map +0 -1
- package/dist/ui/assets/css.js.map +0 -1
- package/dist/ui/assets/dark-plus.js.map +0 -1
- package/dist/ui/assets/dracula-soft.js.map +0 -1
- package/dist/ui/assets/dracula.js.map +0 -1
- package/dist/ui/assets/everforest-dark.js.map +0 -1
- package/dist/ui/assets/everforest-light.js.map +0 -1
- package/dist/ui/assets/github-dark-default.js.map +0 -1
- package/dist/ui/assets/github-dark-dimmed.js.map +0 -1
- package/dist/ui/assets/github-dark-high-contrast.js.map +0 -1
- package/dist/ui/assets/github-dark.js.map +0 -1
- package/dist/ui/assets/github-light-default.js.map +0 -1
- package/dist/ui/assets/github-light-high-contrast.js.map +0 -1
- package/dist/ui/assets/github-light.js.map +0 -1
- package/dist/ui/assets/glsl.js.map +0 -1
- package/dist/ui/assets/graphql.js.map +0 -1
- package/dist/ui/assets/gruvbox-dark-hard.js.map +0 -1
- package/dist/ui/assets/gruvbox-dark-medium.js.map +0 -1
- package/dist/ui/assets/gruvbox-dark-soft.js.map +0 -1
- package/dist/ui/assets/gruvbox-light-hard.js.map +0 -1
- package/dist/ui/assets/gruvbox-light-medium.js.map +0 -1
- package/dist/ui/assets/gruvbox-light-soft.js.map +0 -1
- package/dist/ui/assets/haml.js.map +0 -1
- package/dist/ui/assets/handlebars.js.map +0 -1
- package/dist/ui/assets/houston.js.map +0 -1
- package/dist/ui/assets/html-derivative.js.map +0 -1
- package/dist/ui/assets/html.js.map +0 -1
- package/dist/ui/assets/http.js.map +0 -1
- package/dist/ui/assets/imba.js.map +0 -1
- package/dist/ui/assets/index.js.map +0 -1
- package/dist/ui/assets/index2.js.map +0 -1
- package/dist/ui/assets/instrumentation.js.map +0 -1
- package/dist/ui/assets/java.js.map +0 -1
- package/dist/ui/assets/javascript.js.map +0 -1
- package/dist/ui/assets/jinja.js.map +0 -1
- package/dist/ui/assets/jison.js.map +0 -1
- package/dist/ui/assets/json.js.map +0 -1
- package/dist/ui/assets/json5.js.map +0 -1
- package/dist/ui/assets/jsonc.js.map +0 -1
- package/dist/ui/assets/jsonl.js.map +0 -1
- package/dist/ui/assets/jsx.js.map +0 -1
- package/dist/ui/assets/julia.js.map +0 -1
- package/dist/ui/assets/kanagawa-dragon.js.map +0 -1
- package/dist/ui/assets/kanagawa-lotus.js.map +0 -1
- package/dist/ui/assets/kanagawa-wave.js.map +0 -1
- package/dist/ui/assets/laserwave.js.map +0 -1
- package/dist/ui/assets/less.js.map +0 -1
- package/dist/ui/assets/light-plus.js.map +0 -1
- package/dist/ui/assets/main.js.map +0 -1
- package/dist/ui/assets/markdown.js.map +0 -1
- package/dist/ui/assets/marko.js.map +0 -1
- package/dist/ui/assets/material-theme-darker.js.map +0 -1
- package/dist/ui/assets/material-theme-lighter.js.map +0 -1
- package/dist/ui/assets/material-theme-ocean.js.map +0 -1
- package/dist/ui/assets/material-theme-palenight.js.map +0 -1
- package/dist/ui/assets/material-theme.js.map +0 -1
- package/dist/ui/assets/mdc.js.map +0 -1
- package/dist/ui/assets/mdx.js.map +0 -1
- package/dist/ui/assets/min-dark.js.map +0 -1
- package/dist/ui/assets/min-light.js.map +0 -1
- package/dist/ui/assets/monokai.js.map +0 -1
- package/dist/ui/assets/night-owl.js.map +0 -1
- package/dist/ui/assets/nord.js.map +0 -1
- package/dist/ui/assets/one-dark-pro.js.map +0 -1
- package/dist/ui/assets/one-light.js.map +0 -1
- package/dist/ui/assets/php.js.map +0 -1
- package/dist/ui/assets/plastic.js.map +0 -1
- package/dist/ui/assets/poimandres.js.map +0 -1
- package/dist/ui/assets/postcss.js.map +0 -1
- package/dist/ui/assets/pug.js.map +0 -1
- package/dist/ui/assets/python.js.map +0 -1
- package/dist/ui/assets/r.js.map +0 -1
- package/dist/ui/assets/red.js.map +0 -1
- package/dist/ui/assets/regexp.js.map +0 -1
- package/dist/ui/assets/rose-pine-dawn.js.map +0 -1
- package/dist/ui/assets/rose-pine-moon.js.map +0 -1
- package/dist/ui/assets/rose-pine.js.map +0 -1
- package/dist/ui/assets/sass.js.map +0 -1
- package/dist/ui/assets/scss.js.map +0 -1
- package/dist/ui/assets/serverTimingMeta.js.map +0 -1
- package/dist/ui/assets/shellscript.js.map +0 -1
- package/dist/ui/assets/slack-dark.js.map +0 -1
- package/dist/ui/assets/slack-ochin.js.map +0 -1
- package/dist/ui/assets/snazzy-light.js.map +0 -1
- package/dist/ui/assets/solarized-dark.js.map +0 -1
- package/dist/ui/assets/solarized-light.js.map +0 -1
- package/dist/ui/assets/sql.js.map +0 -1
- package/dist/ui/assets/stylus.js.map +0 -1
- package/dist/ui/assets/svelte.js.map +0 -1
- package/dist/ui/assets/synthwave-84.js.map +0 -1
- package/dist/ui/assets/tokyo-night.js.map +0 -1
- package/dist/ui/assets/ts-tags.js.map +0 -1
- package/dist/ui/assets/tsx.js.map +0 -1
- package/dist/ui/assets/typescript.js.map +0 -1
- package/dist/ui/assets/vesper.js.map +0 -1
- package/dist/ui/assets/vitesse-black.js.map +0 -1
- package/dist/ui/assets/vitesse-dark.js.map +0 -1
- package/dist/ui/assets/vitesse-light.js.map +0 -1
- package/dist/ui/assets/vue-html.js.map +0 -1
- package/dist/ui/assets/vue-vine.js.map +0 -1
- package/dist/ui/assets/vue.js.map +0 -1
- package/dist/ui/assets/wasm.js.map +0 -1
- package/dist/ui/assets/wasm2.js.map +0 -1
- package/dist/ui/assets/wgsl.js.map +0 -1
- package/dist/ui/assets/wit.js.map +0 -1
- package/dist/ui/assets/xml.js.map +0 -1
- package/dist/ui/assets/yaml.js.map +0 -1
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
;
|
|
2
|
-
!function() {
|
|
3
|
-
try {
|
|
4
|
-
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
5
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "776c02c6-6edf-45df-81f9-baef4febe445", e._sentryDebugIdIdentifier = "sentry-dbid-776c02c6-6edf-45df-81f9-baef4febe445");
|
|
6
|
-
} catch (e2) {
|
|
7
|
-
}
|
|
8
|
-
}();
|
|
9
|
-
import "../../../../../../_virtual/_sentry-release-injection-file.js";
|
|
10
|
-
import { s as scopedChars } from "./scopedChars.js";
|
|
11
|
-
const { HEX } = scopedChars;
|
|
12
|
-
function normalizeIPv4(host) {
|
|
13
|
-
if (findToken(host, ".") < 3) {
|
|
14
|
-
return { host, isIPV4: false };
|
|
15
|
-
}
|
|
16
|
-
const matches = host.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u) || [];
|
|
17
|
-
const [address] = matches;
|
|
18
|
-
if (address) {
|
|
19
|
-
return { host: stripLeadingZeros(address, "."), isIPV4: true };
|
|
20
|
-
} else {
|
|
21
|
-
return { host, isIPV4: false };
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
function stringArrayToHexStripped(input, keepZero = false) {
|
|
25
|
-
let acc = "";
|
|
26
|
-
let strip = true;
|
|
27
|
-
for (const c of input) {
|
|
28
|
-
if (HEX[c] === void 0) return void 0;
|
|
29
|
-
if (c !== "0" && strip === true) strip = false;
|
|
30
|
-
if (!strip) acc += c;
|
|
31
|
-
}
|
|
32
|
-
if (keepZero && acc.length === 0) acc = "0";
|
|
33
|
-
return acc;
|
|
34
|
-
}
|
|
35
|
-
function getIPV6(input) {
|
|
36
|
-
let tokenCount = 0;
|
|
37
|
-
const output = { error: false, address: "", zone: "" };
|
|
38
|
-
const address = [];
|
|
39
|
-
const buffer = [];
|
|
40
|
-
let isZone = false;
|
|
41
|
-
let endipv6Encountered = false;
|
|
42
|
-
let endIpv6 = false;
|
|
43
|
-
function consume() {
|
|
44
|
-
if (buffer.length) {
|
|
45
|
-
if (isZone === false) {
|
|
46
|
-
const hex = stringArrayToHexStripped(buffer);
|
|
47
|
-
if (hex !== void 0) {
|
|
48
|
-
address.push(hex);
|
|
49
|
-
} else {
|
|
50
|
-
output.error = true;
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
buffer.length = 0;
|
|
55
|
-
}
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
for (let i = 0; i < input.length; i++) {
|
|
59
|
-
const cursor = input[i];
|
|
60
|
-
if (cursor === "[" || cursor === "]") {
|
|
61
|
-
continue;
|
|
62
|
-
}
|
|
63
|
-
if (cursor === ":") {
|
|
64
|
-
if (endipv6Encountered === true) {
|
|
65
|
-
endIpv6 = true;
|
|
66
|
-
}
|
|
67
|
-
if (!consume()) {
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
tokenCount++;
|
|
71
|
-
address.push(":");
|
|
72
|
-
if (tokenCount > 7) {
|
|
73
|
-
output.error = true;
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
if (i - 1 >= 0 && input[i - 1] === ":") {
|
|
77
|
-
endipv6Encountered = true;
|
|
78
|
-
}
|
|
79
|
-
continue;
|
|
80
|
-
} else if (cursor === "%") {
|
|
81
|
-
if (!consume()) {
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
isZone = true;
|
|
85
|
-
} else {
|
|
86
|
-
buffer.push(cursor);
|
|
87
|
-
continue;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
if (buffer.length) {
|
|
91
|
-
if (isZone) {
|
|
92
|
-
output.zone = buffer.join("");
|
|
93
|
-
} else if (endIpv6) {
|
|
94
|
-
address.push(buffer.join(""));
|
|
95
|
-
} else {
|
|
96
|
-
address.push(stringArrayToHexStripped(buffer));
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
output.address = address.join("");
|
|
100
|
-
return output;
|
|
101
|
-
}
|
|
102
|
-
function normalizeIPv6(host, opts = {}) {
|
|
103
|
-
if (findToken(host, ":") < 2) {
|
|
104
|
-
return { host, isIPV6: false };
|
|
105
|
-
}
|
|
106
|
-
const ipv6 = getIPV6(host);
|
|
107
|
-
if (!ipv6.error) {
|
|
108
|
-
let newHost = ipv6.address;
|
|
109
|
-
let escapedHost = ipv6.address;
|
|
110
|
-
if (ipv6.zone) {
|
|
111
|
-
newHost += "%" + ipv6.zone;
|
|
112
|
-
escapedHost += "%25" + ipv6.zone;
|
|
113
|
-
}
|
|
114
|
-
return { host: newHost, escapedHost, isIPV6: true };
|
|
115
|
-
} else {
|
|
116
|
-
return { host, isIPV6: false };
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
function stripLeadingZeros(str, token) {
|
|
120
|
-
let out = "";
|
|
121
|
-
let skip = true;
|
|
122
|
-
const l = str.length;
|
|
123
|
-
for (let i = 0; i < l; i++) {
|
|
124
|
-
const c = str[i];
|
|
125
|
-
if (c === "0" && skip) {
|
|
126
|
-
if (i + 1 <= l && str[i + 1] === token || i + 1 === l) {
|
|
127
|
-
out += c;
|
|
128
|
-
skip = false;
|
|
129
|
-
}
|
|
130
|
-
} else {
|
|
131
|
-
if (c === token) {
|
|
132
|
-
skip = true;
|
|
133
|
-
} else {
|
|
134
|
-
skip = false;
|
|
135
|
-
}
|
|
136
|
-
out += c;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return out;
|
|
140
|
-
}
|
|
141
|
-
function findToken(str, token) {
|
|
142
|
-
let ind = 0;
|
|
143
|
-
for (let i = 0; i < str.length; i++) {
|
|
144
|
-
if (str[i] === token) ind++;
|
|
145
|
-
}
|
|
146
|
-
return ind;
|
|
147
|
-
}
|
|
148
|
-
const RDS1 = /^\.\.?\//u;
|
|
149
|
-
const RDS2 = /^\/\.(?:\/|$)/u;
|
|
150
|
-
const RDS3 = /^\/\.\.(?:\/|$)/u;
|
|
151
|
-
const RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/u;
|
|
152
|
-
function removeDotSegments(input) {
|
|
153
|
-
const output = [];
|
|
154
|
-
while (input.length) {
|
|
155
|
-
if (input.match(RDS1)) {
|
|
156
|
-
input = input.replace(RDS1, "");
|
|
157
|
-
} else if (input.match(RDS2)) {
|
|
158
|
-
input = input.replace(RDS2, "/");
|
|
159
|
-
} else if (input.match(RDS3)) {
|
|
160
|
-
input = input.replace(RDS3, "/");
|
|
161
|
-
output.pop();
|
|
162
|
-
} else if (input === "." || input === "..") {
|
|
163
|
-
input = "";
|
|
164
|
-
} else {
|
|
165
|
-
const im = input.match(RDS5);
|
|
166
|
-
if (im) {
|
|
167
|
-
const s = im[0];
|
|
168
|
-
input = input.slice(s.length);
|
|
169
|
-
output.push(s);
|
|
170
|
-
} else {
|
|
171
|
-
throw new Error("Unexpected dot segment condition");
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
return output.join("");
|
|
176
|
-
}
|
|
177
|
-
function normalizeComponentEncoding(components, esc) {
|
|
178
|
-
const func = esc !== true ? escape : unescape;
|
|
179
|
-
if (components.scheme !== void 0) {
|
|
180
|
-
components.scheme = func(components.scheme);
|
|
181
|
-
}
|
|
182
|
-
if (components.userinfo !== void 0) {
|
|
183
|
-
components.userinfo = func(components.userinfo);
|
|
184
|
-
}
|
|
185
|
-
if (components.host !== void 0) {
|
|
186
|
-
components.host = func(components.host);
|
|
187
|
-
}
|
|
188
|
-
if (components.path !== void 0) {
|
|
189
|
-
components.path = func(components.path);
|
|
190
|
-
}
|
|
191
|
-
if (components.query !== void 0) {
|
|
192
|
-
components.query = func(components.query);
|
|
193
|
-
}
|
|
194
|
-
if (components.fragment !== void 0) {
|
|
195
|
-
components.fragment = func(components.fragment);
|
|
196
|
-
}
|
|
197
|
-
return components;
|
|
198
|
-
}
|
|
199
|
-
function recomposeAuthority(components, options) {
|
|
200
|
-
const uriTokens = [];
|
|
201
|
-
if (components.userinfo !== void 0) {
|
|
202
|
-
uriTokens.push(components.userinfo);
|
|
203
|
-
uriTokens.push("@");
|
|
204
|
-
}
|
|
205
|
-
if (components.host !== void 0) {
|
|
206
|
-
let host = unescape(components.host);
|
|
207
|
-
const ipV4res = normalizeIPv4(host);
|
|
208
|
-
if (ipV4res.isIPV4) {
|
|
209
|
-
host = ipV4res.host;
|
|
210
|
-
} else {
|
|
211
|
-
const ipV6res = normalizeIPv6(ipV4res.host, {});
|
|
212
|
-
if (ipV6res.isIPV6 === true) {
|
|
213
|
-
host = `[${ipV6res.escapedHost}]`;
|
|
214
|
-
} else {
|
|
215
|
-
host = components.host;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
uriTokens.push(host);
|
|
219
|
-
}
|
|
220
|
-
if (typeof components.port === "number" || typeof components.port === "string") {
|
|
221
|
-
uriTokens.push(":");
|
|
222
|
-
uriTokens.push(String(components.port));
|
|
223
|
-
}
|
|
224
|
-
return uriTokens.length ? uriTokens.join("") : void 0;
|
|
225
|
-
}
|
|
226
|
-
var utils = {
|
|
227
|
-
recomposeAuthority,
|
|
228
|
-
normalizeComponentEncoding,
|
|
229
|
-
removeDotSegments,
|
|
230
|
-
normalizeIPv4,
|
|
231
|
-
normalizeIPv6
|
|
232
|
-
};
|
|
233
|
-
export {
|
|
234
|
-
utils as u
|
|
235
|
-
};
|
|
236
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../../../../node_modules/.pnpm/fast-uri@3.0.2/node_modules/fast-uri/lib/utils.js"],"sourcesContent":["'use strict'\n\nconst { HEX } = require('./scopedChars')\n\nfunction normalizeIPv4 (host) {\n if (findToken(host, '.') < 3) { return { host, isIPV4: false } }\n const matches = host.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u) || []\n const [address] = matches\n if (address) {\n return { host: stripLeadingZeros(address, '.'), isIPV4: true }\n } else {\n return { host, isIPV4: false }\n }\n}\n\n/**\n * @param {string[]} input\n * @param {boolean} [keepZero=false]\n * @returns {string|undefined}\n */\nfunction stringArrayToHexStripped (input, keepZero = false) {\n let acc = ''\n let strip = true\n for (const c of input) {\n if (HEX[c] === undefined) return undefined\n if (c !== '0' && strip === true) strip = false\n if (!strip) acc += c\n }\n if (keepZero && acc.length === 0) acc = '0'\n return acc\n}\n\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n const address = []\n const buffer = []\n let isZone = false\n let endipv6Encountered = false\n let endIpv6 = false\n\n function consume () {\n if (buffer.length) {\n if (isZone === false) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== undefined) {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n }\n buffer.length = 0\n }\n return true\n }\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume()) { break }\n tokenCount++\n address.push(':')\n if (tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i - 1 >= 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n continue\n } else if (cursor === '%') {\n if (!consume()) { break }\n // switch to zone detection\n isZone = true\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (isZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\nfunction normalizeIPv6 (host, opts = {}) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, escapedHost, isIPV6: true }\n } else {\n return { host, isIPV6: false }\n }\n}\n\nfunction stripLeadingZeros (str, token) {\n let out = ''\n let skip = true\n const l = str.length\n for (let i = 0; i < l; i++) {\n const c = str[i]\n if (c === '0' && skip) {\n if ((i + 1 <= l && str[i + 1] === token) || i + 1 === l) {\n out += c\n skip = false\n }\n } else {\n if (c === token) {\n skip = true\n } else {\n skip = false\n }\n out += c\n }\n }\n return out\n}\n\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\nconst RDS1 = /^\\.\\.?\\//u\nconst RDS2 = /^\\/\\.(?:\\/|$)/u\nconst RDS3 = /^\\/\\.\\.(?:\\/|$)/u\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/u\n\nfunction removeDotSegments (input) {\n const output = []\n\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, '')\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, '/')\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, '/')\n output.pop()\n } else if (input === '.' || input === '..') {\n input = ''\n } else {\n const im = input.match(RDS5)\n if (im) {\n const s = im[0]\n input = input.slice(s.length)\n output.push(s)\n } else {\n throw new Error('Unexpected dot segment condition')\n }\n }\n }\n return output.join('')\n}\n\nfunction normalizeComponentEncoding (components, esc) {\n const func = esc !== true ? escape : unescape\n if (components.scheme !== undefined) {\n components.scheme = func(components.scheme)\n }\n if (components.userinfo !== undefined) {\n components.userinfo = func(components.userinfo)\n }\n if (components.host !== undefined) {\n components.host = func(components.host)\n }\n if (components.path !== undefined) {\n components.path = func(components.path)\n }\n if (components.query !== undefined) {\n components.query = func(components.query)\n }\n if (components.fragment !== undefined) {\n components.fragment = func(components.fragment)\n }\n return components\n}\n\nfunction recomposeAuthority (components, options) {\n const uriTokens = []\n\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo)\n uriTokens.push('@')\n }\n\n if (components.host !== undefined) {\n let host = unescape(components.host)\n const ipV4res = normalizeIPv4(host)\n\n if (ipV4res.isIPV4) {\n host = ipV4res.host\n } else {\n const ipV6res = normalizeIPv6(ipV4res.host, { isIPV4: false })\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = components.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof components.port === 'number' || typeof components.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(components.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n normalizeIPv4,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n"],"names":["require$$0"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/run.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sources":["../src/run.ts"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport Module from \"node:module\";\nimport { join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { setContext, startSpan } from \"@sentry/node\";\nimport { main } from \"./server/cli.ts\";\nimport \"./instrument.ts\";\n\nconst require = Module.createRequire(import.meta.url);\nlet sea: any = null;\ntry {\n // This is to maintain compatibility with Node 20.11- as\n // the `node:sea` module is added in Node 20.12+\n sea = require(\"node:sea\");\n} catch {\n sea = { isSea: () => false };\n}\n\nconst homeDir = process.env.HOME || process.env.USERPROFILE;\nsetContext(\"CLI\", {\n sea: sea.isSea(),\n // TODO: Be less naive with path obscuring\n argv: homeDir ? process.argv.map(arg => arg.replace(homeDir, \"~\")) : process.argv,\n});\n\nconst withTracing = <T extends (...args: any[]) => any>(\n fn: T,\n spanArgs = {},\n): ((...args: Parameters<T>) => ReturnType<T>) => {\n return (...args: Parameters<T>): ReturnType<T> =>\n startSpan({ name: fn.name, attributes: { args }, ...spanArgs }, () => fn(...args));\n};\n\nconst readAsset = withTracing(\n sea.isSea()\n ? (name: string) => Buffer.from(sea.getRawAsset(name))\n : (() => {\n const ASSET_DIR = join(fileURLToPath(import.meta.url), \"../../dist/ui/\");\n\n return (name: string) => readFileSync(join(ASSET_DIR, name));\n })(),\n { name: \"readAsset\", op: \"cli.asset.read\" },\n);\n\nstartSpan({ name: \"Spotlight CLI\", op: \"cli\" }, async () => {\n await startSpan({ name: \"Setup Spotlight\", op: \"cli.setup\" }, async () => {\n const MANIFEST_NAME = \"manifest.json\";\n const ENTRY_POINT_NAME = \"index.html\";\n const filesToServe = Object.create(null);\n\n if (process.env.NODE_ENV === \"production\") {\n startSpan({ name: \"Setup Server Assets\", op: \"cli.setup.assets\" }, () => {\n // Following the guide here: https://vite.dev/guide/backend-integration.html\n const manifest = JSON.parse(readAsset(MANIFEST_NAME).toString());\n filesToServe[ENTRY_POINT_NAME] = readAsset(ENTRY_POINT_NAME);\n const entries = Object.values(manifest);\n for (const entry of entries) {\n if (entry && typeof entry === \"object\" && \"file\" in entry && typeof entry.file === \"string\") {\n filesToServe[entry.file] = readAsset(entry.file);\n }\n }\n });\n }\n\n await main({\n basePath: process.cwd(),\n filesToServe,\n });\n });\n});\n"],"names":["require"],"mappings":";;;;;;;;;;;;;;;;AAQA,MAAMA,WAAU,OAAO,cAAc,YAAY,GAAG;AACpD,IAAI,MAAW;AACf,IAAI;AAGF,QAAMA,SAAQ,UAAU;AAC1B,QAAQ;AACN,QAAM,EAAE,OAAO,MAAM,MAAA;AACvB;AAEA,MAAM,UAAU,QAAQ,IAAI,QAAQ,QAAQ,IAAI;AAChD,WAAW,OAAO;AAAA,EAChB,KAAK,IAAI,MAAA;AAAA;AAAA,EAET,MAAM,UAAU,QAAQ,KAAK,IAAI,CAAA,QAAO,IAAI,QAAQ,SAAS,GAAG,CAAC,IAAI,QAAQ;AAC/E,CAAC;AAED,MAAM,cAAc,CAClB,IACA,WAAW,OACqC;AAChD,SAAO,IAAI,SACT,UAAU,EAAE,MAAM,GAAG,MAAM,YAAY,EAAE,KAAA,GAAQ,GAAG,SAAA,GAAY,MAAM,GAAG,GAAG,IAAI,CAAC;AACrF;AAEA,MAAM,YAAY;AAAA,EAChB,IAAI,MAAA,IACA,CAAC,SAAiB,OAAO,KAAK,IAAI,YAAY,IAAI,CAAC,KAClD,MAAM;AACL,UAAM,YAAY,KAAK,cAAc,YAAY,GAAG,GAAG,gBAAgB;AAEvE,WAAO,CAAC,SAAiB,aAAa,KAAK,WAAW,IAAI,CAAC;AAAA,EAC7D,GAAA;AAAA,EACJ,EAAE,MAAM,aAAa,IAAI,iBAAA;AAC3B;AAEA,UAAU,EAAE,MAAM,iBAAiB,IAAI,MAAA,GAAS,YAAY;AAC1D,QAAM,UAAU,EAAE,MAAM,mBAAmB,IAAI,YAAA,GAAe,YAAY;AACxE,UAAM,gBAAgB;AACtB,UAAM,mBAAmB;AACzB,UAAM,eAAe,uBAAO,OAAO,IAAI;AAEI;AACzC,gBAAU,EAAE,MAAM,uBAAuB,IAAI,mBAAA,GAAsB,MAAM;AAEvE,cAAM,WAAW,KAAK,MAAM,UAAU,aAAa,EAAE,UAAU;AAC/D,qBAAa,gBAAgB,IAAI,UAAU,gBAAgB;AAC3D,cAAM,UAAU,OAAO,OAAO,QAAQ;AACtC,mBAAW,SAAS,SAAS;AAC3B,cAAI,SAAS,OAAO,UAAU,YAAY,UAAU,SAAS,OAAO,MAAM,SAAS,UAAU;AAC3F,yBAAa,MAAM,IAAI,IAAI,UAAU,MAAM,IAAI;AAAA,UACjD;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAEA,UAAM,KAAK;AAAA,MACT,UAAU,QAAQ,IAAA;AAAA,MAClB;AAAA,IAAA,CACD;AAAA,EACH,CAAC;AACH,CAAC;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sentry-config.js","sources":["../src/sentry-config.ts"],"sourcesContent":["// Detect CI environment at runtime (not replaced by build process)\nconst isCI = process.env.CI === \"true\" || process.env.GITHUB_ACTIONS === \"true\";\n\nexport const sentryBaseConfig = {\n enabled: Boolean(process.env.NODE_ENV) && process.env.NODE_ENV !== \"development\",\n environment: isCI ? \"github-ci\" : process.env.NODE_ENV || \"development\",\n release: `spotlight@${process.env.npm_package_version}`,\n tracesSampleRate: 1,\n enableLogs: true,\n} as const;\n"],"names":[],"mappings":";;;;;;;;;AACA,MAAM,OAAO,QAAQ,IAAI,OAAO,UAAU,QAAQ,IAAI,mBAAmB;AAElE,MAAM,mBAAmB;AAAA,EAC9B,SAAS,QAAQ,YAAoB,KAAK;AAAA,EAC1C,aAAa,OAAO,cAAc;AAAA,EAClC,SAAS,aAAa,OAA+B;AAAA,EACrD,kBAAkB;AAAA,EAClB,YAAY;AACd;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sources":["../../../src/server/cli/help.ts"],"sourcesContent":["import { COMMANDS } from \"../cli.ts\";\nimport { AVAILABLE_FORMATTERS } from \"../formatters/types.ts\";\nimport type { CLIHandlerOptions } from \"../types/cli.ts\";\n\nfunction showCommandHelp(commandName: string): boolean {\n const command = COMMANDS.find(c => c.meta.name === commandName);\n if (!command) {\n return false;\n }\n\n const { meta } = command;\n console.log(`\n${meta.name} - ${meta.short}\n\nUsage: ${meta.usage || `spotlight ${meta.name} [options]`}\n${meta.long ? `\\n${meta.long}` : \"\"}\n${\n meta.examples && meta.examples.length > 0\n ? `\nExamples:\n${meta.examples.map(ex => ` ${ex}`).join(\"\\n\")}`\n : \"\"\n}\n`);\n return true;\n}\n\nfunction showMainHelp() {\n // Build commands section dynamically from COMMANDS\n const commandsHelp = COMMANDS.map(({ meta }) => {\n const name = meta.name.padEnd(20);\n return ` ${name} ${meta.short}`;\n }).join(\"\\n\");\n\n console.log(`\nSpotlight Sidecar - Development proxy server for Spotlight\n\nUsage: spotlight [command] [options]\n\nCommands:\n${commandsHelp}\n help Show this help message\n\nOptions:\n -p, --port <port> Port to listen on (default: 8969, or 0 for random)\n -o, --open Open the Spotlight dashboard in your default browser\n -d, --debug Enable debug logging\n -f, --format <format> Output format for tail command (default: human)\n Available formats: ${[...AVAILABLE_FORMATTERS].join(\", \")}\n -A, --allowed-origin <origin>\n Additional origins to allow for CORS requests.\n Can be specified multiple times or comma-separated.\n Accepts full origins (https://example.com:443) for\n strict matching or plain domains (myapp.local) to\n allow any protocol/port.\n -h, --help Show this help message\n\nExamples:\n${COMMANDS.flatMap(({ meta }) => meta.examples?.slice(0, 2) || [])\n .map(ex => ` ${ex}`)\n .join(\"\\n\")}\n\nRun 'spotlight help <command>' for more information on a specific command.\n`);\n}\n\nexport default function showHelp({ cmdArgs }: CLIHandlerOptions) {\n const targetCmd = cmdArgs?.[0];\n\n if (targetCmd) {\n // Show detailed help for specific command\n if (!showCommandHelp(targetCmd)) {\n console.error(`Unknown command: ${targetCmd}`);\n console.error(`Run 'spotlight help' to see available commands.`);\n process.exit(1);\n }\n } else {\n // Show main help\n showMainHelp();\n }\n\n process.exit(0);\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAIA,SAAS,gBAAgB,aAA8B;AACrD,QAAM,UAAU,SAAS,KAAK,OAAK,EAAE,KAAK,SAAS,WAAW;AAC9D,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,SAAS;AACjB,UAAQ,IAAI;AAAA,EACZ,KAAK,IAAI,MAAM,KAAK,KAAK;AAAA;AAAA,SAElB,KAAK,SAAS,aAAa,KAAK,IAAI,YAAY;AAAA,EACvD,KAAK,OAAO;AAAA,EAAK,KAAK,IAAI,KAAK,EAAE;AAAA,EAEjC,KAAK,YAAY,KAAK,SAAS,SAAS,IACpC;AAAA;AAAA,EAEJ,KAAK,SAAS,IAAI,CAAA,OAAM,KAAK,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,KACzC,EACN;AAAA,CACC;AACC,SAAO;AACT;AAEA,SAAS,eAAe;AAEtB,QAAM,eAAe,SAAS,IAAI,CAAC,EAAE,WAAW;AAC9C,UAAM,OAAO,KAAK,KAAK,OAAO,EAAE;AAChC,WAAO,KAAK,IAAI,IAAI,KAAK,KAAK;AAAA,EAChC,CAAC,EAAE,KAAK,IAAI;AAEZ,UAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMZ,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8CAQgC,CAAC,GAAG,oBAAoB,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUhF,SAAS,QAAQ,CAAC,EAAE,WAAW,KAAK,UAAU,MAAM,GAAG,CAAC,KAAK,CAAA,CAAE,EAC9D,IAAI,CAAA,OAAM,KAAK,EAAE,EAAE,EACnB,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA,CAGZ;AACD;AAEA,SAAwB,SAAS,EAAE,WAA8B;AAC/D,QAAM,YAAY,UAAU,CAAC;AAE7B,MAAI,WAAW;AAEb,QAAI,CAAC,gBAAgB,SAAS,GAAG;AAC/B,cAAQ,MAAM,oBAAoB,SAAS,EAAE;AAC7C,cAAQ,MAAM,iDAAiD;AAC/D,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF,OAAO;AAEL,iBAAA;AAAA,EACF;AAEA,UAAQ,KAAK,CAAC;AAChB;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sources":["../../../src/server/cli/mcp.ts"],"sourcesContent":["import { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { captureException } from \"@sentry/node\";\nimport { ServerType as ProxyServerType, startStdioServer } from \"mcp-proxy\";\nimport { logger } from \"../logger.ts\";\nimport { setShutdownHandlers, startServer } from \"../main.ts\";\nimport { createMCPInstance } from \"../mcp/mcp.ts\";\nimport type { CLIHandlerOptions, Command, CommandMeta } from \"../types/cli.ts\";\nimport type { NormalizedAllowedOrigins } from \"../utils/cors.ts\";\nimport { normalizeAllowedOrigins } from \"../utils/cors.ts\";\nimport { isSidecarRunning } from \"../utils/extras.ts\";\n\nexport const meta: CommandMeta = {\n name: \"mcp\",\n short: \"Start in MCP (Model Context Protocol) mode\",\n usage: \"spotlight mcp [options]\",\n long: `Start Spotlight in MCP (Model Context Protocol) stdio server mode for\nintegration with AI coding assistants like Cursor, Claude, etc.\n\nConnects to existing sidecar if running, otherwise starts a new one.\nProvides MCP tools for AI assistants to query errors, logs, and traces.\n\nAvailable MCP Tools:\n - search_errors: Search for errors\n - search_logs: Search for logs\n - search_traces: List traces\n - get_traces: Get trace details`,\n examples: [\n \"spotlight mcp # Start MCP server on default port\",\n \"spotlight mcp -p 3000 # Start on custom port\",\n \"spotlight mcp -d # Start with debug logging\",\n ],\n};\n\nasync function startServerWithStdioMCP(\n port: CLIHandlerOptions[\"port\"],\n basePath: CLIHandlerOptions[\"basePath\"],\n filesToServe: CLIHandlerOptions[\"filesToServe\"],\n normalizedAllowedOrigins: NormalizedAllowedOrigins | undefined,\n) {\n const serverInstance = await startServer({\n port,\n basePath,\n filesToServe,\n normalizedAllowedOrigins,\n });\n setShutdownHandlers(serverInstance);\n\n logger.info(\"Starting MCP over stdio too...\");\n const mcpInstance = createMCPInstance();\n await mcpInstance.connect(new StdioServerTransport());\n\n const shutdownMcp = () => {\n mcpInstance.close();\n };\n\n process.on(\"SIGINT\", shutdownMcp);\n process.on(\"SIGTERM\", shutdownMcp);\n\n return serverInstance;\n}\n\nasync function startMCPStdioHTTPProxy(\n port: CLIHandlerOptions[\"port\"],\n basePath: CLIHandlerOptions[\"basePath\"],\n filesToServe: CLIHandlerOptions[\"filesToServe\"],\n normalizedAllowedOrigins: NormalizedAllowedOrigins | undefined,\n) {\n let intentionalShutdown = false;\n let client: Client | null = null;\n let server: Awaited<ReturnType<typeof startStdioServer>> | null = null;\n\n const shutdown = async () => {\n if (intentionalShutdown) {\n // If we get the signal again, exit immediately\n logger.info(\"Bye.\");\n process.exit(0);\n }\n\n intentionalShutdown = true;\n logger.info(\"Shutting down MCP stdio proxy...\");\n\n if (client) {\n await client.close();\n }\n if (server) {\n await server.close();\n }\n };\n\n // Set up signal handlers for graceful shutdown\n process.on(\"SIGINT\", shutdown);\n process.on(\"SIGTERM\", shutdown);\n\n server = await startStdioServer({\n // We need to hook into `initStreamClient` as the returned object from startStdioServer\n // is not a meta proxy object giving access to both the server and the client. It just\n // returns the StdioServerTransport instance without a way to access the client or its errors.\n // TODO: We should probably upstream a fix for this to close the server or bubble the errors\n initStreamClient: () => {\n client = new Client({\n name: \"Spotlight Sidecar (stdio proxy)\",\n version: \"1.0.0\",\n });\n client.onerror = async (err: Error) => {\n if (\n err.message.startsWith(\"Maximum reconnection attempts\") ||\n /disconnected|fetch failed|connection closed/i.test(err.message)\n ) {\n if (client) await client.close();\n if (server) await server.close();\n } else if (!/conflict/i.test(err.message)) {\n captureException(err);\n logger.error(`MCP stdio proxy error: ${err.name}: ${err.message}`);\n }\n };\n return Promise.resolve(client);\n },\n serverType: ProxyServerType.HTTPStream,\n url: `http://localhost:${port}/mcp`,\n });\n server.onclose = async () => {\n // If this is an intentional shutdown, don't restart\n if (intentionalShutdown) {\n logger.info(\"MCP stdio proxy server closed.\");\n return;\n }\n\n logger.info(\"MCP stdio proxy server closed unexpectedly. Attempting to restart...\");\n process.off(\"SIGINT\", shutdown);\n process.off(\"SIGTERM\", shutdown);\n // We need to manually resume stdin as `StdioServerTransport` pauses it on\n // close but does not `resume` it when a new instance is created. Probably\n // a bug in https://github.com/modelcontextprotocol/typescript-sdk/blob/main/src/server/stdio.ts\n process.stdin.resume();\n\n try {\n await startMCPStdioHTTPProxy(port, basePath, filesToServe, normalizedAllowedOrigins);\n logger.info(\"Connection restored\");\n } catch (_err) {\n try {\n return await startServerWithStdioMCP(port, basePath, filesToServe, normalizedAllowedOrigins);\n } catch (_err2) {\n logger.error(\"Failed to restart sidecar server after MCP stdio proxy closed.\");\n captureException(_err2);\n await startMCPStdioHTTPProxy(port, basePath, filesToServe, normalizedAllowedOrigins);\n }\n }\n };\n}\n\nexport async function handler({ port, basePath, filesToServe, allowedOrigins }: CLIHandlerOptions) {\n // Normalize allowed origins once at startup\n const normalizedAllowedOrigins = allowedOrigins ? normalizeAllowedOrigins(allowedOrigins) : undefined;\n\n if (port > 0 && (await isSidecarRunning(port))) {\n logger.info(\"Connecting to existing MCP instance with stdio proxy...\");\n await startMCPStdioHTTPProxy(port, basePath, filesToServe, normalizedAllowedOrigins);\n logger.info(`Connected to existing MCP instance on port ${port}`);\n } else {\n return await startServerWithStdioMCP(port, basePath, filesToServe, normalizedAllowedOrigins);\n }\n}\n\nexport default { meta, handler } satisfies Command;\n"],"names":["ProxyServerType"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sources":["../../../src/server/cli/run.ts"],"sourcesContent":["import { spawn } from \"node:child_process\";\nimport { readFileSync } from \"node:fs\";\nimport type { AddressInfo } from \"node:net\";\nimport * as path from \"node:path\";\nimport * as readline from \"node:readline\";\nimport type { SerializedLog } from \"@sentry/core\";\nimport { metrics } from \"@sentry/node\";\nimport { Searcher } from \"fast-fuzzy\";\nimport { uuidv7 } from \"uuidv7\";\nimport { SENTRY_CONTENT_TYPE } from \"../constants.ts\";\nimport { logger } from \"../logger.ts\";\nimport type { SentryLogEvent } from \"../parser/types.ts\";\nimport type { CLIHandlerOptions, Command, CommandMeta } from \"../types/cli.ts\";\nimport { detectDockerCompose, parseExplicitDockerCompose, prepareDockerComposeRun } from \"../utils/docker-compose.ts\";\nimport { getSpotlightURL, openInBrowser } from \"../utils/extras.ts\";\nimport { EventContainer, getBuffer } from \"../utils/index.ts\";\nimport { type OnItemCallback, handler as tail } from \"./tail.ts\";\n\nexport const meta: CommandMeta = {\n name: \"run\",\n short: \"Run your app with automatic Spotlight instrumentation\",\n usage: \"spotlight run [options] [command...]\",\n long: `Run your application with Spotlight, automatically setting up the necessary\nenvironment variables and capturing telemetry data.\n\nIf no command is provided, Spotlight auto-detects:\n - Docker Compose projects (docker-compose.yml, compose.yml, etc.)\n - package.json scripts (dev, develop, serve, start)\n\nEnvironment variables set automatically:\n - SENTRY_SPOTLIGHT=http://localhost:<port>/stream\n - NEXT_PUBLIC_SENTRY_SPOTLIGHT=http://localhost:<port>/stream\n - SENTRY_TRACES_SAMPLE_RATE=1\n\nstdout/stderr are captured and sent to Spotlight as log events.`,\n examples: [\n \"spotlight run # Auto-detect and run (package.json or docker-compose)\",\n \"spotlight run node server.js # Run a specific command with Spotlight\",\n \"spotlight run -p 3000 npm start # Run with custom port\",\n \"spotlight run python manage.py runserver # Run Python app\",\n \"spotlight run docker compose up # Run Docker Compose with Spotlight injection\",\n ],\n};\n\nconst SPOTLIGHT_VERSION = process.env.npm_package_version || \"unknown\";\n\n// Environment variable host configurations\nconst LOCALHOST_HOST = \"localhost\";\n\n/**\n * Detect if there's a package.json with runnable scripts\n */\nfunction detectPackageJson(): { scriptName: string; scriptCommand: string } | null {\n try {\n const scripts = JSON.parse(readFileSync(\"./package.json\", \"utf-8\")).scripts;\n const scriptName = [\"dev\", \"develop\", \"serve\", \"start\"].find(name => scripts[name]);\n if (!scriptName || !scripts[scriptName]) {\n return null;\n }\n return { scriptName, scriptCommand: scripts[scriptName] };\n } catch {\n // pass\n }\n return null;\n}\n\n/**\n * Prompt the user to choose between Docker Compose and package.json\n */\nasync function promptUserChoice(): Promise<\"docker\" | \"package\"> {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n return new Promise(resolve => {\n console.log(\"\\n⚠️ Both Docker Compose and package.json detected!\");\n console.log(\"\\nWhich would you like to use?\");\n console.log(\" 1) docker compose\");\n console.log(\" 2) package.json\");\n\n rl.question(\"Enter your choice (1 or 2): \", answer => {\n rl.close();\n const choice = answer.trim();\n const selected = choice === \"2\" ? \"package\" : \"docker\";\n logger.info(`Selected: ${selected === \"docker\" ? \"Docker compose\" : \"package.json\"}`);\n resolve(selected);\n });\n });\n}\n\nfunction createLogEnvelope(level: \"info\" | \"error\", body: string, timestamp: number): Buffer {\n const envelopeHeader = {\n sdk: {\n name: \"sentry.spotlight.stdio\",\n version: SPOTLIGHT_VERSION,\n },\n };\n\n const logItem: SerializedLog = {\n timestamp,\n level,\n body,\n attributes: {},\n };\n\n const logPayload: SentryLogEvent = {\n type: \"log\",\n event_id: uuidv7(),\n timestamp,\n items: [\n {\n ...logItem,\n id: uuidv7(),\n severity_number: level === \"error\" ? 17 : 9, // ERROR=17, INFO=9 per OpenTelemetry spec\n sdk: undefined,\n },\n ],\n };\n\n const payloadJson = JSON.stringify(logPayload);\n const payloadBuffer = Buffer.from(payloadJson, \"utf-8\");\n\n const itemHeader = {\n type: \"log\",\n length: payloadBuffer.length, // Use byte length, not string length\n item_count: 1,\n content_type: \"application/json\",\n };\n\n const parts = [JSON.stringify(envelopeHeader), JSON.stringify(itemHeader), payloadJson];\n\n return Buffer.from(`${parts.join(\"\\n\")}\\n`, \"utf-8\");\n}\n\nexport async function handler({\n port,\n cmdArgs,\n basePath,\n filesToServe,\n format,\n allowedOrigins,\n open,\n}: CLIHandlerOptions) {\n let relayStdioAsLogs = true;\n\n const fuzzySearcher = new Searcher([] as string[], {\n threshold: 0.8,\n ignoreCase: false,\n });\n\n const logChecker: OnItemCallback = (type, item, envelopeHeader) => {\n if (type !== \"log\") return true;\n\n const [, payload] = item;\n const logEvent = payload as SentryLogEvent;\n\n if (logEvent.items && logEvent.items.length > 0) {\n for (const logItem of logEvent.items) {\n // Check if this is a stdio log from Spotlight itself\n if (envelopeHeader.sdk?.name === \"sentry.spotlight.stdio\") {\n continue;\n }\n\n if (!relayStdioAsLogs) continue;\n\n const logBody = typeof logItem.body === \"string\" ? logItem.body : String(logItem.body);\n const trimmedBody = logBody.trim();\n\n if (trimmedBody) {\n const matches = fuzzySearcher.search(trimmedBody);\n if (matches.length > 0) {\n logger.debug(\"Detected Sentry logging in the process, disabling stdio relay\");\n relayStdioAsLogs = false;\n return false;\n }\n }\n }\n }\n\n return true;\n };\n\n const serverInstance = await tail({ port, cmdArgs: [], basePath, filesToServe, format, allowedOrigins }, logChecker);\n if (!serverInstance) {\n logger.error(\"Failed to start Spotlight sidecar server.\");\n logger.error(`The port ${port} might already be in use — most likely by another Spotlight instance.`);\n process.exit(1);\n }\n\n // We *MUST* have an instance address and a port here\n // as not having that indicates either the server did not start\n // or started in a weird manner (like over a unix socket)\n const actualServerPort = (serverInstance.address() as AddressInfo).port;\n const spotlightUrl = getSpotlightURL(actualServerPort, LOCALHOST_HOST);\n\n if (open) {\n openInBrowser(actualServerPort);\n }\n let shell = false;\n let stdin: string | undefined = undefined;\n const env = {\n ...process.env,\n SENTRY_SPOTLIGHT: spotlightUrl,\n // We need the one below for Next.js projects -- they only allow NEXT_PUBLIC_ prefixed env vars\n // on frontend code\n NEXT_PUBLIC_SENTRY_SPOTLIGHT: spotlightUrl,\n // This is not supported in all SDKs but worth adding\n // for the ones that support it\n SENTRY_TRACES_SAMPLE_RATE: \"1\",\n } as {\n PATH: string;\n SENTRY_SPOTLIGHT: string;\n NEXT_PUBLIC_SENTRY_SPOTLIGHT: string;\n SENTRY_TRACES_SAMPLE_RATE: string;\n [key: string]: string;\n };\n if (cmdArgs.length === 0) {\n const dockerCompose = detectDockerCompose();\n const packageJson = detectPackageJson();\n\n // If both Docker Compose and package.json are detected, ask the user which one to use\n if (dockerCompose && packageJson) {\n if (!process.stdin.isTTY) {\n logger.error(\"Both Docker Compose and package.json detected, but cannot prompt in non-interactive mode.\");\n logger.error(\"Please specify a command explicitly or run in an interactive terminal.\");\n process.exit(1);\n }\n const choice = await promptUserChoice();\n metrics.count(\"cli.run.prompt_choice\", 1, { attributes: { choice } });\n\n if (choice === \"docker\") {\n logger.info(\n `Detected Docker Compose project with ${dockerCompose.serviceNames.length} service(s): ${dockerCompose.serviceNames.join(\", \")}`,\n );\n metrics.count(\"cli.run.autodetect\", 1, { attributes: { type: \"docker-compose\" } });\n ({ cmdArgs, stdin } = prepareDockerComposeRun(dockerCompose, actualServerPort, env));\n } else {\n logger.info(`Using package.json script: ${packageJson.scriptName}`);\n metrics.count(\"cli.run.autodetect\", 1, { attributes: { type: \"package-json\" } });\n cmdArgs = [packageJson.scriptCommand];\n shell = true;\n env.PATH = path.resolve(\"./node_modules/.bin\") + path.delimiter + env.PATH;\n }\n } else if (dockerCompose) {\n logger.info(\n `Detected Docker Compose project with ${dockerCompose.serviceNames.length} service(s): ${dockerCompose.serviceNames.join(\", \")}`,\n );\n metrics.count(\"cli.run.autodetect\", 1, { attributes: { type: \"docker-compose\" } });\n ({ cmdArgs, stdin } = prepareDockerComposeRun(dockerCompose, actualServerPort, env));\n } else if (packageJson) {\n logger.info(`Using package.json script: ${packageJson.scriptName}`);\n metrics.count(\"cli.run.autodetect\", 1, { attributes: { type: \"package-json\" } });\n cmdArgs = [packageJson.scriptCommand];\n shell = true;\n env.PATH = path.resolve(\"./node_modules/.bin\") + path.delimiter + env.PATH;\n }\n } else {\n // Handle explicit docker compose commands (e.g., \"spotlight run docker compose up\")\n const explicitDockerConfig = parseExplicitDockerCompose(cmdArgs);\n if (explicitDockerConfig) {\n logger.info(\n `Detected explicit Docker Compose command with ${explicitDockerConfig.serviceNames.length} service(s): ${explicitDockerConfig.serviceNames.join(\", \")}`,\n );\n metrics.count(\"cli.run.docker_compose.explicit\", 1, {\n attributes: {\n services: explicitDockerConfig.serviceNames.length,\n subcommand: explicitDockerConfig.subcommandArgs.join(\" \"),\n },\n });\n ({ cmdArgs, stdin } = prepareDockerComposeRun(explicitDockerConfig, actualServerPort, env));\n }\n }\n if (cmdArgs.length === 0) {\n logger.error(\"Error: No command specified to run and could not infer the command automatically.\");\n process.exit(1);\n }\n const cmdStr = cmdArgs.join(\" \");\n logger.info(`Starting command: ${cmdStr}`);\n // When we have Docker Compose override YAML (for -f -), we need to pipe stdin\n // Otherwise, inherit stdin to relay user input to the downstream process\n const stdinMode: \"pipe\" | \"inherit\" = stdin ? \"pipe\" : \"inherit\";\n const runCmd = spawn(cmdArgs[0], cmdArgs.slice(1), {\n cwd: process.cwd(),\n env,\n shell,\n windowsVerbatimArguments: true,\n windowsHide: true,\n stdio: [stdinMode, \"pipe\", \"pipe\"],\n });\n\n const { stdout, stderr } = runCmd;\n if (!stdout || !stderr) {\n logger.error(\"Failed to create process streams\");\n process.exit(1);\n }\n\n // If our command has a stdin input _and_ we can send to stdin, write and close\n if (stdin) {\n if (!runCmd.stdin) {\n logger.error(\"Failed to pipe Docker Compose override: stdin is not available\");\n process.exit(1);\n }\n runCmd.stdin.write(stdin);\n runCmd.stdin.end();\n }\n\n const processLogLine = (line: string, level: \"info\" | \"error\") => {\n if (!relayStdioAsLogs) return;\n const trimmedLine = line.trim();\n if (!trimmedLine) return;\n\n fuzzySearcher.add(trimmedLine);\n\n const timestamp = Date.now() / 1000;\n const envelopeBuffer = createLogEnvelope(level, trimmedLine, timestamp);\n\n const container = new EventContainer(SENTRY_CONTENT_TYPE, envelopeBuffer);\n // Add to buffer - this will automatically trigger all subscribers\n // including the onEnvelope callback registered in tail()\n getBuffer().put(container);\n };\n\n let stdoutBuffer = \"\";\n let stderrBuffer = \"\";\n\n // Stream stdout as info-level logs\n stdout.on(\"data\", (data: Buffer) => {\n stdoutBuffer += data.toString();\n const lines = stdoutBuffer.split(\"\\n\");\n // Keep the last partial line in the buffer\n stdoutBuffer = lines.pop() || \"\";\n\n for (const line of lines) {\n processLogLine(line, \"info\");\n }\n });\n\n // Stream stderr as error-level logs\n stderr.on(\"data\", (data: Buffer) => {\n stderrBuffer += data.toString();\n const lines = stderrBuffer.split(\"\\n\");\n // Keep the last partial line in the buffer\n stderrBuffer = lines.pop() || \"\";\n\n for (const line of lines) {\n processLogLine(line, \"error\");\n }\n });\n\n runCmd.on(\"error\", err => {\n logger.error(`Failed to run ${cmdStr}:`);\n logger.error(err);\n process.exit(1);\n });\n\n runCmd.on(\"close\", code => {\n // Handle any remaining buffered lines\n if (stdoutBuffer.trim()) {\n processLogLine(stdoutBuffer, \"info\");\n }\n if (stderrBuffer.trim()) {\n processLogLine(stderrBuffer, \"error\");\n }\n\n if (!code) {\n logger.error(`${cmdStr} exited, terminating.`);\n } else {\n logger.error(`${cmdStr} exited with code ${code}.`);\n }\n process.exit(code);\n });\n const killRunCmd = () => {\n if (runCmd.killed) return;\n stdout.destroy();\n stderr.destroy();\n runCmd.kill();\n };\n runCmd.on(\"spawn\", () => {\n runCmd.removeAllListeners(\"spawn\");\n runCmd.removeAllListeners(\"error\");\n process.on(\"SIGINT\", killRunCmd);\n process.on(\"SIGTERM\", killRunCmd);\n process.on(\"beforeExit\", killRunCmd);\n });\n}\n\nexport default { meta, handler } satisfies Command;\n"],"names":["tail"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sources":["../../../src/server/cli/server.ts"],"sourcesContent":["import type { AddressInfo } from \"node:net\";\nimport { setupSpotlight } from \"../main.ts\";\nimport type { CLIHandlerOptions, Command, CommandMeta } from \"../types/cli.ts\";\nimport { openInBrowser } from \"../utils/extras.ts\";\n\nexport const meta: CommandMeta = {\n name: \"server\",\n short: \"Start the Spotlight sidecar server (default command)\",\n usage: \"spotlight [server] [options]\",\n long: `Start the Spotlight sidecar HTTP server.\n\nThis is the default command when running 'spotlight' without arguments.\nThe server listens for events from Sentry SDKs and serves the Spotlight UI.\n\nThe server provides:\n - HTTP endpoint for receiving Sentry envelopes\n - Server-Sent Events (SSE) stream for real-time updates\n - Web UI at http://localhost:PORT`,\n examples: [\n \"spotlight # Start on default port 8969\",\n \"spotlight server # Explicit server command\",\n \"spotlight --open # Start and open dashboard in browser\",\n \"spotlight --port 3000 # Start on port 3000\",\n \"spotlight -p 3000 -d # Start on port 3000 with debug logging\",\n ],\n};\n\nexport async function handler({ port, basePath, filesToServe, allowedOrigins, open }: CLIHandlerOptions) {\n const serverInstance = await setupSpotlight({\n port,\n basePath,\n filesToServe,\n isStandalone: true,\n allowedOrigins,\n });\n\n if (open) {\n // Use actual port from server instance, or fall back to requested port\n // (when serverInstance is undefined, a server is already running on the requested port)\n const actualPort = serverInstance ? (serverInstance.address() as AddressInfo).port : port;\n openInBrowser(actualPort);\n }\n\n return serverInstance;\n}\n\nexport default { meta, handler } satisfies Command;\n"],"names":[],"mappings":";;;;;;;;;;;AAKO,MAAM,OAAoB;AAAA,EAC/B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASN,UAAU;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,QAAQ,EAAE,MAAM,UAAU,cAAc,gBAAgB,QAA2B;AACvG,QAAM,iBAAiB,MAAM,eAAe;AAAA,IAC1C;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd;AAAA,EAAA,CACD;AAED,MAAI,MAAM;AAGR,UAAM,aAAa,iBAAkB,eAAe,QAAA,EAA0B,OAAO;AACrF,kBAAc,UAAU;AAAA,EAC1B;AAEA,SAAO;AACT;AAEA,MAAA,SAAe,EAAE,MAAM,QAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tail.js","sources":["../../../src/server/cli/tail.ts"],"sourcesContent":["import type { ServerType } from \"@hono/node-server\";\nimport { captureException } from \"@sentry/core\";\nimport { metrics } from \"@sentry/node\";\nimport { EventSource } from \"eventsource\";\nimport { SENTRY_CONTENT_TYPE } from \"../constants.ts\";\nimport {\n type FormatterRegistry,\n type FormatterType,\n applyFormatter,\n humanFormatters,\n jsonFormatters,\n logfmtFormatters,\n mdFormatters,\n} from \"../formatters/index.ts\";\nimport { logger } from \"../logger.ts\";\nimport { setupSpotlight } from \"../main.ts\";\nimport type { ParsedEnvelope } from \"../parser/index.ts\";\nimport type { CLIHandlerOptions, Command, CommandMeta } from \"../types/cli.ts\";\nimport { getSpotlightURL } from \"../utils/extras.ts\";\nimport { getBuffer } from \"../utils/index.ts\";\n\nexport type OnItemCallback = (\n type: string,\n item: ParsedEnvelope[\"envelope\"][1][number],\n envelopeHeader: ParsedEnvelope[\"envelope\"][0],\n) => boolean;\nexport const NAME_TO_TYPE_MAPPING: Record<string, string[]> = Object.freeze({\n traces: [\"transaction\", \"span\"],\n // profiles: [\"profile\"],\n logs: [\"log\"],\n attachments: [\"attachment\"],\n errors: [\"event\"],\n // sessions: [\"session\"],\n // replays: [\"replay_video\"],\n // client_report\n});\n\nconst SUPPORTED_ENVELOPE_TYPES = new Set(Object.values(NAME_TO_TYPE_MAPPING).flat());\nexport const EVERYTHING_MAGIC_WORDS = new Set([\"everything\", \"all\", \"*\"]);\nexport const SUPPORTED_TAIL_ARGS = new Set([...Object.keys(NAME_TO_TYPE_MAPPING), ...EVERYTHING_MAGIC_WORDS]);\n\nexport const meta: CommandMeta = {\n name: \"tail\",\n short: `Tail Sentry events (types: ${Object.keys(NAME_TO_TYPE_MAPPING).join(\", \")})`,\n usage: \"spotlight tail [types...] [options]\",\n long: `Stream Sentry events to your terminal in real-time.\n\nAvailable event types:\n ${Object.keys(NAME_TO_TYPE_MAPPING).join(\", \")}\n\nMagic words (to tail everything):\n ${[...EVERYTHING_MAGIC_WORDS].join(\", \")}\n\nUse -f/--format to change output format (human, logfmt, json, md).\nConnects to existing sidecar if running, otherwise starts a new one.`,\n examples: [\n \"spotlight tail # Tail all event types (human format)\",\n \"spotlight tail errors # Tail only errors\",\n \"spotlight tail errors logs # Tail errors and logs\",\n \"spotlight tail --format json # Use JSON output format\",\n \"spotlight tail traces -f logfmt # Tail traces with logfmt format\",\n ],\n};\n\nconst FORMATTERS: Record<FormatterType, FormatterRegistry> = {\n md: mdFormatters,\n logfmt: logfmtFormatters,\n json: jsonFormatters,\n human: humanFormatters,\n};\n\nconst connectUpstream = async (port: number) =>\n new Promise<EventSource>((resolve, reject) => {\n const client = new EventSource(getSpotlightURL(port));\n client.onerror = reject;\n client.onopen = () => resolve(client);\n });\n\nexport async function handler(\n { port, cmdArgs, basePath, filesToServe, format = \"logfmt\", allowedOrigins }: CLIHandlerOptions,\n onItem?: OnItemCallback,\n): Promise<ServerType | undefined> {\n const eventTypes = cmdArgs.length > 0 ? cmdArgs.map(arg => arg.toLowerCase()) : [\"everything\"];\n for (const eventType of eventTypes) {\n if (!SUPPORTED_TAIL_ARGS.has(eventType)) {\n logger.error(`Error: Unsupported argument \"${eventType}\".`);\n logger.error(`Supported arguments are: ${[...SUPPORTED_TAIL_ARGS].join(\", \")}`);\n process.exit(1);\n }\n }\n\n // Track which event types users tail\n for (const eventType of eventTypes) {\n metrics.count(\"cli.tail.event_type\", 1, { attributes: { type: eventType } });\n }\n\n const formatter = FORMATTERS[format];\n const types = eventTypes.some(type => EVERYTHING_MAGIC_WORDS.has(type))\n ? SUPPORTED_ENVELOPE_TYPES\n : new Set([...eventTypes.flatMap(type => NAME_TO_TYPE_MAPPING[type] || [])]);\n const onEnvelope: (envelope: ParsedEnvelope[\"envelope\"]) => void = envelope => {\n const [envelopeHeader, items] = envelope;\n const formatted: string[] = [];\n\n for (const item of items) {\n const [{ type }, payload] = item;\n\n if (!type || !types.has(type)) {\n // Skip if not a type we're interested in\n continue;\n }\n\n // Check if this event type is supported by the formatter\n if (!(type in formatter)) {\n continue;\n }\n\n if (onItem && !onItem(type, item, envelopeHeader)) {\n continue;\n }\n\n formatted.push(...applyFormatter(formatter, type as keyof FormatterRegistry, payload, envelopeHeader));\n }\n\n if (formatted.length > 0) {\n console.log(formatted.join(\"\\n\"));\n }\n };\n\n // try to connect to an already existing server first\n try {\n const client = await connectUpstream(port);\n client.addEventListener(SENTRY_CONTENT_TYPE, event => onEnvelope!(JSON.parse(event.data)));\n // Early return - don't start our own server if we can connect to an upstream one\n return undefined;\n } catch (err) {\n // if we fail, fine then we'll start our own\n if (err instanceof Error && !err.message?.includes(port.toString())) {\n captureException(err);\n logger.error(\"Error when trying to connect to upstream sidecar:\");\n logger.error(err);\n process.exit(1);\n }\n }\n\n const serverInstance = await setupSpotlight({ port, filesToServe, basePath, isStandalone: true, allowedOrigins });\n\n // Subscribe the onEnvelope callback to the message buffer\n // This ensures it gets called whenever any envelope is added to the buffer\n getBuffer().subscribe(container => {\n const parsedEnvelope = container.getParsedEnvelope();\n if (parsedEnvelope) {\n onEnvelope(parsedEnvelope.envelope);\n }\n });\n\n return serverInstance;\n}\n\nexport default { meta, handler } satisfies Command;\n"],"names":["mdFormatters","logfmtFormatters","jsonFormatters","humanFormatters"],"mappings":"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"}
|
package/dist/server/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sources":["../../src/server/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { parseArgs } from \"node:util\";\nimport { metrics } from \"@sentry/node\";\nimport showHelp from \"./cli/help.ts\";\nimport mcp from \"./cli/mcp.ts\";\nimport run from \"./cli/run.ts\";\nimport server from \"./cli/server.ts\";\nimport tail from \"./cli/tail.ts\";\nimport { DEFAULT_PORT } from \"./constants.ts\";\nimport { AVAILABLE_FORMATTERS } from \"./formatters/types.ts\";\nimport type { FormatterType } from \"./formatters/types.ts\";\nimport { enableDebugLogging, logger } from \"./logger.ts\";\nimport type { CLIHandlerOptions, Command } from \"./types/cli.ts\";\n\n// When port is set to `0` for a server to listen on,\n// it tells the OS to find a random available port.\n// This can then be retrieved after the server starts.\nconst MAGIC_PORT_FOR_DYNAMIC_ASSIGNMENT = 0;\nconst PARSE_ARGS_CONFIG = {\n options: {\n port: {\n type: \"string\",\n short: \"p\",\n default: undefined,\n },\n debug: {\n type: \"boolean\",\n short: \"d\",\n default: false,\n },\n format: {\n type: \"string\",\n short: \"f\",\n default: \"human\",\n },\n \"allowed-origin\": {\n type: \"string\",\n short: \"A\",\n multiple: true,\n default: [] as string[],\n },\n // Deprecated -- use the positional `mcp` argument instead\n \"stdio-mcp\": {\n type: \"boolean\",\n default: false,\n },\n open: {\n type: \"boolean\",\n short: \"o\",\n default: false,\n },\n help: {\n type: \"boolean\",\n short: \"h\",\n default: false,\n },\n },\n allowPositionals: true,\n strict: true,\n} as const;\n\nexport type CLIArgs = {\n port: number;\n debug: boolean;\n help: boolean;\n open: boolean;\n format: FormatterType;\n cmd: string | undefined;\n cmdArgs: string[];\n allowedOrigins: string[];\n};\n\nexport function parseCLIArgs(): CLIArgs {\n const args = Array.from(process.argv).slice(2);\n const preParse = parseArgs({\n ...PARSE_ARGS_CONFIG,\n strict: false,\n tokens: true,\n });\n let cmdArgs: string[] | undefined = undefined;\n // Only apply special handling for \"run\" if it's the actual command (first positional),\n // not when it appears as an argument to another command like \"spotlight help run\"\n const firstPositional = preParse.tokens.find(token => token.kind === \"positional\");\n const isRunCommand = firstPositional?.value === \"run\";\n if (isRunCommand && firstPositional) {\n const cutOff = preParse.tokens.find(token => token.index > firstPositional.index && token.kind === \"positional\");\n cmdArgs = cutOff ? args.splice(cutOff.index) : [];\n }\n const { values, positionals } = parseArgs({\n args,\n ...PARSE_ARGS_CONFIG,\n });\n\n // Handle legacy positional argument for port (backwards compatibility)\n const portInput = positionals.length === 1 && /^\\d{1,5}$/.test(positionals[0]) ? positionals.shift() : values.port;\n\n const port = portInput != null ? Number(portInput) : isRunCommand ? MAGIC_PORT_FOR_DYNAMIC_ASSIGNMENT : DEFAULT_PORT;\n if (Number.isNaN(port)) {\n // Validate port number\n console.error(`Error: Invalid port number '${portInput}'`);\n console.error(\"Port must be a valid number between 1 and 65535\");\n process.exit(1);\n }\n\n if (port < 0 || port > 65535) {\n console.error(`Error: Port ${port} is out of valid range (1-65535 or 0 for automatic assignment)`);\n process.exit(1);\n }\n\n if (values[\"stdio-mcp\"]) {\n positionals.unshift(\"mcp\");\n console.warn(\"Warning: --stdio-mcp is deprecated. Please use the positional argument 'mcp' instead.\");\n }\n\n const format = values.format as string;\n if (!AVAILABLE_FORMATTERS.includes(format as FormatterType)) {\n console.error(`Error: Invalid format '${format}'`);\n console.error(`Valid formats are: ${AVAILABLE_FORMATTERS.join(\", \")}`);\n process.exit(1);\n }\n\n // Parse allowed origins - supports both repeatable flags and comma-separated values\n const allowedOriginInput = values[\"allowed-origin\"] as string[];\n const allowedOrigins = allowedOriginInput.flatMap(origin => origin.split(\",\").map(o => o.trim())).filter(Boolean);\n\n const result: CLIArgs = {\n debug: values.debug as boolean,\n help: values.help as boolean,\n open: values.open as boolean,\n format: format as FormatterType,\n port,\n cmd: positionals[0],\n cmdArgs: cmdArgs ?? positionals.slice(1),\n allowedOrigins,\n };\n\n return result;\n}\n// Command registry - each command provides its own metadata\nexport const COMMANDS: Command[] = [run, tail, mcp, server];\n\n// Build command map from registry for fast lookup\nexport const CLI_CMD_MAP = new Map<string | undefined, Command[\"handler\"]>([\n [\"help\", showHelp],\n ...COMMANDS.map(cmd => [cmd.meta.name, cmd.handler] as [string, Command[\"handler\"]]),\n [undefined, server.handler],\n]);\n\nexport async function main({\n basePath,\n filesToServe,\n}: { basePath?: CLIHandlerOptions[\"basePath\"]; filesToServe?: CLIHandlerOptions[\"filesToServe\"] } = {}) {\n const { cmd, cmdArgs, help, port, debug, format, allowedOrigins, open } = parseCLIArgs();\n if (debug || process.env.SPOTLIGHT_DEBUG) {\n enableDebugLogging(true);\n }\n const spotlightVersion = process.env.npm_package_version || \"{unknown}\";\n logger.info(`Spotlight by Sentry - v${spotlightVersion}`);\n\n metrics.count(\"cli.invocation\", 1, {\n attributes: {\n command: cmd || \"server\",\n format,\n debug: String(debug),\n },\n });\n\n // Handle help: `spotlight --help`, `spotlight help`, `spotlight help <cmd>`, or `spotlight <cmd> --help`\n if (help || cmd === \"help\") {\n // If `spotlight <cmd> --help`, show help for that specific command\n // If `spotlight help <cmd>`, cmdArgs[0] contains the command name\n const targetCmd = cmd === \"help\" ? cmdArgs[0] : cmd;\n return showHelp({\n cmd: \"help\",\n cmdArgs: targetCmd ? [targetCmd] : [],\n port,\n help: true,\n debug,\n format,\n basePath,\n filesToServe,\n allowedOrigins,\n open,\n });\n }\n\n const handler = CLI_CMD_MAP.get(cmd) || showHelp;\n\n return await handler({ cmd, cmdArgs, port, help, debug, format, basePath, filesToServe, allowedOrigins, open });\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../src/server/constants.ts"],"sourcesContent":["// Re-export shared constants\nexport { CONTEXT_LINES_ENDPOINT, RAW_TYPES, SENTRY_CONTENT_TYPE } from \"../shared/constants.ts\";\n\n// Spotlight server constants\nexport const DEFAULT_PORT = 8969;\nexport const SERVER_IDENTIFIER = \"spotlight-by-sentry\";\n"],"names":[],"mappings":";;;;;;;;;AAIO,MAAM,eAAe;AACrB,MAAM,oBAAoB;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sources":["../../../../src/server/formatters/human/errors.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport type { SentryErrorEvent } from \"../../parser/index.ts\";\nimport { formatLogLine, inferEnvelopeSource } from \"./utils.ts\";\n\n/**\n * Format an error event with envelope headers for source inference\n */\nexport function formatError(event: SentryErrorEvent, envelopeHeader: Envelope[0]): string[] {\n const source = inferEnvelopeSource(envelopeHeader, event);\n\n const exception = event.exception?.values?.[0];\n const errorType = exception?.type || \"Error\";\n const errorValue = exception?.value || event.message || \"Unknown error\";\n\n let message = `${errorType}: ${errorValue}`;\n\n const frames = exception?.stacktrace?.frames;\n if (frames?.length) {\n const frame = frames.find((f: any) => f.in_app) || frames[frames.length - 1];\n if (frame) {\n if (frame.filename && frame.lineno) {\n const location = frame.colno\n ? `${frame.filename}:${frame.lineno}:${frame.colno}`\n : `${frame.filename}:${frame.lineno}`;\n message += ` [${location}]`;\n } else if (frame.filename) {\n message += ` [${frame.filename}]`;\n }\n\n if (frame.function && !message.includes(frame.function)) {\n message += ` [${frame.function}]`;\n }\n }\n }\n\n return [formatLogLine(event.timestamp, source, \"error\", message)];\n}\n"],"names":[],"mappings":";;;;;;;;;;AAOO,SAAS,YAAY,OAAyB,gBAAuC;AAC1F,QAAM,SAAS,oBAAoB,gBAAgB,KAAK;AAExD,QAAM,YAAY,MAAM,WAAW,SAAS,CAAC;AAC7C,QAAM,YAAY,WAAW,QAAQ;AACrC,QAAM,aAAa,WAAW,SAAS,MAAM,WAAW;AAExD,MAAI,UAAU,GAAG,SAAS,KAAK,UAAU;AAEzC,QAAM,SAAS,WAAW,YAAY;AACtC,MAAI,QAAQ,QAAQ;AAClB,UAAM,QAAQ,OAAO,KAAK,CAAC,MAAW,EAAE,MAAM,KAAK,OAAO,OAAO,SAAS,CAAC;AAC3E,QAAI,OAAO;AACT,UAAI,MAAM,YAAY,MAAM,QAAQ;AAClC,cAAM,WAAW,MAAM,QACnB,GAAG,MAAM,QAAQ,IAAI,MAAM,MAAM,IAAI,MAAM,KAAK,KAChD,GAAG,MAAM,QAAQ,IAAI,MAAM,MAAM;AACrC,mBAAW,KAAK,QAAQ;AAAA,MAC1B,WAAW,MAAM,UAAU;AACzB,mBAAW,KAAK,MAAM,QAAQ;AAAA,MAChC;AAEA,UAAI,MAAM,YAAY,CAAC,QAAQ,SAAS,MAAM,QAAQ,GAAG;AACvD,mBAAW,KAAK,MAAM,QAAQ;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AAEA,SAAO,CAAC,cAAc,MAAM,WAAW,QAAQ,SAAS,OAAO,CAAC;AAClE;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/server/formatters/human/index.ts"],"sourcesContent":["import { isErrorEvent, isLogEvent, isTraceEvent } from \"../../parser/helpers.ts\";\nimport type { FormatterRegistry } from \"../types.ts\";\nimport { formatError } from \"./errors.ts\";\nimport { formatLog } from \"./logs.ts\";\nimport { formatTrace } from \"./traces.ts\";\n\nexport const formatters: FormatterRegistry = {\n event: { typeGuard: isErrorEvent, format: formatError },\n log: { typeGuard: isLogEvent, format: formatLog },\n transaction: { typeGuard: isTraceEvent, format: formatTrace },\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAMO,MAAM,aAAgC;AAAA,EAC3C,OAAO,EAAE,WAAW,cAAc,QAAQ,YAAA;AAAA,EAC1C,KAAK,EAAE,WAAW,YAAY,QAAQ,UAAA;AAAA,EACtC,aAAa,EAAE,WAAW,cAAc,QAAQ,YAAA;AAClD;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sources":["../../../../src/server/formatters/human/logs.ts"],"sourcesContent":["import type { Envelope, SerializedLog } from \"@sentry/core\";\nimport type { SentryLogEvent } from \"../../parser/index.ts\";\nimport { type SourceType, formatLogLine, inferEnvelopeSource } from \"./utils.ts\";\n\n/**\n * Format a single log entry with source inference\n */\nfunction formatSingleLog(log: SerializedLog, source: SourceType): string {\n const level = log.level || \"log\";\n const message = log.body || \"\";\n\n const attrs: string[] = [];\n if (log.attributes) {\n for (const [key, attr] of Object.entries(log.attributes)) {\n if (!key.startsWith(\"sentry.\") && attr.value !== undefined && attr.value !== null) {\n attrs.push(`[${key}=${attr.value}]`);\n }\n }\n }\n\n const fullMessage = attrs.length > 0 ? `${message} ${attrs.join(\" \")}` : message;\n\n return formatLogLine(log.timestamp, source, level, fullMessage);\n}\n\n/**\n * Format a log event with envelope headers for source inference\n */\nexport function formatLog(event: SentryLogEvent, envelopeHeader: Envelope[0]): string[] {\n const source = inferEnvelopeSource(envelopeHeader, event);\n return event.items.map(log => formatSingleLog(log, source));\n}\n"],"names":[],"mappings":";;;;;;;;;;AAOA,SAAS,gBAAgB,KAAoB,QAA4B;AACvE,QAAM,QAAQ,IAAI,SAAS;AAC3B,QAAM,UAAU,IAAI,QAAQ;AAE5B,QAAM,QAAkB,CAAA;AACxB,MAAI,IAAI,YAAY;AAClB,eAAW,CAAC,KAAK,IAAI,KAAK,OAAO,QAAQ,IAAI,UAAU,GAAG;AACxD,UAAI,CAAC,IAAI,WAAW,SAAS,KAAK,KAAK,UAAU,UAAa,KAAK,UAAU,MAAM;AACjF,cAAM,KAAK,IAAI,GAAG,IAAI,KAAK,KAAK,GAAG;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AAEA,QAAM,cAAc,MAAM,SAAS,IAAI,GAAG,OAAO,IAAI,MAAM,KAAK,GAAG,CAAC,KAAK;AAEzE,SAAO,cAAc,IAAI,WAAW,QAAQ,OAAO,WAAW;AAChE;AAKO,SAAS,UAAU,OAAuB,gBAAuC;AACtF,QAAM,SAAS,oBAAoB,gBAAgB,KAAK;AACxD,SAAO,MAAM,MAAM,IAAI,SAAO,gBAAgB,KAAK,MAAM,CAAC;AAC5D;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"traces.js","sources":["../../../../src/server/formatters/human/traces.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport type { SentryTransactionEvent } from \"../../parser/index.ts\";\nimport { getDuration } from \"../utils.ts\";\nimport { formatLogLine, inferEnvelopeSource } from \"./utils.ts\";\n\n/**\n * Format a trace/transaction event with envelope headers for source inference\n */\nexport function formatTrace(event: SentryTransactionEvent, envelopeHeader: Envelope[0]): string[] {\n const source = inferEnvelopeSource(envelopeHeader, event);\n\n const transaction = event.transaction;\n const trace = event.contexts?.trace;\n\n let message = transaction || trace?.description || \"Transaction\";\n\n const op = trace?.op;\n if (op && op !== \"default\" && op !== \"unknown\") {\n message = `[${op}] ${message}`;\n }\n\n const duration = getDuration(event.timestamp, event.start_timestamp);\n if (duration !== undefined) {\n message += ` [${Math.round(duration)}ms]`;\n }\n\n const status = trace?.status;\n if (status && status !== \"ok\") {\n message += ` [${status}]`;\n }\n\n const spanCount = event.spans?.length;\n if (spanCount && spanCount > 0) {\n message += ` [${spanCount} span${spanCount === 1 ? \"\" : \"s\"}]`;\n }\n\n return [formatLogLine(event.timestamp, source, \"trace\", message)];\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAQO,SAAS,YAAY,OAA+B,gBAAuC;AAChG,QAAM,SAAS,oBAAoB,gBAAgB,KAAK;AAExD,QAAM,cAAc,MAAM;AAC1B,QAAM,QAAQ,MAAM,UAAU;AAE9B,MAAI,UAAU,eAAe,OAAO,eAAe;AAEnD,QAAM,KAAK,OAAO;AAClB,MAAI,MAAM,OAAO,aAAa,OAAO,WAAW;AAC9C,cAAU,IAAI,EAAE,KAAK,OAAO;AAAA,EAC9B;AAEA,QAAM,WAAW,YAAY,MAAM,WAAW,MAAM,eAAe;AACnE,MAAI,aAAa,QAAW;AAC1B,eAAW,KAAK,KAAK,MAAM,QAAQ,CAAC;AAAA,EACtC;AAEA,QAAM,SAAS,OAAO;AACtB,MAAI,UAAU,WAAW,MAAM;AAC7B,eAAW,KAAK,MAAM;AAAA,EACxB;AAEA,QAAM,YAAY,MAAM,OAAO;AAC/B,MAAI,aAAa,YAAY,GAAG;AAC9B,eAAW,KAAK,SAAS,QAAQ,cAAc,IAAI,KAAK,GAAG;AAAA,EAC7D;AAEA,SAAO,CAAC,cAAc,MAAM,WAAW,QAAQ,SAAS,OAAO,CAAC;AAClE;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/server/formatters/human/utils.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport chalk from \"chalk\";\nimport { parseBrowserFromUserAgent } from \"../../routes/stream/userAgent.ts\";\n\nexport const SOURCE_TYPES = [\"browser\", \"mobile\", \"server\"] as const;\nexport type SourceType = (typeof SOURCE_TYPES)[number];\n\nexport const LOG_LEVELS = [\"error\", \"warning\", \"log\", \"info\", \"trace\", \"debug\"] as const;\nexport type LogLevel = (typeof LOG_LEVELS)[number];\n\n/**\n * Sentinel theme terminal colors\n * Based on https://github.com/getsentry/sentinel\n */\nconst SENTINEL = {\n red: \"#fe4144\",\n green: \"#83da90\",\n yellow: \"#FDB81B\",\n blue: \"#226DFC\",\n magenta: \"#FF45A8\",\n white: \"#f9f8f9\",\n muted: \"#898294\",\n} as const;\n\nexport const SOURCE_COLORS: Record<SourceType, (text: string) => string> = {\n browser: chalk.hex(SENTINEL.yellow),\n mobile: chalk.hex(SENTINEL.blue),\n server: chalk.hex(SENTINEL.magenta),\n};\n\nexport const LOG_LEVEL_COLORS: Record<LogLevel, (text: string) => string> = {\n error: chalk.red.bold,\n warning: chalk.hex(\"#FFA500\"), // Orange\n log: chalk.white,\n info: chalk.cyan,\n trace: chalk.green,\n debug: chalk.dim,\n};\n\n/**\n * Helper to detect if a User-Agent string is from a browser\n */\nfunction isBrowserUserAgent(userAgent: string): boolean {\n const parsed = parseBrowserFromUserAgent(userAgent);\n return (\n parsed !== \"unknown\" &&\n (parsed.includes(\"Chrome\") || parsed.includes(\"Firefox\") || parsed.includes(\"Safari\") || parsed.includes(\"Edge\"))\n );\n}\n\n/**\n * Infer the source of an envelope as browser, mobile, or server using multiple signals\n * Priority order:\n * 1. Sender User-Agent (from HTTP request header)\n * 2. Platform & Runtime tags (from event payload)\n * 3. SDK name (fallback)\n *\n * Rules based on https://release-registry.services.sentry.io/sdks\n */\nexport function inferEnvelopeSource(envelopeHeader: Envelope[0], event?: any): SourceType {\n const sdkName = envelopeHeader?.sdk?.name || \"\";\n\n // 1. Mobile check (unchanged - already reliable from SDK name)\n // Mobile: Native mobile platforms and frameworks\n if (\n sdkName.includes(\"cocoa\") ||\n sdkName.includes(\"android\") ||\n sdkName.includes(\"react-native\") ||\n sdkName.includes(\"flutter\") ||\n sdkName.includes(\"capacitor\") ||\n sdkName.includes(\"cordova\") ||\n sdkName.includes(\"xamarin\") ||\n sdkName.includes(\"maui\") ||\n sdkName.includes(\"unity\") ||\n sdkName.includes(\"kotlin.kmp\")\n ) {\n return \"mobile\";\n }\n\n // 2. Sender User-Agent check\n const senderUserAgent = (envelopeHeader as any).__spotlight_sender_user_agent;\n if (senderUserAgent && typeof senderUserAgent === \"string\") {\n if (isBrowserUserAgent(senderUserAgent)) {\n return \"browser\";\n }\n // Server SDKs send server UAs like \"Node.js/*\", \"Python-urllib/*\", etc.\n // If we have a non-browser UA, we continue to further checks\n }\n\n // 3. Runtime tags check\n if (event?.tags?.runtime === \"browser\") {\n return \"browser\";\n }\n\n // 4. Platform & server-specific signals\n if (event?.contexts?.runtime?.name) {\n // Runtime context (node, CPython, etc.) indicates server\n return \"server\";\n }\n\n if (event?.server_name) {\n // server_name is a server-specific field\n return \"server\";\n }\n\n const platform = event?.platform;\n if (\n platform === \"node\" ||\n platform === \"python\" ||\n platform === \"ruby\" ||\n platform === \"php\" ||\n platform === \"java\" ||\n platform === \"go\" ||\n platform === \"rust\" ||\n platform === \"perl\" ||\n platform === \"elixir\" ||\n platform === \"csharp\" ||\n platform === \"dotnet\"\n ) {\n return \"server\";\n }\n\n // 5. SDK name check (existing logic as fallback)\n // Browser: JavaScript frameworks/libraries (excluding server/native runtimes and meta-frameworks)\n if (\n sdkName.startsWith(\"sentry.javascript.\") &&\n !sdkName.includes(\"node\") &&\n !sdkName.includes(\"bun\") &&\n !sdkName.includes(\"deno\") &&\n !sdkName.includes(\"electron\") &&\n !sdkName.includes(\"serverless\") &&\n !sdkName.includes(\"cloudflare\") &&\n !sdkName.includes(\"vercel-edge\") &&\n !sdkName.includes(\"wasm\") &&\n !sdkName.includes(\"opentelemetry\") &&\n !sdkName.includes(\"nextjs\") &&\n !sdkName.includes(\"remix\") &&\n !sdkName.includes(\"gatsby\") &&\n !sdkName.includes(\"astro\") &&\n !sdkName.includes(\"nuxt\") &&\n !sdkName.includes(\"sveltekit\") &&\n !sdkName.includes(\"solidstart\") &&\n !sdkName.includes(\"nestjs\") &&\n !sdkName.includes(\"tanstackstart\")\n ) {\n return \"browser\";\n }\n\n // Special case: Blazor WebAssembly runs in browser\n if (sdkName.includes(\"blazor.webassembly\")) {\n return \"browser\";\n }\n\n // Server: Everything else (node, python, ruby, go, php, java, dotnet, etc.)\n return \"server\";\n}\n\n/**\n * Format timestamp as local time HH:MM:SS\n */\nexport function formatLocalTime(timestamp?: number | string): string {\n let date: Date;\n\n if (!timestamp) {\n date = new Date();\n } else if (typeof timestamp === \"string\") {\n // Handle ISO string format (e.g., \"2023-11-22T16:23:50.406684Z\")\n date = new Date(timestamp);\n } else {\n // Handle Unix timestamp\n date = new Date(timestamp * 1000);\n }\n\n if (Number.isNaN(date.getTime())) {\n // placeholder with same width as valid timestamp for alignment in the logs\n return \"??:??:??\";\n }\n\n const hours = date.getHours().toString().padStart(2, \"0\");\n const minutes = date.getMinutes().toString().padStart(2, \"0\");\n const seconds = date.getSeconds().toString().padStart(2, \"0\");\n return `${hours}:${minutes}:${seconds}`;\n}\n\n/**\n * Padding helper for vertical alignment\n */\nexport function padLabel(label: string, width: number): string {\n return label.padEnd(width);\n}\n\n// Constants for consistent padding (adding brackets)\nexport const SOURCE_WIDTH = Math.max(...SOURCE_TYPES.map(s => `[${s.toUpperCase()}]`.length));\nexport const TYPE_WIDTH = Math.max(...LOG_LEVELS.map(l => `[${l.toUpperCase()}]`.length));\n\n/**\n * Colorize time with dim gray\n */\nexport function colorizeTime(time: string): string {\n return chalk.gray(time);\n}\n\n/**\n * Colorize source based on envelope source\n */\nexport function colorizeSource(source: string): string {\n const bracketed = `[${source}]`;\n const padded = padLabel(bracketed, SOURCE_WIDTH);\n const colorFn = SOURCE_COLORS[source as SourceType] || chalk.white;\n return colorFn(padded);\n}\n\n/**\n * Colorize event type\n */\nexport function colorizeType(type: string): string {\n const bracketed = `[${type.toUpperCase()}]`;\n const padded = padLabel(bracketed, TYPE_WIDTH);\n const colorFn = LOG_LEVEL_COLORS[type.toLowerCase() as LogLevel] || chalk.white;\n return colorFn(padded);\n}\n\n/**\n * Format a complete log line with proper alignment and colors\n */\nexport function formatLogLine(\n timestamp: number | string | undefined,\n source: SourceType,\n type: string,\n message: string,\n): string {\n const time = colorizeTime(formatLocalTime(timestamp));\n const coloredSource = colorizeSource(source);\n const coloredType = colorizeType(type);\n\n return `${time} ${coloredType} ${coloredSource} ${message}`;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/server/formatters/index.ts"],"sourcesContent":["import type { Envelope, EnvelopeItem } from \"@sentry/core\";\nimport { logger } from \"../logger.ts\";\nimport type { SentryEvent } from \"../parser/types.ts\";\nimport type { FormatterRegistry } from \"./types.ts\";\n\nexport * from \"./types.ts\";\n\nexport { formatters as mdFormatters } from \"./md/index.ts\";\nexport { formatters as logfmtFormatters } from \"./logfmt/index.ts\";\nexport { formatters as jsonFormatters } from \"./json/index.ts\";\nexport { formatters as humanFormatters } from \"./human/index.ts\";\n\n/**\n * Generic function to get a formatter from registry and apply it\n */\nexport function applyFormatter<K extends keyof FormatterRegistry>(\n registry: FormatterRegistry,\n eventType: K,\n payload: EnvelopeItem[1],\n envelopeHeader: Envelope[0],\n): string[] {\n const entry = registry[eventType];\n const event = payload as SentryEvent;\n if (!entry.typeGuard(event)) {\n logger.warn(`Skipping event: type guard failed for ${eventType} (event.type=${(event as any).type})`);\n return [];\n }\n // Type assertion needed because TypeScript can't narrow the union type properly\n return entry.format(event as any, envelopeHeader);\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAeO,SAAS,eACd,UACA,WACA,SACA,gBACU;AACV,QAAM,QAAQ,SAAS,SAAS;AAChC,QAAM,QAAQ;AACd,MAAI,CAAC,MAAM,UAAU,KAAK,GAAG;AAC3B,WAAO,KAAK,yCAAyC,SAAS,gBAAiB,MAAc,IAAI,GAAG;AACpG,WAAO,CAAA;AAAA,EACT;AAEA,SAAO,MAAM,OAAO,OAAc,cAAc;AAClD;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sources":["../../../../src/server/formatters/json/errors.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport type { SentryErrorEvent } from \"../../parser/index.ts\";\nimport { buildErrorData } from \"../shared/data-builders.ts\";\n\nexport function formatError(event: SentryErrorEvent, _envelopeHeader: Envelope[0]): string[] {\n return [JSON.stringify(buildErrorData(event))];\n}\n"],"names":[],"mappings":";;;;;;;;;;AAIO,SAAS,YAAY,OAAyB,iBAAwC;AAC3F,SAAO,CAAC,KAAK,UAAU,eAAe,KAAK,CAAC,CAAC;AAC/C;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/server/formatters/json/index.ts"],"sourcesContent":["import { isErrorEvent, isLogEvent, isTraceEvent } from \"../../parser/helpers.ts\";\nimport type { FormatterRegistry } from \"../types.ts\";\nimport { formatError } from \"./errors.ts\";\nimport { formatLog } from \"./logs.ts\";\nimport { formatTrace } from \"./traces.ts\";\n\nexport const formatters: FormatterRegistry = {\n event: { typeGuard: isErrorEvent, format: formatError },\n log: { typeGuard: isLogEvent, format: formatLog },\n transaction: { typeGuard: isTraceEvent, format: formatTrace },\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAMO,MAAM,aAAgC;AAAA,EAC3C,OAAO,EAAE,WAAW,cAAc,QAAQ,YAAA;AAAA,EAC1C,KAAK,EAAE,WAAW,YAAY,QAAQ,UAAA;AAAA,EACtC,aAAa,EAAE,WAAW,cAAc,QAAQ,YAAA;AAClD;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sources":["../../../../src/server/formatters/json/logs.ts"],"sourcesContent":["import type { Envelope, SerializedLog } from \"@sentry/core\";\nimport type { SentryLogEvent } from \"../../parser/index.ts\";\nimport { buildLogData } from \"../shared/data-builders.ts\";\n\nfunction formatSingleLog(log: SerializedLog): string {\n return JSON.stringify(buildLogData(log));\n}\n\nexport function formatLog(event: SentryLogEvent, _envelopeHeader: Envelope[0]): string[] {\n return event.items.map(formatSingleLog);\n}\n"],"names":[],"mappings":";;;;;;;;;;AAIA,SAAS,gBAAgB,KAA4B;AACnD,SAAO,KAAK,UAAU,aAAa,GAAG,CAAC;AACzC;AAEO,SAAS,UAAU,OAAuB,iBAAwC;AACvF,SAAO,MAAM,MAAM,IAAI,eAAe;AACxC;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"traces.js","sources":["../../../../src/server/formatters/json/traces.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport type { SentryTransactionEvent } from \"../../parser/index.ts\";\nimport { buildTraceData } from \"../shared/data-builders.ts\";\n\nexport function formatTrace(event: SentryTransactionEvent, _envelopeHeader: Envelope[0]): string[] {\n return [JSON.stringify(buildTraceData(event))];\n}\n"],"names":[],"mappings":";;;;;;;;;;AAIO,SAAS,YAAY,OAA+B,iBAAwC;AACjG,SAAO,CAAC,KAAK,UAAU,eAAe,KAAK,CAAC,CAAC;AAC/C;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sources":["../../../../src/server/formatters/logfmt/errors.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport logfmt from \"logfmt\";\nimport type { SentryErrorEvent } from \"../../parser/index.ts\";\nimport { buildErrorData } from \"../shared/data-builders.ts\";\n\nexport function formatError(event: SentryErrorEvent, _envelopeHeader: Envelope[0]): string[] {\n return [logfmt.stringify(buildErrorData(event))];\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAKO,SAAS,YAAY,OAAyB,iBAAwC;AAC3F,SAAO,CAAC,OAAO,UAAU,eAAe,KAAK,CAAC,CAAC;AACjD;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/server/formatters/logfmt/index.ts"],"sourcesContent":["import { isErrorEvent, isLogEvent, isTraceEvent } from \"../../parser/helpers.ts\";\nimport type { FormatterRegistry } from \"../types.ts\";\nimport { formatError } from \"./errors.ts\";\nimport { formatLog } from \"./logs.ts\";\nimport { formatTrace } from \"./traces.ts\";\n\nexport const formatters: FormatterRegistry = {\n event: { typeGuard: isErrorEvent, format: formatError },\n log: { typeGuard: isLogEvent, format: formatLog },\n transaction: { typeGuard: isTraceEvent, format: formatTrace },\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAMO,MAAM,aAAgC;AAAA,EAC3C,OAAO,EAAE,WAAW,cAAc,QAAQ,YAAA;AAAA,EAC1C,KAAK,EAAE,WAAW,YAAY,QAAQ,UAAA;AAAA,EACtC,aAAa,EAAE,WAAW,cAAc,QAAQ,YAAA;AAClD;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sources":["../../../../src/server/formatters/logfmt/logs.ts"],"sourcesContent":["import type { Envelope, SerializedLog } from \"@sentry/core\";\nimport logfmt from \"logfmt\";\nimport type { SentryLogEvent } from \"../../parser/index.ts\";\nimport { formatTimestamp, mapFields } from \"../utils.ts\";\n\nfunction formatSingleLog(log: SerializedLog): string {\n const data: Record<string, any> = {\n timestamp: formatTimestamp(log.timestamp),\n level: log.level,\n type: \"log\",\n };\n\n mapFields(log, data, {\n message: \"body\",\n trace_id: \"trace_id\",\n severity_number: \"severity_number\",\n });\n\n if (log.attributes) {\n for (const [key, attr] of Object.entries(log.attributes)) {\n data[key] = attr.value;\n }\n }\n\n return logfmt.stringify(data);\n}\n\nexport function formatLog(event: SentryLogEvent, _envelopeHeader: Envelope[0]): string[] {\n return event.items.map(formatSingleLog);\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAKA,SAAS,gBAAgB,KAA4B;AACnD,QAAM,OAA4B;AAAA,IAChC,WAAW,gBAAgB,IAAI,SAAS;AAAA,IACxC,OAAO,IAAI;AAAA,IACX,MAAM;AAAA,EAAA;AAGR,YAAU,KAAK,MAAM;AAAA,IACnB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,iBAAiB;AAAA,EAAA,CAClB;AAED,MAAI,IAAI,YAAY;AAClB,eAAW,CAAC,KAAK,IAAI,KAAK,OAAO,QAAQ,IAAI,UAAU,GAAG;AACxD,WAAK,GAAG,IAAI,KAAK;AAAA,IACnB;AAAA,EACF;AAEA,SAAO,OAAO,UAAU,IAAI;AAC9B;AAEO,SAAS,UAAU,OAAuB,iBAAwC;AACvF,SAAO,MAAM,MAAM,IAAI,eAAe;AACxC;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"traces.js","sources":["../../../../src/server/formatters/logfmt/traces.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport logfmt from \"logfmt\";\nimport type { SentryTransactionEvent } from \"../../parser/index.ts\";\nimport { buildTraceData } from \"../shared/data-builders.ts\";\n\nexport function formatTrace(event: SentryTransactionEvent, _envelopeHeader: Envelope[0]): string[] {\n return [logfmt.stringify(buildTraceData(event))];\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAKO,SAAS,YAAY,OAA+B,iBAAwC;AACjG,SAAO,CAAC,OAAO,UAAU,eAAe,KAAK,CAAC,CAAC;AACjD;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sources":["../../../../src/server/formatters/md/errors.ts"],"sourcesContent":["import type { Envelope, EnvelopeItem } from \"@sentry/core\";\nimport type { z } from \"zod/v3\";\nimport { type SentryErrorEvent, type SentryEvent, isErrorEvent } from \"../../parser/index.ts\";\nimport type { EventContainer } from \"../../utils/index.ts\";\nimport type { ErrorEventSchema } from \"../schema.ts\";\nimport { formatTimestamp } from \"../utils.ts\";\nimport { formatEventOutput } from \"./event.ts\";\n\nexport function formatErrorEnvelope(container: EventContainer) {\n const processedEnvelope = container.getParsedEnvelope();\n\n const {\n envelope: [envelopeHeader, items],\n } = processedEnvelope;\n\n const formatted: string[] = [];\n for (const item of items) {\n const [{ type }, payload] = item;\n\n if (type === \"event\" && isErrorEvent(payload as SentryEvent)) {\n formatted.push(...formatError(payload, envelopeHeader));\n }\n }\n\n return formatted;\n}\n\nexport function processErrorEvent(event: any): z.infer<typeof ErrorEventSchema> {\n const entries: z.infer<typeof ErrorEventSchema>[\"entries\"] = [];\n\n if (event.exception) {\n entries.push({\n type: \"exception\",\n data: event.exception,\n });\n }\n\n if (event.request) {\n entries.push({\n type: \"request\",\n data: event.request,\n });\n }\n\n if (event.breadcrumbs) {\n entries.push({\n type: \"breadcrumbs\",\n data: event.breadcrumbs,\n });\n }\n\n if (event.spans) {\n entries.push({\n type: \"spans\",\n data: event.spans,\n });\n }\n\n if (event.threads) {\n entries.push({\n type: \"threads\",\n data: event.threads,\n });\n }\n\n const message = typeof event.message === \"string\" ? event.message : (event.message?.formatted ?? \"\");\n\n return {\n message,\n id: event.event_id ?? \"\",\n type: \"error\" as const,\n culprit: event.culprit ?? null,\n tags: Object.entries(event.tags ?? {}).map(([key, value]) => ({\n key,\n value: String(value),\n })),\n dateCreated: formatTimestamp(event.timestamp),\n title: message,\n entries,\n contexts: event.contexts as any,\n platform: event.platform,\n };\n}\n\n/**\n * Format an error event to markdown string\n */\nexport function formatError(payload: EnvelopeItem[1], _envelopeHeader: Envelope[0]): string[] {\n const event = payload as SentryErrorEvent;\n return [formatEventOutput(processErrorEvent(event))];\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAQO,SAAS,oBAAoB,WAA2B;AAC7D,QAAM,oBAAoB,UAAU,kBAAA;AAEpC,QAAM;AAAA,IACJ,UAAU,CAAC,gBAAgB,KAAK;AAAA,EAAA,IAC9B;AAEJ,QAAM,YAAsB,CAAA;AAC5B,aAAW,QAAQ,OAAO;AACxB,UAAM,CAAC,EAAE,QAAQ,OAAO,IAAI;AAE5B,QAAI,SAAS,WAAW,aAAa,OAAsB,GAAG;AAC5D,gBAAU,KAAK,GAAG,YAAY,OAAuB,CAAC;AAAA,IACxD;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,kBAAkB,OAA8C;AAC9E,QAAM,UAAuD,CAAA;AAE7D,MAAI,MAAM,WAAW;AACnB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,MAAI,MAAM,SAAS;AACjB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,MAAI,MAAM,aAAa;AACrB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,MAAI,MAAM,OAAO;AACf,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,MAAI,MAAM,SAAS;AACjB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,QAAM,UAAU,OAAO,MAAM,YAAY,WAAW,MAAM,UAAW,MAAM,SAAS,aAAa;AAEjG,SAAO;AAAA,IACL;AAAA,IACA,IAAI,MAAM,YAAY;AAAA,IACtB,MAAM;AAAA,IACN,SAAS,MAAM,WAAW;AAAA,IAC1B,MAAM,OAAO,QAAQ,MAAM,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO;AAAA,MAC5D;AAAA,MACA,OAAO,OAAO,KAAK;AAAA,IAAA,EACnB;AAAA,IACF,aAAa,gBAAgB,MAAM,SAAS;AAAA,IAC5C,OAAO;AAAA,IACP;AAAA,IACA,UAAU,MAAM;AAAA,IAChB,UAAU,MAAM;AAAA,EAAA;AAEpB;AAKO,SAAS,YAAY,SAA0B,iBAAwC;AAC5F,QAAM,QAAQ;AACd,SAAO,CAAC,kBAAkB,kBAAkB,KAAK,CAAC,CAAC;AACrD;"}
|