@spotlightjs/spotlight 4.5.1 → 4.7.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 +18 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/_sentry-release-injection-file.js +11 -0
- package/dist/_virtual/_sentry-release-injection-file.js.map +1 -0
- package/dist/_virtual/cache.js +13 -0
- package/dist/_virtual/cache.js.map +1 -0
- package/dist/_virtual/index.js +13 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/_virtual/re.js +13 -0
- package/dist/_virtual/re.js.map +1 -0
- package/dist/_virtual/uri.all.js +13 -0
- package/dist/_virtual/uri.all.js.map +1 -0
- package/dist/bootstrap.d.ts +0 -0
- package/dist/electron-index.d.ts +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/instrument.js +83 -0
- package/dist/instrument.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js +241 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +64 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +196 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +604 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js +76 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +391 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js +41 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js.map +1 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1045 -0
- package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.js +365 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/cache.js +30 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/cache.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/async.js +74 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/async.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js +37 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js +119 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/index.js +288 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js +228 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js +101 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js +19 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js +25 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/util.js +192 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/util.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/data.js +57 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/data.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js +48 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js +160 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js +90 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js +95 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js +90 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js +52 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js +83 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js +26 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js +63 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js +88 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js +230 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js +171 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js +72 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js +157 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js +110 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js +67 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js +147 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js +90 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js +95 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js +81 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js +85 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js +322 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js +84 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js +134 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js +263 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js +95 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js +464 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/keyword.js +108 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/keyword.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/data.json.js +49 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/data.json.js.map +1 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/json-schema-draft-07.json.js +265 -0
- package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/json-schema-draft-07.json.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +41 -0
- package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js.map +1 -0
- package/dist/node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js +62 -0
- package/dist/node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js.map +1 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/helper/streaming/sse.js +32 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/helper/streaming/sse.js.map +1 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/middleware/cors/index.js +95 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/middleware/cors/index.js.map +1 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/html.js +43 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/html.js.map +1 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/stream.js +77 -0
- package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/stream.js.map +1 -0
- package/dist/node_modules/.pnpm/json-schema-traverse@0.4.1/node_modules/json-schema-traverse/index.js +92 -0
- package/dist/node_modules/.pnpm/json-schema-traverse@0.4.1/node_modules/json-schema-traverse/index.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.js +132 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.js +397 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.js +286 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.js +20 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.js +62 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.js +55 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.js +21 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.js +51 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.js +31 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.js +29 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.js +20 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.js +24 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.js +20 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.js +143 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js +38 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js +16 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.js +31 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.js +44 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.js +25 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js +100 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.js +21 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.js +37 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.js +37 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.js +66 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.js +83 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.js +58 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.js +172 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.js +17 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.js.map +1 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.js +23 -0
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.js.map +1 -0
- package/dist/node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.js +1035 -0
- package/dist/node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js +46 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js +32 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +27 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +20 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js +70 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +27 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +37 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +57 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +17 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +16 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +16 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +70 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +19 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +17 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +18 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +53 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +30 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +38 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +24 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +21 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +20 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +44 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +60 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +81 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +31 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +31 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +16 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +16 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +67 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +32 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +330 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +39 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +18 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +80 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +16 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js +117 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +1 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +75 -0
- package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +1 -0
- package/dist/run.d.ts +0 -1
- package/dist/run.js +29 -51775
- package/dist/run.js.map +1 -0
- package/dist/sentry-config.d.ts +7 -0
- package/dist/sentry-config.js +20 -0
- package/dist/sentry-config.js.map +1 -0
- package/dist/server/cli/help.d.ts +1 -0
- package/dist/server/cli/help.js +55 -0
- package/dist/server/cli/help.js.map +1 -0
- package/dist/server/cli/mcp.d.ts +2 -0
- package/dist/server/cli/mcp.js +117 -0
- package/dist/server/cli/mcp.js.map +1 -0
- package/dist/server/cli/run.d.ts +2 -0
- package/dist/server/cli/run.js +296 -0
- package/dist/server/cli/run.js.map +1 -0
- package/dist/server/cli/server.d.ts +2 -0
- package/dist/server/cli/server.js +23 -0
- package/dist/server/cli/server.js.map +1 -0
- package/dist/server/cli/tail.d.ts +8 -0
- package/dist/server/cli/tail.js +113 -0
- package/dist/server/cli/tail.js.map +1 -0
- package/dist/server/cli.d.ts +17 -0
- package/dist/server/cli.js +146 -0
- package/dist/server/cli.js.map +1 -0
- package/dist/server/constants.d.ts +3 -0
- package/dist/server/constants.js +16 -0
- package/dist/server/constants.js.map +1 -0
- package/dist/server/formatters/human/errors.d.ts +6 -0
- package/dist/server/formatters/human/errors.js +37 -0
- package/dist/server/formatters/human/errors.js.map +1 -0
- package/dist/server/formatters/human/index.d.ts +2 -0
- package/dist/server/formatters/human/index.js +22 -0
- package/dist/server/formatters/human/index.js.map +1 -0
- package/dist/server/formatters/human/logs.d.ts +6 -0
- package/dist/server/formatters/human/logs.js +32 -0
- package/dist/server/formatters/human/logs.js.map +1 -0
- package/dist/server/formatters/human/traces.d.ts +6 -0
- package/dist/server/formatters/human/traces.js +38 -0
- package/dist/server/formatters/human/traces.js.map +1 -0
- package/dist/server/formatters/human/utils.d.ts +43 -0
- package/dist/server/formatters/human/utils.js +122 -0
- package/dist/server/formatters/human/utils.js.map +1 -0
- package/dist/server/formatters/index.d.ts +11 -0
- package/dist/server/formatters/index.js +28 -0
- package/dist/server/formatters/index.js.map +1 -0
- package/dist/server/formatters/json/errors.d.ts +3 -0
- package/dist/server/formatters/json/errors.js +17 -0
- package/dist/server/formatters/json/errors.js.map +1 -0
- package/dist/server/formatters/json/index.d.ts +2 -0
- package/dist/server/formatters/json/index.js +22 -0
- package/dist/server/formatters/json/index.js.map +1 -0
- package/dist/server/formatters/json/logs.d.ts +3 -0
- package/dist/server/formatters/json/logs.js +20 -0
- package/dist/server/formatters/json/logs.js.map +1 -0
- package/dist/server/formatters/json/traces.d.ts +3 -0
- package/dist/server/formatters/json/traces.js +17 -0
- package/dist/server/formatters/json/traces.js.map +1 -0
- package/dist/server/formatters/logfmt/errors.d.ts +3 -0
- package/dist/server/formatters/logfmt/errors.js +18 -0
- package/dist/server/formatters/logfmt/errors.js.map +1 -0
- package/dist/server/formatters/logfmt/index.d.ts +2 -0
- package/dist/server/formatters/logfmt/index.js +22 -0
- package/dist/server/formatters/logfmt/index.js.map +1 -0
- package/dist/server/formatters/logfmt/logs.d.ts +3 -0
- package/dist/server/formatters/logfmt/logs.js +36 -0
- package/dist/server/formatters/logfmt/logs.js.map +1 -0
- package/dist/server/formatters/logfmt/traces.d.ts +3 -0
- package/dist/server/formatters/logfmt/traces.js +18 -0
- package/dist/server/formatters/logfmt/traces.js.map +1 -0
- package/dist/server/formatters/md/errors.d.ts +10 -0
- package/dist/server/formatters/md/errors.js +86 -0
- package/dist/server/formatters/md/errors.js.map +1 -0
- package/dist/server/formatters/md/event.d.ts +11 -0
- package/dist/server/formatters/md/event.js +371 -0
- package/dist/server/formatters/md/event.js.map +1 -0
- package/dist/server/formatters/md/index.d.ts +2 -0
- package/dist/server/formatters/md/index.js +22 -0
- package/dist/server/formatters/md/index.js.map +1 -0
- package/dist/server/formatters/md/logs.d.ts +7 -0
- package/dist/server/formatters/md/logs.js +48 -0
- package/dist/server/formatters/md/logs.js.map +1 -0
- package/dist/server/formatters/md/traces.d.ts +87 -0
- package/dist/server/formatters/md/traces.js +309 -0
- package/dist/server/formatters/md/traces.js.map +1 -0
- package/dist/server/formatters/schema.d.ts +6810 -0
- package/dist/server/formatters/shared/data-builders.d.ts +15 -0
- package/dist/server/formatters/shared/data-builders.js +129 -0
- package/dist/server/formatters/shared/data-builders.js.map +1 -0
- package/dist/server/formatters/types.d.ts +33 -0
- package/dist/server/formatters/types.js +14 -0
- package/dist/server/formatters/types.js.map +1 -0
- package/dist/server/formatters/utils.d.ts +25 -0
- package/dist/server/formatters/utils.js +55 -0
- package/dist/server/formatters/utils.js.map +1 -0
- package/dist/server/handlers/fileToServe.d.ts +2 -0
- package/dist/server/handlers/fileToServe.js +36 -0
- package/dist/server/handlers/fileToServe.js.map +1 -0
- package/dist/server/handlers/index.d.ts +1 -0
- package/dist/server/logger.d.ts +5 -0
- package/dist/server/logger.js +40 -0
- package/dist/server/logger.js.map +1 -0
- package/dist/server/main.d.ts +6 -0
- package/dist/server/main.js +193 -0
- package/dist/server/main.js.map +1 -0
- package/dist/server/mcp/constants.d.ts +3 -0
- package/dist/server/mcp/constants.js +88 -0
- package/dist/server/mcp/constants.js.map +1 -0
- package/dist/server/mcp/mcp.d.ts +31 -0
- package/dist/server/mcp/mcp.js +404 -0
- package/dist/server/mcp/mcp.js.map +1 -0
- package/dist/server/messageBuffer.d.ts +40 -0
- package/dist/server/messageBuffer.js +288 -0
- package/dist/server/messageBuffer.js.map +1 -0
- package/dist/server/parser/helpers.d.ts +10 -0
- package/dist/server/parser/helpers.js +41 -0
- package/dist/server/parser/helpers.js.map +1 -0
- package/dist/server/parser/index.d.ts +3 -0
- package/dist/server/parser/processEnvelope.d.ts +17 -0
- package/dist/server/parser/processEnvelope.js +95 -0
- package/dist/server/parser/processEnvelope.js.map +1 -0
- package/dist/server/parser/types.d.ts +198 -0
- package/dist/server/routes/clear.d.ts +3 -0
- package/dist/server/routes/clear.js +27 -0
- package/dist/server/routes/clear.js.map +1 -0
- package/dist/server/routes/contextlines/index.d.ts +3 -0
- package/dist/server/routes/contextlines/index.js +53 -0
- package/dist/server/routes/contextlines/index.js.map +1 -0
- package/dist/server/routes/contextlines/utils.d.ts +20 -0
- package/dist/server/routes/contextlines/utils.js +92 -0
- package/dist/server/routes/contextlines/utils.js.map +1 -0
- package/dist/server/routes/health.d.ts +3 -0
- package/dist/server/routes/health.js +16 -0
- package/dist/server/routes/health.js.map +1 -0
- package/dist/server/routes/index.d.ts +3 -0
- package/dist/server/routes/index.js +28 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/mcp.d.ts +3 -0
- package/dist/server/routes/mcp.js +29 -0
- package/dist/server/routes/mcp.js.map +1 -0
- package/dist/server/routes/open.d.ts +4 -0
- package/dist/server/routes/open.js +34 -0
- package/dist/server/routes/open.js.map +1 -0
- package/dist/server/routes/stream/debugLogging.d.ts +11 -0
- package/dist/server/routes/stream/debugLogging.js +68 -0
- package/dist/server/routes/stream/debugLogging.js.map +1 -0
- package/dist/server/routes/stream/index.d.ts +34 -0
- package/dist/server/routes/stream/index.js +110 -0
- package/dist/server/routes/stream/index.js.map +1 -0
- package/dist/server/routes/stream/streaming.d.ts +3 -0
- package/dist/server/routes/stream/streaming.js +35 -0
- package/dist/server/routes/stream/streaming.js.map +1 -0
- package/dist/server/routes/stream/userAgent.d.ts +11 -0
- package/dist/server/routes/stream/userAgent.js +34 -0
- package/dist/server/routes/stream/userAgent.js.map +1 -0
- package/dist/server/sdk.d.ts +15 -0
- package/dist/server/sdk.js +41 -0
- package/dist/server/sdk.js.map +1 -0
- package/dist/server/types/cli.d.ts +15 -0
- package/dist/server/types/env.d.ts +10 -0
- package/dist/server/types/index.d.ts +2 -0
- package/dist/server/types/utils.d.ts +56 -0
- package/dist/server/utils/cors.d.ts +42 -0
- package/dist/server/utils/cors.js +195 -0
- package/dist/server/utils/cors.js.map +1 -0
- package/dist/server/utils/docker-compose-parser.d.ts +20 -0
- package/dist/server/utils/docker-compose-parser.js +70 -0
- package/dist/server/utils/docker-compose-parser.js.map +1 -0
- package/dist/server/utils/docker-compose.d.ts +30 -0
- package/dist/server/utils/docker-compose.js +140 -0
- package/dist/server/utils/docker-compose.js.map +1 -0
- package/dist/server/utils/eventContainer.d.ts +34 -0
- package/dist/server/utils/eventContainer.js +80 -0
- package/dist/server/utils/eventContainer.js.map +1 -0
- package/dist/server/utils/extras.d.ts +5 -0
- package/dist/server/utils/extras.js +72 -0
- package/dist/server/utils/extras.js.map +1 -0
- package/dist/server/utils/getBuffer.d.ts +1 -0
- package/dist/server/utils/getBuffer.js +18 -0
- package/dist/server/utils/getBuffer.js.map +1 -0
- package/dist/server/utils/index.d.ts +4 -0
- package/dist/shared/constants.d.ts +3 -0
- package/dist/shared/constants.js +18 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/ui/assets/andromeeda.js +2 -0
- package/dist/ui/assets/andromeeda.js.map +1 -0
- package/dist/ui/assets/angular-html.js +2 -0
- package/dist/ui/assets/angular-html.js.map +1 -0
- package/dist/ui/assets/angular-ts.js +2 -0
- package/dist/ui/assets/angular-ts.js.map +1 -0
- package/dist/ui/assets/astro.js +2 -0
- package/dist/ui/assets/astro.js.map +1 -0
- package/dist/ui/assets/aurora-x.js +2 -0
- package/dist/ui/assets/aurora-x.js.map +1 -0
- package/dist/ui/assets/ayu-dark.js +2 -0
- package/dist/ui/assets/ayu-dark.js.map +1 -0
- package/dist/ui/assets/blade.js +2 -0
- package/dist/ui/assets/blade.js.map +1 -0
- package/dist/ui/assets/c.js +2 -0
- package/dist/ui/assets/c.js.map +1 -0
- package/dist/ui/assets/catppuccin-frappe.js +2 -0
- package/dist/ui/assets/catppuccin-frappe.js.map +1 -0
- package/dist/ui/assets/catppuccin-latte.js +2 -0
- package/dist/ui/assets/catppuccin-latte.js.map +1 -0
- package/dist/ui/assets/catppuccin-macchiato.js +2 -0
- package/dist/ui/assets/catppuccin-macchiato.js.map +1 -0
- package/dist/ui/assets/catppuccin-mocha.js +2 -0
- package/dist/ui/assets/catppuccin-mocha.js.map +1 -0
- package/dist/ui/assets/coffee.js +2 -0
- package/dist/ui/assets/coffee.js.map +1 -0
- package/dist/ui/assets/cpp.js +2 -0
- package/dist/ui/assets/cpp.js.map +1 -0
- package/dist/ui/assets/css.js +2 -0
- package/dist/ui/assets/css.js.map +1 -0
- package/dist/ui/assets/dark-plus.js +2 -0
- package/dist/ui/assets/dark-plus.js.map +1 -0
- package/dist/ui/assets/dracula-soft.js +2 -0
- package/dist/ui/assets/dracula-soft.js.map +1 -0
- package/dist/ui/assets/dracula.js +2 -0
- package/dist/ui/assets/dracula.js.map +1 -0
- package/dist/ui/assets/everforest-dark.js +2 -0
- package/dist/ui/assets/everforest-dark.js.map +1 -0
- package/dist/ui/assets/everforest-light.js +2 -0
- package/dist/ui/assets/everforest-light.js.map +1 -0
- package/dist/ui/assets/firefox.svg +105 -0
- package/dist/ui/assets/github-dark-default.js +2 -0
- package/dist/ui/assets/github-dark-default.js.map +1 -0
- package/dist/ui/assets/github-dark-dimmed.js +2 -0
- package/dist/ui/assets/github-dark-dimmed.js.map +1 -0
- package/dist/ui/assets/github-dark-high-contrast.js +2 -0
- package/dist/ui/assets/github-dark-high-contrast.js.map +1 -0
- package/dist/ui/assets/github-dark.js +2 -0
- package/dist/ui/assets/github-dark.js.map +1 -0
- package/dist/ui/assets/github-light-default.js +2 -0
- package/dist/ui/assets/github-light-default.js.map +1 -0
- package/dist/ui/assets/github-light-high-contrast.js +2 -0
- package/dist/ui/assets/github-light-high-contrast.js.map +1 -0
- package/dist/ui/assets/github-light.js +2 -0
- package/dist/ui/assets/github-light.js.map +1 -0
- package/dist/ui/assets/glsl.js +2 -0
- package/dist/ui/assets/glsl.js.map +1 -0
- package/dist/ui/assets/graphql.js +2 -0
- package/dist/ui/assets/graphql.js.map +1 -0
- package/dist/ui/assets/gruvbox-dark-hard.js +2 -0
- package/dist/ui/assets/gruvbox-dark-hard.js.map +1 -0
- package/dist/ui/assets/gruvbox-dark-medium.js +2 -0
- package/dist/ui/assets/gruvbox-dark-medium.js.map +1 -0
- package/dist/ui/assets/gruvbox-dark-soft.js +2 -0
- package/dist/ui/assets/gruvbox-dark-soft.js.map +1 -0
- package/dist/ui/assets/gruvbox-light-hard.js +2 -0
- package/dist/ui/assets/gruvbox-light-hard.js.map +1 -0
- package/dist/ui/assets/gruvbox-light-medium.js +2 -0
- package/dist/ui/assets/gruvbox-light-medium.js.map +1 -0
- package/dist/ui/assets/gruvbox-light-soft.js +2 -0
- package/dist/ui/assets/gruvbox-light-soft.js.map +1 -0
- package/dist/ui/assets/haml.js +2 -0
- package/dist/ui/assets/haml.js.map +1 -0
- package/dist/ui/assets/handlebars.js +2 -0
- package/dist/ui/assets/handlebars.js.map +1 -0
- package/dist/ui/assets/houston.js +2 -0
- package/dist/ui/assets/houston.js.map +1 -0
- package/dist/ui/assets/html-derivative.js +2 -0
- package/dist/ui/assets/html-derivative.js.map +1 -0
- package/dist/ui/assets/html.js +2 -0
- package/dist/ui/assets/html.js.map +1 -0
- package/dist/ui/assets/http.js +2 -0
- package/dist/ui/assets/http.js.map +1 -0
- package/dist/ui/assets/imba.js +2 -0
- package/dist/ui/assets/imba.js.map +1 -0
- package/dist/ui/assets/index.js +153 -0
- package/dist/ui/assets/index.js.map +1 -0
- package/dist/ui/assets/index2.js +2 -0
- package/dist/ui/assets/index2.js.map +1 -0
- package/dist/ui/assets/instrumentation.js +25 -0
- package/dist/ui/assets/instrumentation.js.map +1 -0
- package/dist/ui/assets/java.js +2 -0
- package/dist/ui/assets/java.js.map +1 -0
- package/dist/ui/assets/javascript.js +2 -0
- package/dist/ui/assets/javascript.js.map +1 -0
- package/dist/ui/assets/jinja.js +2 -0
- package/dist/ui/assets/jinja.js.map +1 -0
- package/dist/ui/assets/jison.js +2 -0
- package/dist/ui/assets/jison.js.map +1 -0
- package/dist/ui/assets/json.js +2 -0
- package/dist/ui/assets/json.js.map +1 -0
- package/dist/ui/assets/json5.js +2 -0
- package/dist/ui/assets/json5.js.map +1 -0
- package/dist/ui/assets/jsonc.js +2 -0
- package/dist/ui/assets/jsonc.js.map +1 -0
- package/dist/ui/assets/jsonl.js +2 -0
- package/dist/ui/assets/jsonl.js.map +1 -0
- package/dist/ui/assets/jsx.js +2 -0
- package/dist/ui/assets/jsx.js.map +1 -0
- package/dist/ui/assets/julia.js +2 -0
- package/dist/ui/assets/julia.js.map +1 -0
- package/dist/ui/assets/kanagawa-dragon.js +2 -0
- package/dist/ui/assets/kanagawa-dragon.js.map +1 -0
- package/dist/ui/assets/kanagawa-lotus.js +2 -0
- package/dist/ui/assets/kanagawa-lotus.js.map +1 -0
- package/dist/ui/assets/kanagawa-wave.js +2 -0
- package/dist/ui/assets/kanagawa-wave.js.map +1 -0
- package/dist/ui/assets/laserwave.js +2 -0
- package/dist/ui/assets/laserwave.js.map +1 -0
- package/dist/ui/assets/less.js +2 -0
- package/dist/ui/assets/less.js.map +1 -0
- package/dist/ui/assets/light-plus.js +2 -0
- package/dist/ui/assets/light-plus.js.map +1 -0
- package/dist/ui/assets/main.css +1 -0
- package/dist/ui/assets/main.js +3 -0
- package/dist/ui/assets/main.js.map +1 -0
- package/dist/ui/assets/markdown.js +2 -0
- package/dist/ui/assets/markdown.js.map +1 -0
- package/dist/ui/assets/marko.js +2 -0
- package/dist/ui/assets/marko.js.map +1 -0
- package/dist/ui/assets/material-theme-darker.js +2 -0
- package/dist/ui/assets/material-theme-darker.js.map +1 -0
- package/dist/ui/assets/material-theme-lighter.js +2 -0
- package/dist/ui/assets/material-theme-lighter.js.map +1 -0
- package/dist/ui/assets/material-theme-ocean.js +2 -0
- package/dist/ui/assets/material-theme-ocean.js.map +1 -0
- package/dist/ui/assets/material-theme-palenight.js +2 -0
- package/dist/ui/assets/material-theme-palenight.js.map +1 -0
- package/dist/ui/assets/material-theme.js +2 -0
- package/dist/ui/assets/material-theme.js.map +1 -0
- package/dist/ui/assets/mdc.js +2 -0
- package/dist/ui/assets/mdc.js.map +1 -0
- package/dist/ui/assets/mdx.js +2 -0
- package/dist/ui/assets/mdx.js.map +1 -0
- package/dist/ui/assets/min-dark.js +2 -0
- package/dist/ui/assets/min-dark.js.map +1 -0
- package/dist/ui/assets/min-light.js +2 -0
- package/dist/ui/assets/min-light.js.map +1 -0
- package/dist/ui/assets/monokai.js +2 -0
- package/dist/ui/assets/monokai.js.map +1 -0
- package/dist/ui/assets/nestjs.svg +4 -0
- package/dist/ui/assets/night-owl.js +2 -0
- package/dist/ui/assets/night-owl.js.map +1 -0
- package/dist/ui/assets/nord.js +2 -0
- package/dist/ui/assets/nord.js.map +1 -0
- package/dist/ui/assets/one-dark-pro.js +2 -0
- package/dist/ui/assets/one-dark-pro.js.map +1 -0
- package/dist/ui/assets/one-light.js +2 -0
- package/dist/ui/assets/one-light.js.map +1 -0
- package/dist/ui/assets/php.js +2 -0
- package/dist/ui/assets/php.js.map +1 -0
- package/dist/ui/assets/plastic.js +2 -0
- package/dist/ui/assets/plastic.js.map +1 -0
- package/dist/ui/assets/poimandres.js +2 -0
- package/dist/ui/assets/poimandres.js.map +1 -0
- package/dist/ui/assets/postcss.js +2 -0
- package/dist/ui/assets/postcss.js.map +1 -0
- package/dist/ui/assets/pug.js +2 -0
- package/dist/ui/assets/pug.js.map +1 -0
- package/dist/ui/assets/python.js +2 -0
- package/dist/ui/assets/python.js.map +1 -0
- package/dist/ui/assets/r.js +2 -0
- package/dist/ui/assets/r.js.map +1 -0
- package/dist/ui/assets/raleway-cyrillic-400-normal.woff +0 -0
- package/dist/ui/assets/raleway-cyrillic-400-normal.woff2 +0 -0
- package/dist/ui/assets/raleway-cyrillic-ext-400-normal.woff +0 -0
- package/dist/ui/assets/raleway-cyrillic-ext-400-normal.woff2 +0 -0
- package/dist/ui/assets/raleway-latin-400-normal.woff +0 -0
- package/dist/ui/assets/raleway-latin-400-normal.woff2 +0 -0
- package/dist/ui/assets/raleway-latin-ext-400-normal.woff +0 -0
- package/dist/ui/assets/raleway-latin-ext-400-normal.woff2 +0 -0
- package/dist/ui/assets/raleway-vietnamese-400-normal.woff +0 -0
- package/dist/ui/assets/raleway-vietnamese-400-normal.woff2 +0 -0
- package/dist/ui/assets/red.js +2 -0
- package/dist/ui/assets/red.js.map +1 -0
- package/dist/ui/assets/regexp.js +2 -0
- package/dist/ui/assets/regexp.js.map +1 -0
- package/dist/ui/assets/rose-pine-dawn.js +2 -0
- package/dist/ui/assets/rose-pine-dawn.js.map +1 -0
- package/dist/ui/assets/rose-pine-moon.js +2 -0
- package/dist/ui/assets/rose-pine-moon.js.map +1 -0
- package/dist/ui/assets/rose-pine.js +2 -0
- package/dist/ui/assets/rose-pine.js.map +1 -0
- package/dist/ui/assets/safari.svg +38 -0
- package/dist/ui/assets/sass.js +2 -0
- package/dist/ui/assets/sass.js.map +1 -0
- package/dist/ui/assets/scss.js +2 -0
- package/dist/ui/assets/scss.js.map +1 -0
- package/dist/ui/assets/serverTimingMeta.js +51 -0
- package/dist/ui/assets/serverTimingMeta.js.map +1 -0
- package/dist/ui/assets/shellscript.js +2 -0
- package/dist/ui/assets/shellscript.js.map +1 -0
- package/dist/ui/assets/slack-dark.js +2 -0
- package/dist/ui/assets/slack-dark.js.map +1 -0
- package/dist/ui/assets/slack-ochin.js +2 -0
- package/dist/ui/assets/slack-ochin.js.map +1 -0
- package/dist/ui/assets/snazzy-light.js +2 -0
- package/dist/ui/assets/snazzy-light.js.map +1 -0
- package/dist/ui/assets/solarized-dark.js +2 -0
- package/dist/ui/assets/solarized-dark.js.map +1 -0
- package/dist/ui/assets/solarized-light.js +2 -0
- package/dist/ui/assets/solarized-light.js.map +1 -0
- package/dist/ui/assets/sql.js +2 -0
- package/dist/ui/assets/sql.js.map +1 -0
- package/dist/ui/assets/stylus.js +2 -0
- package/dist/ui/assets/stylus.js.map +1 -0
- package/dist/ui/assets/svelte.js +2 -0
- package/dist/ui/assets/svelte.js.map +1 -0
- package/dist/ui/assets/synthwave-84.js +2 -0
- package/dist/ui/assets/synthwave-84.js.map +1 -0
- package/dist/ui/assets/tokyo-night.js +2 -0
- package/dist/ui/assets/tokyo-night.js.map +1 -0
- package/dist/ui/assets/ts-tags.js +2 -0
- package/dist/ui/assets/ts-tags.js.map +1 -0
- package/dist/ui/assets/tsx.js +2 -0
- package/dist/ui/assets/tsx.js.map +1 -0
- package/dist/ui/assets/typescript.js +2 -0
- package/dist/ui/assets/typescript.js.map +1 -0
- package/dist/ui/assets/vesper.js +2 -0
- package/dist/ui/assets/vesper.js.map +1 -0
- package/dist/ui/assets/vitesse-black.js +2 -0
- package/dist/ui/assets/vitesse-black.js.map +1 -0
- package/dist/ui/assets/vitesse-dark.js +2 -0
- package/dist/ui/assets/vitesse-dark.js.map +1 -0
- package/dist/ui/assets/vitesse-light.js +2 -0
- package/dist/ui/assets/vitesse-light.js.map +1 -0
- package/dist/ui/assets/vue-html.js +2 -0
- package/dist/ui/assets/vue-html.js.map +1 -0
- package/dist/ui/assets/vue-vine.js +2 -0
- package/dist/ui/assets/vue-vine.js.map +1 -0
- package/dist/ui/assets/vue.js +2 -0
- package/dist/ui/assets/vue.js.map +1 -0
- package/dist/ui/assets/wasm.js +2 -0
- package/dist/ui/assets/wasm.js.map +1 -0
- package/dist/ui/assets/wasm2.js +2 -0
- package/dist/ui/assets/wasm2.js.map +1 -0
- package/dist/ui/assets/wgsl.js +2 -0
- package/dist/ui/assets/wgsl.js.map +1 -0
- package/dist/ui/assets/wit.js +2 -0
- package/dist/ui/assets/wit.js.map +1 -0
- package/dist/ui/assets/xml.js +2 -0
- package/dist/ui/assets/xml.js.map +1 -0
- package/dist/ui/assets/yaml.js +2 -0
- package/dist/ui/assets/yaml.js.map +1 -0
- package/dist/{overlay/src → ui}/index.html +34 -0
- package/dist/ui/manifest.json +1095 -0
- package/package.json +110 -20
- package/dist/overlay/assets/andromeeda-BIpZ7gaU.js +0 -1
- package/dist/overlay/assets/angular-html-BmadGEgW.js +0 -1
- package/dist/overlay/assets/angular-ts-D-QQnnGT.js +0 -1
- package/dist/overlay/assets/astro-DHnp0xIo.js +0 -1
- package/dist/overlay/assets/aurora-x-BwoVEUWZ.js +0 -1
- package/dist/overlay/assets/ayu-dark-CxPZkpb2.js +0 -1
- package/dist/overlay/assets/blade-OPzGcV14.js +0 -1
- package/dist/overlay/assets/c-eeMepfLm.js +0 -1
- package/dist/overlay/assets/catppuccin-frappe-5udUqgsX.js +0 -1
- package/dist/overlay/assets/catppuccin-latte-ufkS-HWv.js +0 -1
- package/dist/overlay/assets/catppuccin-macchiato-DzL2LPek.js +0 -1
- package/dist/overlay/assets/catppuccin-mocha-DDDDwkUT.js +0 -1
- package/dist/overlay/assets/coffee-Dl27lzbd.js +0 -1
- package/dist/overlay/assets/cpp-Cj177cuW.js +0 -1
- package/dist/overlay/assets/css-CECN5uSL.js +0 -1
- package/dist/overlay/assets/dark-plus-pUHDTVV0.js +0 -1
- package/dist/overlay/assets/dracula-BtZx2Kac.js +0 -1
- package/dist/overlay/assets/dracula-soft-BKa-aqBv.js +0 -1
- package/dist/overlay/assets/everforest-dark-DMCBqXCK.js +0 -1
- package/dist/overlay/assets/everforest-light-BbXl82Em.js +0 -1
- package/dist/overlay/assets/github-dark-DenFmJkN.js +0 -1
- package/dist/overlay/assets/github-dark-default-BJPUVz4H.js +0 -1
- package/dist/overlay/assets/github-dark-dimmed-DUshB20C.js +0 -1
- package/dist/overlay/assets/github-dark-high-contrast-D3aGCnF8.js +0 -1
- package/dist/overlay/assets/github-light-JYsPkUQd.js +0 -1
- package/dist/overlay/assets/github-light-default-D99KPAby.js +0 -1
- package/dist/overlay/assets/github-light-high-contrast-BbmZE-Mp.js +0 -1
- package/dist/overlay/assets/glsl-CkUcVZNK.js +0 -1
- package/dist/overlay/assets/graphql-BLaPX4fU.js +0 -1
- package/dist/overlay/assets/gruvbox-dark-hard-C2ND4cMr.js +0 -1
- package/dist/overlay/assets/gruvbox-dark-medium-C8k4c8au.js +0 -1
- package/dist/overlay/assets/gruvbox-dark-soft-xx9Q6FaG.js +0 -1
- package/dist/overlay/assets/gruvbox-light-hard-BpUXv5in.js +0 -1
- package/dist/overlay/assets/gruvbox-light-medium-D3XFCoU1.js +0 -1
- package/dist/overlay/assets/gruvbox-light-soft-u7hpfz6Z.js +0 -1
- package/dist/overlay/assets/haml-6FagfhCM.js +0 -1
- package/dist/overlay/assets/handlebars-Bd5Y4M6I.js +0 -1
- package/dist/overlay/assets/houston-BDYrDoDW.js +0 -1
- package/dist/overlay/assets/html-7XVNRwN7.js +0 -1
- package/dist/overlay/assets/html-derivative-BNxZ5Yf6.js +0 -1
- package/dist/overlay/assets/http-WC357zBG.js +0 -1
- package/dist/overlay/assets/imba-CimUv-Uh.js +0 -1
- package/dist/overlay/assets/index-BfFEknL3.js +0 -1
- package/dist/overlay/assets/java-DY6VlHhP.js +0 -1
- package/dist/overlay/assets/javascript-Dp1Jmi5H.js +0 -1
- package/dist/overlay/assets/jinja-WEhOU5ES.js +0 -1
- package/dist/overlay/assets/jison-c2JI40PB.js +0 -1
- package/dist/overlay/assets/json-DxJze_jm.js +0 -1
- package/dist/overlay/assets/json5-BT4Fjg39.js +0 -1
- package/dist/overlay/assets/jsonc-CHjZD8gR.js +0 -1
- package/dist/overlay/assets/jsonl-BGuvDmy9.js +0 -1
- package/dist/overlay/assets/jsx-BtKADgXT.js +0 -1
- package/dist/overlay/assets/julia-DcoDQokW.js +0 -1
- package/dist/overlay/assets/kanagawa-dragon-CiKur4Hl.js +0 -1
- package/dist/overlay/assets/kanagawa-lotus-BKu-smKu.js +0 -1
- package/dist/overlay/assets/kanagawa-wave-CQwozSzG.js +0 -1
- package/dist/overlay/assets/laserwave-6a00oqik.js +0 -1
- package/dist/overlay/assets/less-B1GLI2Di.js +0 -1
- package/dist/overlay/assets/light-plus-CZuVqSLX.js +0 -1
- package/dist/overlay/assets/main.js +0 -224
- package/dist/overlay/assets/markdown-CrScaQ96.js +0 -1
- package/dist/overlay/assets/marko-DDi9qpQP.js +0 -1
- package/dist/overlay/assets/material-theme-D6KBX41T.js +0 -1
- package/dist/overlay/assets/material-theme-darker-CkRroheE.js +0 -1
- package/dist/overlay/assets/material-theme-lighter-BUBw43Yz.js +0 -1
- package/dist/overlay/assets/material-theme-ocean-ClGX14Ja.js +0 -1
- package/dist/overlay/assets/material-theme-palenight-C1RVm8K1.js +0 -1
- package/dist/overlay/assets/mdc-FI2x3BiY.js +0 -1
- package/dist/overlay/assets/mdx-BOhZZUJ8.js +0 -1
- package/dist/overlay/assets/min-dark-C7ak0t6c.js +0 -1
- package/dist/overlay/assets/min-light-CKFxVcPp.js +0 -1
- package/dist/overlay/assets/monokai-C1KBYcO0.js +0 -1
- package/dist/overlay/assets/night-owl-Bm2rzalh.js +0 -1
- package/dist/overlay/assets/nord-CC5OiUXg.js +0 -1
- package/dist/overlay/assets/one-dark-pro-DTA3VF0_.js +0 -1
- package/dist/overlay/assets/one-light-D9sNaUtq.js +0 -1
- package/dist/overlay/assets/php-BRU9zhoN.js +0 -1
- package/dist/overlay/assets/plastic-CSTz3KZp.js +0 -1
- package/dist/overlay/assets/poimandres-C-VADXHD.js +0 -1
- package/dist/overlay/assets/postcss-05aHdL-n.js +0 -1
- package/dist/overlay/assets/pug-CJWI-qSo.js +0 -1
- package/dist/overlay/assets/python-BFNSHbwJ.js +0 -1
- package/dist/overlay/assets/r-Bm0uF0U2.js +0 -1
- package/dist/overlay/assets/red-7y8PH7HH.js +0 -1
- package/dist/overlay/assets/regexp-BazyLpPg.js +0 -1
- package/dist/overlay/assets/rose-pine-Cr4kwgAY.js +0 -1
- package/dist/overlay/assets/rose-pine-dawn-ClRRUdXX.js +0 -1
- package/dist/overlay/assets/rose-pine-moon-ucNn3Gm8.js +0 -1
- package/dist/overlay/assets/sass-DxHp5rTx.js +0 -1
- package/dist/overlay/assets/scss-B1FaCqwR.js +0 -1
- package/dist/overlay/assets/shellscript-InADTalH.js +0 -1
- package/dist/overlay/assets/slack-dark-i7wN4OET.js +0 -1
- package/dist/overlay/assets/slack-ochin-ndHf0LoP.js +0 -1
- package/dist/overlay/assets/snazzy-light-BlSJXAu4.js +0 -1
- package/dist/overlay/assets/solarized-dark-UTmkh7lw.js +0 -1
- package/dist/overlay/assets/solarized-light-BheCkDPT.js +0 -1
- package/dist/overlay/assets/sql-Cn_v3PB0.js +0 -1
- package/dist/overlay/assets/stylus-CyKEU1Ej.js +0 -1
- package/dist/overlay/assets/svelte-BjDUPxZ1.js +0 -1
- package/dist/overlay/assets/synthwave-84-NU3C_KFZ.js +0 -1
- package/dist/overlay/assets/tokyo-night-DP4TmcQl.js +0 -1
- package/dist/overlay/assets/ts-tags-CZMzuZh-.js +0 -1
- package/dist/overlay/assets/tsx-B8rCNbgL.js +0 -1
- package/dist/overlay/assets/typescript-mg6ATTE8.js +0 -1
- package/dist/overlay/assets/vesper-BckBta1U.js +0 -1
- package/dist/overlay/assets/vitesse-black-BoGvW84i.js +0 -1
- package/dist/overlay/assets/vitesse-dark-Cym-eLtO.js +0 -1
- package/dist/overlay/assets/vitesse-light-CcmG315c.js +0 -1
- package/dist/overlay/assets/vue-D-ba2-Rx.js +0 -1
- package/dist/overlay/assets/vue-html-Dn2ZoOSz.js +0 -1
- package/dist/overlay/assets/vue-vine-Jmfkm6lF.js +0 -1
- package/dist/overlay/assets/wasm-BBXxrAl7.js +0 -1
- package/dist/overlay/assets/wasm-DQxwEHae.js +0 -1
- package/dist/overlay/assets/wgsl-DY4iK1q1.js +0 -1
- package/dist/overlay/assets/wit-CQMQOlTg.js +0 -1
- package/dist/overlay/assets/xml-C2J0sS9M.js +0 -1
- package/dist/overlay/assets/yaml-DaO7k5B1.js +0 -1
- package/dist/overlay/manifest.json +0 -1000
- package/dist/run.cjs +0 -51848
- package/dist/sidecar.cjs +0 -7
- package/dist/sidecar.d.ts +0 -1
- package/dist/sidecar.js +0 -4
|
@@ -0,0 +1,68 @@
|
|
|
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] = "faef59ab-afce-40e0-b027-ea31b42dfa6e", e._sentryDebugIdIdentifier = "sentry-dbid-faef59ab-afce-40e0-b027-ea31b42dfa6e");
|
|
6
|
+
} catch (e2) {
|
|
7
|
+
}
|
|
8
|
+
}();
|
|
9
|
+
import { isDebugEnabled, logger } from "../../logger.js";
|
|
10
|
+
import { isErrorEvent } from "../../parser/helpers.js";
|
|
11
|
+
import "uuidv7";
|
|
12
|
+
import "../../../_virtual/_sentry-release-injection-file.js";
|
|
13
|
+
function logIncomingEvent(container) {
|
|
14
|
+
if (!isDebugEnabled()) return;
|
|
15
|
+
const contentType = container.getContentType();
|
|
16
|
+
if (contentType === "application/x-sentry-envelope") {
|
|
17
|
+
const parsedEnvelope = container.getParsedEnvelope();
|
|
18
|
+
if (!parsedEnvelope) {
|
|
19
|
+
const data = container.getData();
|
|
20
|
+
const size = data.length;
|
|
21
|
+
const firstNewline = data.indexOf("\n");
|
|
22
|
+
const headerPreview = firstNewline > 0 && firstNewline < 200 ? data.toString("utf-8", 0, firstNewline).replace(/\n/g, "\\n") : "header not found";
|
|
23
|
+
logger.debug(`→ envelope (parse error, ${size} bytes) | ${headerPreview}`);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
let logMessage = `→ ${formatEnvelopeMetadata(parsedEnvelope.envelope)}`;
|
|
27
|
+
for (const item of parsedEnvelope.envelope[1]) {
|
|
28
|
+
if (isErrorEvent(item[1])) {
|
|
29
|
+
logMessage += `
|
|
30
|
+
└ ${formatErrorDetails(item[1])}`;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
logger.debug(logMessage);
|
|
34
|
+
} else {
|
|
35
|
+
logger.debug(`→ ${contentType || "unknown"}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function logOutgoingEvent(container, clientId) {
|
|
39
|
+
if (!isDebugEnabled()) return;
|
|
40
|
+
const typeInfo = container.getEventTypesString();
|
|
41
|
+
if (typeInfo === "envelope" && container.getContentType() === "application/x-sentry-envelope") {
|
|
42
|
+
const size = container.getData().length;
|
|
43
|
+
logger.debug(`← envelope (${size} bytes) to ${clientId}`);
|
|
44
|
+
} else {
|
|
45
|
+
logger.debug(`← ${typeInfo} to ${clientId}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function formatEnvelopeMetadata(envelope) {
|
|
49
|
+
const eventTypes = envelope[1].map((item) => item[0].type).filter(Boolean);
|
|
50
|
+
const typePrefix = eventTypes.length > 0 ? eventTypes.join("+") : "envelope";
|
|
51
|
+
const sdk = envelope[0].sdk?.name || "unknown";
|
|
52
|
+
const eventId = envelope[0].event_id;
|
|
53
|
+
return `${typePrefix} | sdk: ${sdk}${eventId ? ` | id: ${eventId}` : ""}`;
|
|
54
|
+
}
|
|
55
|
+
function formatErrorDetails(payload) {
|
|
56
|
+
const platform = payload.platform || "unknown";
|
|
57
|
+
const environment = payload.environment || "unknown";
|
|
58
|
+
const level = "level" in payload ? payload.level : "error";
|
|
59
|
+
const errorMsg = payload.exception?.values?.[0]?.value || String(payload.message) || "No error message";
|
|
60
|
+
const errorType = payload.exception?.values?.[0]?.type || "Error";
|
|
61
|
+
const truncatedMsg = errorMsg.substring(0, 80) + (errorMsg.length > 80 ? "..." : "");
|
|
62
|
+
return `${level} [${platform}/${environment}] ${errorType}: ${truncatedMsg}`;
|
|
63
|
+
}
|
|
64
|
+
export {
|
|
65
|
+
logIncomingEvent,
|
|
66
|
+
logOutgoingEvent
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=debugLogging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debugLogging.js","sources":["../../../../src/server/routes/stream/debugLogging.ts"],"sourcesContent":["import { isDebugEnabled, logger } from \"../../logger.ts\";\nimport { type ParsedEnvelope, type SentryErrorEvent, type SentryEvent, isErrorEvent } from \"../../parser/index.ts\";\nimport type { EventContainer } from \"../../utils/index.ts\";\n\n/**\n * Logs incoming event details when debug mode is enabled\n * Uses the container's parsed data if available\n */\nexport function logIncomingEvent(container: EventContainer): void {\n if (!isDebugEnabled()) return;\n\n const contentType = container.getContentType();\n\n if (contentType === \"application/x-sentry-envelope\") {\n const parsedEnvelope = container.getParsedEnvelope();\n\n if (!parsedEnvelope) {\n // Still log something useful even if parsing failed\n const data = container.getData();\n const size = data.length;\n // Only show first line of envelope header for safety (should be JSON metadata, not user data)\n const firstNewline = data.indexOf(\"\\n\");\n const headerPreview =\n firstNewline > 0 && firstNewline < 200\n ? data.toString(\"utf-8\", 0, firstNewline).replace(/\\n/g, \"\\\\n\")\n : \"header not found\";\n logger.debug(`→ envelope (parse error, ${size} bytes) | ${headerPreview}`);\n return;\n }\n\n // Build complete log message with all details\n let logMessage = `→ ${formatEnvelopeMetadata(parsedEnvelope.envelope)}`;\n\n // Add error event details to the same log message\n for (const item of parsedEnvelope.envelope[1]) {\n if (isErrorEvent(item[1] as SentryEvent)) {\n logMessage += `\\n └ ${formatErrorDetails(item[1] as SentryErrorEvent)}`;\n }\n }\n\n // Single atomic log statement\n logger.debug(logMessage);\n } else {\n logger.debug(`→ ${contentType || \"unknown\"}`);\n }\n}\n\n/**\n * Logs outgoing event to client when debug mode is enabled\n * Uses the container's already-parsed data if available\n */\nexport function logOutgoingEvent(container: EventContainer, clientId: string): void {\n if (!isDebugEnabled()) return;\n\n // Use the container's event type string (which uses cached parsed data)\n const typeInfo = container.getEventTypesString();\n\n // If it's an envelope that failed to parse, add size info\n if (typeInfo === \"envelope\" && container.getContentType() === \"application/x-sentry-envelope\") {\n const size = container.getData().length;\n logger.debug(`← envelope (${size} bytes) to ${clientId}`);\n } else {\n logger.debug(`← ${typeInfo} to ${clientId}`);\n }\n}\n\n/**\n * Formats envelope metadata for logging\n */\nfunction formatEnvelopeMetadata(envelope: ParsedEnvelope[\"envelope\"]): string {\n const eventTypes = envelope[1].map(item => item[0].type).filter(Boolean);\n\n const typePrefix = eventTypes.length > 0 ? eventTypes.join(\"+\") : \"envelope\";\n const sdk = envelope[0].sdk?.name || \"unknown\";\n const eventId = envelope[0].event_id;\n\n return `${typePrefix} | sdk: ${sdk}${eventId ? ` | id: ${eventId}` : \"\"}`;\n}\n\n/**\n * Formats error event details for logging\n */\nfunction formatErrorDetails(payload: SentryErrorEvent): string {\n const platform = payload.platform || \"unknown\";\n const environment = payload.environment || \"unknown\";\n const level = \"level\" in payload ? payload.level : \"error\";\n\n const errorMsg = payload.exception?.values?.[0]?.value || String(payload.message) || \"No error message\";\n\n const errorType = payload.exception?.values?.[0]?.type || \"Error\";\n\n const truncatedMsg = errorMsg.substring(0, 80) + (errorMsg.length > 80 ? \"...\" : \"\");\n\n return `${level} [${platform}/${environment}] ${errorType}: ${truncatedMsg}`;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAQO,SAAS,iBAAiB,WAAiC;AAChE,MAAI,CAAC,iBAAkB;AAEvB,QAAM,cAAc,UAAU,eAAA;AAE9B,MAAI,gBAAgB,iCAAiC;AACnD,UAAM,iBAAiB,UAAU,kBAAA;AAEjC,QAAI,CAAC,gBAAgB;AAEnB,YAAM,OAAO,UAAU,QAAA;AACvB,YAAM,OAAO,KAAK;AAElB,YAAM,eAAe,KAAK,QAAQ,IAAI;AACtC,YAAM,gBACJ,eAAe,KAAK,eAAe,MAC/B,KAAK,SAAS,SAAS,GAAG,YAAY,EAAE,QAAQ,OAAO,KAAK,IAC5D;AACN,aAAO,MAAM,4BAA4B,IAAI,aAAa,aAAa,EAAE;AACzE;AAAA,IACF;AAGA,QAAI,aAAa,KAAK,uBAAuB,eAAe,QAAQ,CAAC;AAGrE,eAAW,QAAQ,eAAe,SAAS,CAAC,GAAG;AAC7C,UAAI,aAAa,KAAK,CAAC,CAAgB,GAAG;AACxC,sBAAc;AAAA,MAAS,mBAAmB,KAAK,CAAC,CAAqB,CAAC;AAAA,MACxE;AAAA,IACF;AAGA,WAAO,MAAM,UAAU;AAAA,EACzB,OAAO;AACL,WAAO,MAAM,KAAK,eAAe,SAAS,EAAE;AAAA,EAC9C;AACF;AAMO,SAAS,iBAAiB,WAA2B,UAAwB;AAClF,MAAI,CAAC,iBAAkB;AAGvB,QAAM,WAAW,UAAU,oBAAA;AAG3B,MAAI,aAAa,cAAc,UAAU,eAAA,MAAqB,iCAAiC;AAC7F,UAAM,OAAO,UAAU,QAAA,EAAU;AACjC,WAAO,MAAM,eAAe,IAAI,cAAc,QAAQ,EAAE;AAAA,EAC1D,OAAO;AACL,WAAO,MAAM,KAAK,QAAQ,OAAO,QAAQ,EAAE;AAAA,EAC7C;AACF;AAKA,SAAS,uBAAuB,UAA8C;AAC5E,QAAM,aAAa,SAAS,CAAC,EAAE,IAAI,CAAA,SAAQ,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,OAAO;AAEvE,QAAM,aAAa,WAAW,SAAS,IAAI,WAAW,KAAK,GAAG,IAAI;AAClE,QAAM,MAAM,SAAS,CAAC,EAAE,KAAK,QAAQ;AACrC,QAAM,UAAU,SAAS,CAAC,EAAE;AAE5B,SAAO,GAAG,UAAU,WAAW,GAAG,GAAG,UAAU,UAAU,OAAO,KAAK,EAAE;AACzE;AAKA,SAAS,mBAAmB,SAAmC;AAC7D,QAAM,WAAW,QAAQ,YAAY;AACrC,QAAM,cAAc,QAAQ,eAAe;AAC3C,QAAM,QAAQ,WAAW,UAAU,QAAQ,QAAQ;AAEnD,QAAM,WAAW,QAAQ,WAAW,SAAS,CAAC,GAAG,SAAS,OAAO,QAAQ,OAAO,KAAK;AAErF,QAAM,YAAY,QAAQ,WAAW,SAAS,CAAC,GAAG,QAAQ;AAE1D,QAAM,eAAe,SAAS,UAAU,GAAG,EAAE,KAAK,SAAS,SAAS,KAAK,QAAQ;AAEjF,SAAO,GAAG,KAAK,KAAK,QAAQ,IAAI,WAAW,KAAK,SAAS,KAAK,YAAY;AAC5E;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { HonoEnv } from '../../types/env.ts';
|
|
2
|
+
declare const router: import('hono/hono-base').HonoBase<HonoEnv, {
|
|
3
|
+
"/stream": {
|
|
4
|
+
$get: {
|
|
5
|
+
input: {};
|
|
6
|
+
output: {};
|
|
7
|
+
outputFormat: string;
|
|
8
|
+
status: import('hono/utils/http-status').StatusCode;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
} & {
|
|
12
|
+
"/envelope/:id": {
|
|
13
|
+
$get: {
|
|
14
|
+
input: {
|
|
15
|
+
param: {
|
|
16
|
+
id: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
output: {};
|
|
20
|
+
outputFormat: string;
|
|
21
|
+
status: import('hono/utils/http-status').StatusCode;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
} & {
|
|
25
|
+
[x: string]: {
|
|
26
|
+
[x: `$${Lowercase<string>}`]: {
|
|
27
|
+
input: {};
|
|
28
|
+
output: null;
|
|
29
|
+
outputFormat: "body";
|
|
30
|
+
status: 200;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
}, "/">;
|
|
34
|
+
export default router;
|
|
@@ -0,0 +1,110 @@
|
|
|
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] = "30c2a21d-0350-4802-a8cb-86dc2894fef5", e._sentryDebugIdIdentifier = "sentry-dbid-30c2a21d-0350-4802-a8cb-86dc2894fef5");
|
|
6
|
+
} catch (e2) {
|
|
7
|
+
}
|
|
8
|
+
}();
|
|
9
|
+
import { createWriteStream } from "node:fs";
|
|
10
|
+
import { decompressBody, pushToSpotlightBuffer } from "../../sdk.js";
|
|
11
|
+
import { SENTRY_CONTENT_TYPE } from "../../../shared/constants.js";
|
|
12
|
+
import { Hono } from "hono";
|
|
13
|
+
import { logger } from "../../logger.js";
|
|
14
|
+
import { getBuffer } from "../../utils/getBuffer.js";
|
|
15
|
+
import "../../parser/helpers.js";
|
|
16
|
+
import "uuidv7";
|
|
17
|
+
import "../../../_virtual/_sentry-release-injection-file.js";
|
|
18
|
+
import "node:http";
|
|
19
|
+
import "@sentry/node";
|
|
20
|
+
import "node:dns/promises";
|
|
21
|
+
import "node:net";
|
|
22
|
+
import "node:os";
|
|
23
|
+
import { logOutgoingEvent, logIncomingEvent } from "./debugLogging.js";
|
|
24
|
+
import { streamSSE } from "./streaming.js";
|
|
25
|
+
import { parseBrowserFromUserAgent } from "./userAgent.js";
|
|
26
|
+
const router = new Hono().get("/stream", (ctx) => {
|
|
27
|
+
const buffer = getBuffer();
|
|
28
|
+
const useBase64 = ctx.req.query("base64") != null;
|
|
29
|
+
const base64Indicator = useBase64 ? ";base64" : "";
|
|
30
|
+
let clientId = ctx.req.query("client");
|
|
31
|
+
if (!clientId) {
|
|
32
|
+
const userAgent = ctx.req.header("User-Agent") || "unknown";
|
|
33
|
+
clientId = parseBrowserFromUserAgent(userAgent);
|
|
34
|
+
}
|
|
35
|
+
clientId = clientId.replace(/[^\w\s.\-/()]/g, "");
|
|
36
|
+
if (!clientId) clientId = "unknown";
|
|
37
|
+
return streamSSE(ctx, async (stream) => {
|
|
38
|
+
const lastEventId = ctx.req.header("Last-Event-ID");
|
|
39
|
+
const sub = buffer.subscribe((container) => {
|
|
40
|
+
logOutgoingEvent(container, clientId);
|
|
41
|
+
const parsedEnvelope = container.getParsedEnvelope();
|
|
42
|
+
if (parsedEnvelope) {
|
|
43
|
+
stream.writeSSE({
|
|
44
|
+
id: parsedEnvelope.envelope[0].__spotlight_envelope_id.toString(),
|
|
45
|
+
event: `${container.getContentType()}${base64Indicator}`,
|
|
46
|
+
data: JSON.stringify(parsedEnvelope.envelope)
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}, lastEventId);
|
|
50
|
+
stream.onAbort(() => {
|
|
51
|
+
buffer.unsubscribe(sub);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}).get("/envelope/:id", (ctx) => {
|
|
55
|
+
const buffer = getBuffer();
|
|
56
|
+
const envelopeId = ctx.req.param("id");
|
|
57
|
+
const container = buffer.read({ envelopeId });
|
|
58
|
+
if (container.length === 0) {
|
|
59
|
+
return ctx.notFound();
|
|
60
|
+
}
|
|
61
|
+
return ctx.body(new Uint8Array(container[0].getData()), 200, {
|
|
62
|
+
"Content-Type": container[0].getContentType(),
|
|
63
|
+
"Cache-Control": "no-cache",
|
|
64
|
+
"Content-Disposition": `attachment; filename="${envelopeId}.bin"`,
|
|
65
|
+
Connection: "keep-alive"
|
|
66
|
+
});
|
|
67
|
+
}).on("POST", ["/stream", "/api/:id/envelope"], async (ctx) => {
|
|
68
|
+
let contentType = ctx.req.header("content-type")?.split(";")[0].toLocaleLowerCase();
|
|
69
|
+
if (ctx.req.query("sentry_client")?.startsWith("sentry.javascript.browser") && ctx.req.header("Origin")) {
|
|
70
|
+
contentType = SENTRY_CONTENT_TYPE;
|
|
71
|
+
}
|
|
72
|
+
const body = decompressBody(Buffer.from(await ctx.req.arrayBuffer()), ctx.req.header("Content-Encoding"));
|
|
73
|
+
const container = pushToSpotlightBuffer({
|
|
74
|
+
body,
|
|
75
|
+
spotlightBuffer: getBuffer(),
|
|
76
|
+
contentType,
|
|
77
|
+
userAgent: ctx.req.header("User-Agent")
|
|
78
|
+
});
|
|
79
|
+
if (container) {
|
|
80
|
+
logIncomingEvent(container);
|
|
81
|
+
} else {
|
|
82
|
+
logger.warn("No content type, skipping payload...");
|
|
83
|
+
}
|
|
84
|
+
const incomingPayload = ctx.get("incomingPayload");
|
|
85
|
+
if (process.env.SPOTLIGHT_CAPTURE || incomingPayload) {
|
|
86
|
+
const contentType2 = container?.getContentType();
|
|
87
|
+
const timestamp = BigInt(Date.now()) * 1000000n + process.hrtime.bigint() % 1000000n;
|
|
88
|
+
const filename = `${contentType2?.replace(/[^a-z0-9]/gi, "_") || "no_content_type"}-${timestamp}.txt`;
|
|
89
|
+
if (incomingPayload) {
|
|
90
|
+
incomingPayload(body.toString("binary"));
|
|
91
|
+
} else {
|
|
92
|
+
const stream = createWriteStream(filename);
|
|
93
|
+
stream.on("error", (err) => {
|
|
94
|
+
logger.error(`Failed to save data to ${filename}: ${err}`);
|
|
95
|
+
stream.destroy();
|
|
96
|
+
});
|
|
97
|
+
stream.end(body, () => {
|
|
98
|
+
logger.info(`🗃️ Saved data to ${filename}`);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return ctx.body(null, 200, {
|
|
103
|
+
"Cache-Control": "no-cache",
|
|
104
|
+
Connection: "keep-alive"
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
export {
|
|
108
|
+
router as default
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/server/routes/stream/index.ts"],"sourcesContent":["import { createWriteStream } from \"node:fs\";\nimport { decompressBody, pushToSpotlightBuffer } from \"../../sdk.ts\";\nimport { SENTRY_CONTENT_TYPE } from \"../../../shared/constants.ts\";\nimport { Hono } from \"hono\";\nimport { logger } from \"../../logger.ts\";\nimport type { HonoEnv } from \"../../types/env.ts\";\nimport { getBuffer } from \"../../utils/index.ts\";\nimport { logIncomingEvent, logOutgoingEvent } from \"./debugLogging.ts\";\nimport { streamSSE } from \"./streaming.ts\";\nimport { parseBrowserFromUserAgent } from \"./userAgent.ts\";\n\nconst router = new Hono<HonoEnv>()\n .get(\"/stream\", ctx => {\n const buffer = getBuffer();\n\n const useBase64 = ctx.req.query(\"base64\") != null;\n const base64Indicator = useBase64 ? \";base64\" : \"\";\n\n // Capture client information for debug logging\n let clientId = ctx.req.query(\"client\");\n if (!clientId) {\n // Fallback to parsing User-Agent if no client param\n const userAgent = ctx.req.header(\"User-Agent\") || \"unknown\";\n clientId = parseBrowserFromUserAgent(userAgent);\n }\n // Sanitize to prevent log injection - keep only safe printable characters\n // Allow alphanumeric, spaces, dots, dashes, underscores, slashes, parentheses\n clientId = clientId.replace(/[^\\w\\s.\\-/()]/g, \"\");\n // Ensure we always have a non-empty clientId\n if (!clientId) clientId = \"unknown\";\n\n return streamSSE(ctx, async stream => {\n // Check for Last-Event-ID header to support reconnection\n const lastEventId = ctx.req.header(\"Last-Event-ID\");\n\n // Subscribe to events, optionally starting from after the lastEventId\n const sub = buffer.subscribe(container => {\n logOutgoingEvent(container, clientId);\n\n const parsedEnvelope = container.getParsedEnvelope();\n if (parsedEnvelope) {\n stream.writeSSE({\n id: parsedEnvelope.envelope[0].__spotlight_envelope_id.toString(),\n event: `${container.getContentType()}${base64Indicator}`,\n data: JSON.stringify(parsedEnvelope.envelope),\n });\n }\n }, lastEventId);\n\n stream.onAbort(() => {\n buffer.unsubscribe(sub);\n });\n });\n })\n .get(\"/envelope/:id\", ctx => {\n const buffer = getBuffer();\n\n const envelopeId = ctx.req.param(\"id\");\n const container = buffer.read({ envelopeId });\n\n if (container.length === 0) {\n return ctx.notFound();\n }\n\n return ctx.body(new Uint8Array(container[0].getData()), 200, {\n \"Content-Type\": container[0].getContentType(),\n \"Cache-Control\": \"no-cache\",\n \"Content-Disposition\": `attachment; filename=\"${envelopeId}.bin\"`,\n Connection: \"keep-alive\",\n });\n })\n .on(\"POST\", [\"/stream\", \"/api/:id/envelope\"], async ctx => {\n let contentType = ctx.req.header(\"content-type\")?.split(\";\")[0].toLocaleLowerCase();\n if (ctx.req.query(\"sentry_client\")?.startsWith(\"sentry.javascript.browser\") && ctx.req.header(\"Origin\")) {\n // This is a correction we make as Sentry Browser SDK may send messages with text/plain to avoid CORS issues\n contentType = SENTRY_CONTENT_TYPE;\n }\n\n // manually decompress body to use it below without another decompression\n const body = decompressBody(Buffer.from(await ctx.req.arrayBuffer()), ctx.req.header(\"Content-Encoding\"));\n\n const container = pushToSpotlightBuffer({\n body,\n spotlightBuffer: getBuffer(),\n contentType,\n userAgent: ctx.req.header(\"User-Agent\"),\n });\n\n if (container) {\n // Log incoming event details when debug is enabled\n logIncomingEvent(container);\n } else {\n logger.warn(\"No content type, skipping payload...\");\n }\n\n const incomingPayload = ctx.get(\"incomingPayload\");\n\n if (process.env.SPOTLIGHT_CAPTURE || incomingPayload) {\n const contentType = container?.getContentType();\n const timestamp = BigInt(Date.now()) * 1_000_000n + (process.hrtime.bigint() % 1_000_000n);\n const filename = `${contentType?.replace(/[^a-z0-9]/gi, \"_\") || \"no_content_type\"}-${timestamp}.txt`;\n\n if (incomingPayload) {\n incomingPayload(body.toString(\"binary\"));\n } else {\n const stream = createWriteStream(filename);\n stream.on(\"error\", err => {\n logger.error(`Failed to save data to ${filename}: ${err}`);\n stream.destroy();\n });\n stream.end(body, () => {\n logger.info(`🗃️ Saved data to ${filename}`);\n });\n }\n }\n\n // 204 would be more appropriate but returning 200 to match what /envelope returns\n return ctx.body(null, 200, {\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n });\n });\n\nexport default router;\n"],"names":["contentType"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,SAAS,IAAI,KAAA,EAChB,IAAI,WAAW,CAAA,QAAO;AACrB,QAAM,SAAS,UAAA;AAEf,QAAM,YAAY,IAAI,IAAI,MAAM,QAAQ,KAAK;AAC7C,QAAM,kBAAkB,YAAY,YAAY;AAGhD,MAAI,WAAW,IAAI,IAAI,MAAM,QAAQ;AACrC,MAAI,CAAC,UAAU;AAEb,UAAM,YAAY,IAAI,IAAI,OAAO,YAAY,KAAK;AAClD,eAAW,0BAA0B,SAAS;AAAA,EAChD;AAGA,aAAW,SAAS,QAAQ,kBAAkB,EAAE;AAEhD,MAAI,CAAC,SAAU,YAAW;AAE1B,SAAO,UAAU,KAAK,OAAM,WAAU;AAEpC,UAAM,cAAc,IAAI,IAAI,OAAO,eAAe;AAGlD,UAAM,MAAM,OAAO,UAAU,CAAA,cAAa;AACxC,uBAAiB,WAAW,QAAQ;AAEpC,YAAM,iBAAiB,UAAU,kBAAA;AACjC,UAAI,gBAAgB;AAClB,eAAO,SAAS;AAAA,UACd,IAAI,eAAe,SAAS,CAAC,EAAE,wBAAwB,SAAA;AAAA,UACvD,OAAO,GAAG,UAAU,eAAA,CAAgB,GAAG,eAAe;AAAA,UACtD,MAAM,KAAK,UAAU,eAAe,QAAQ;AAAA,QAAA,CAC7C;AAAA,MACH;AAAA,IACF,GAAG,WAAW;AAEd,WAAO,QAAQ,MAAM;AACnB,aAAO,YAAY,GAAG;AAAA,IACxB,CAAC;AAAA,EACH,CAAC;AACH,CAAC,EACA,IAAI,iBAAiB,CAAA,QAAO;AAC3B,QAAM,SAAS,UAAA;AAEf,QAAM,aAAa,IAAI,IAAI,MAAM,IAAI;AACrC,QAAM,YAAY,OAAO,KAAK,EAAE,YAAY;AAE5C,MAAI,UAAU,WAAW,GAAG;AAC1B,WAAO,IAAI,SAAA;AAAA,EACb;AAEA,SAAO,IAAI,KAAK,IAAI,WAAW,UAAU,CAAC,EAAE,SAAS,GAAG,KAAK;AAAA,IAC3D,gBAAgB,UAAU,CAAC,EAAE,eAAA;AAAA,IAC7B,iBAAiB;AAAA,IACjB,uBAAuB,yBAAyB,UAAU;AAAA,IAC1D,YAAY;AAAA,EAAA,CACb;AACH,CAAC,EACA,GAAG,QAAQ,CAAC,WAAW,mBAAmB,GAAG,OAAM,QAAO;AACzD,MAAI,cAAc,IAAI,IAAI,OAAO,cAAc,GAAG,MAAM,GAAG,EAAE,CAAC,EAAE,kBAAA;AAChE,MAAI,IAAI,IAAI,MAAM,eAAe,GAAG,WAAW,2BAA2B,KAAK,IAAI,IAAI,OAAO,QAAQ,GAAG;AAEvG,kBAAc;AAAA,EAChB;AAGA,QAAM,OAAO,eAAe,OAAO,KAAK,MAAM,IAAI,IAAI,YAAA,CAAa,GAAG,IAAI,IAAI,OAAO,kBAAkB,CAAC;AAExG,QAAM,YAAY,sBAAsB;AAAA,IACtC;AAAA,IACA,iBAAiB,UAAA;AAAA,IACjB;AAAA,IACA,WAAW,IAAI,IAAI,OAAO,YAAY;AAAA,EAAA,CACvC;AAED,MAAI,WAAW;AAEb,qBAAiB,SAAS;AAAA,EAC5B,OAAO;AACL,WAAO,KAAK,sCAAsC;AAAA,EACpD;AAEA,QAAM,kBAAkB,IAAI,IAAI,iBAAiB;AAEjD,MAAI,QAAQ,IAAI,qBAAqB,iBAAiB;AACpD,UAAMA,eAAc,WAAW,eAAA;AAC/B,UAAM,YAAY,OAAO,KAAK,IAAA,CAAK,IAAI,WAAc,QAAQ,OAAO,OAAA,IAAW;AAC/E,UAAM,WAAW,GAAGA,cAAa,QAAQ,eAAe,GAAG,KAAK,iBAAiB,IAAI,SAAS;AAE9F,QAAI,iBAAiB;AACnB,sBAAgB,KAAK,SAAS,QAAQ,CAAC;AAAA,IACzC,OAAO;AACL,YAAM,SAAS,kBAAkB,QAAQ;AACzC,aAAO,GAAG,SAAS,CAAA,QAAO;AACxB,eAAO,MAAM,0BAA0B,QAAQ,KAAK,GAAG,EAAE;AACzD,eAAO,QAAA;AAAA,MACT,CAAC;AACD,aAAO,IAAI,MAAM,MAAM;AACrB,eAAO,KAAK,qBAAqB,QAAQ,EAAE;AAAA,MAC7C,CAAC;AAAA,IACH;AAAA,EACF;AAGA,SAAO,IAAI,KAAK,MAAM,KAAK;AAAA,IACzB,iBAAiB;AAAA,IACjB,YAAY;AAAA,EAAA,CACb;AACH,CAAC;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
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] = "fe8af0d5-27a9-4341-90d6-e57e107c3c7d", e._sentryDebugIdIdentifier = "sentry-dbid-fe8af0d5-27a9-4341-90d6-e57e107c3c7d");
|
|
6
|
+
} catch (e2) {
|
|
7
|
+
}
|
|
8
|
+
}();
|
|
9
|
+
import { captureException } from "@sentry/node";
|
|
10
|
+
import { SSEStreamingApi } from "../../../node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/helper/streaming/sse.js";
|
|
11
|
+
import "../../../_virtual/_sentry-release-injection-file.js";
|
|
12
|
+
const run = async (stream, cb, onError) => {
|
|
13
|
+
try {
|
|
14
|
+
await cb(stream);
|
|
15
|
+
} catch (e) {
|
|
16
|
+
{
|
|
17
|
+
captureException(e, { extra: { context: "Unhandled error in SSE stream" } });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const streamSSE = (c, cb, onError) => {
|
|
22
|
+
const { readable, writable } = new TransformStream();
|
|
23
|
+
const stream = new SSEStreamingApi(writable, readable);
|
|
24
|
+
c.header("Transfer-Encoding", "chunked");
|
|
25
|
+
c.header("Content-Type", "text/event-stream");
|
|
26
|
+
c.header("Cache-Control", "no-cache");
|
|
27
|
+
c.header("Connection", "keep-alive");
|
|
28
|
+
stream.writeln("");
|
|
29
|
+
run(stream, cb);
|
|
30
|
+
return c.newResponse(stream.responseReadable);
|
|
31
|
+
};
|
|
32
|
+
export {
|
|
33
|
+
streamSSE
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=streaming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming.js","sources":["../../../../src/server/routes/stream/streaming.ts"],"sourcesContent":["import { captureException } from \"@sentry/node\";\nimport type { Context } from \"hono\";\nimport { SSEStreamingApi } from \"hono/streaming\";\n\nconst run = async (\n stream: SSEStreamingApi,\n cb: (stream: SSEStreamingApi) => Promise<void>,\n onError?: (e: Error, stream: SSEStreamingApi) => Promise<void>,\n): Promise<void> => {\n try {\n await cb(stream);\n } catch (e) {\n if (e instanceof Error && onError) {\n await onError(e, stream);\n\n await stream.writeSSE({\n event: \"error\",\n data: e.message,\n });\n } else {\n captureException(e, { extra: { context: \"Unhandled error in SSE stream\" } });\n }\n }\n};\n\nexport const streamSSE = (\n c: Context,\n cb: (stream: SSEStreamingApi) => Promise<void>,\n onError?: (e: Error, stream: SSEStreamingApi) => Promise<void>,\n): Response => {\n const { readable, writable } = new TransformStream();\n const stream = new SSEStreamingApi(writable, readable);\n\n c.header(\"Transfer-Encoding\", \"chunked\");\n c.header(\"Content-Type\", \"text/event-stream\");\n c.header(\"Cache-Control\", \"no-cache\");\n c.header(\"Connection\", \"keep-alive\");\n\n // Send something in the body to trigger the `open` event\n // This is mostly for Firefox -- see #376\n stream.writeln(\"\");\n\n run(stream, cb, onError);\n\n return c.newResponse(stream.responseReadable);\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAIA,MAAM,MAAM,OACV,QACA,IACA,YACkB;AAClB,MAAI;AACF,UAAM,GAAG,MAAM;AAAA,EACjB,SAAS,GAAG;AAQH;AACL,uBAAiB,GAAG,EAAE,OAAO,EAAE,SAAS,gCAAA,GAAmC;AAAA,IAC7E;AAAA,EACF;AACF;AAEO,MAAM,YAAY,CACvB,GACA,IACA,YACa;AACb,QAAM,EAAE,UAAU,SAAA,IAAa,IAAI,gBAAA;AACnC,QAAM,SAAS,IAAI,gBAAgB,UAAU,QAAQ;AAErD,IAAE,OAAO,qBAAqB,SAAS;AACvC,IAAE,OAAO,gBAAgB,mBAAmB;AAC5C,IAAE,OAAO,iBAAiB,UAAU;AACpC,IAAE,OAAO,cAAc,YAAY;AAInC,SAAO,QAAQ,EAAE;AAEjB,MAAI,QAAQ,EAAW;AAEvB,SAAO,EAAE,YAAY,OAAO,gBAAgB;AAC9C;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts browser name and major version from a User-Agent string
|
|
3
|
+
* Returns format like "Chrome/131" or "Firefox/122"
|
|
4
|
+
*/
|
|
5
|
+
export declare function parseBrowserFromUserAgent(userAgent: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* Builds a client identifier from browser info and optional hostname
|
|
8
|
+
* Format: clientName/version (metadata)
|
|
9
|
+
* Example: "ui/Chrome/131 (example.com)"
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildClientIdentifier(clientName: string, userAgent?: string, hostname?: string): string;
|
|
@@ -0,0 +1,34 @@
|
|
|
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] = "973355d8-c9ea-4dc7-b5bb-32f849e751bc", e._sentryDebugIdIdentifier = "sentry-dbid-973355d8-c9ea-4dc7-b5bb-32f849e751bc");
|
|
6
|
+
} catch (e2) {
|
|
7
|
+
}
|
|
8
|
+
}();
|
|
9
|
+
import "../../../_virtual/_sentry-release-injection-file.js";
|
|
10
|
+
function parseBrowserFromUserAgent(userAgent) {
|
|
11
|
+
if (!userAgent) return "unknown";
|
|
12
|
+
if (userAgent.includes("Chrome/") && !userAgent.includes("Edg/")) {
|
|
13
|
+
const match2 = userAgent.match(/Chrome\/([\d]+)/);
|
|
14
|
+
return match2 ? `Chrome/${match2[1]}` : "Chrome";
|
|
15
|
+
}
|
|
16
|
+
if (userAgent.includes("Firefox/")) {
|
|
17
|
+
const match2 = userAgent.match(/Firefox\/([\d]+)/);
|
|
18
|
+
return match2 ? `Firefox/${match2[1]}` : "Firefox";
|
|
19
|
+
}
|
|
20
|
+
if (userAgent.includes("Safari/") && !userAgent.includes("Chrome")) {
|
|
21
|
+
const match2 = userAgent.match(/Version\/([\d]+)/);
|
|
22
|
+
return match2 ? `Safari/${match2[1]}` : "Safari";
|
|
23
|
+
}
|
|
24
|
+
if (userAgent.includes("Edg/")) {
|
|
25
|
+
const match2 = userAgent.match(/Edg\/([\d]+)/);
|
|
26
|
+
return match2 ? `Edge/${match2[1]}` : "Edge";
|
|
27
|
+
}
|
|
28
|
+
const match = userAgent.match(/^([^\/\s\(]+)/);
|
|
29
|
+
return match ? match[1] : "unknown";
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
parseBrowserFromUserAgent
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=userAgent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userAgent.js","sources":["../../../../src/server/routes/stream/userAgent.ts"],"sourcesContent":["/**\n * Extracts browser name and major version from a User-Agent string\n * Returns format like \"Chrome/131\" or \"Firefox/122\"\n */\nexport function parseBrowserFromUserAgent(userAgent: string): string {\n if (!userAgent) return \"unknown\";\n\n // Check for Chrome (but not Edge which also contains Chrome)\n if (userAgent.includes(\"Chrome/\") && !userAgent.includes(\"Edg/\")) {\n const match = userAgent.match(/Chrome\\/([\\d]+)/);\n return match ? `Chrome/${match[1]}` : \"Chrome\";\n }\n\n // Check for Firefox\n if (userAgent.includes(\"Firefox/\")) {\n const match = userAgent.match(/Firefox\\/([\\d]+)/);\n return match ? `Firefox/${match[1]}` : \"Firefox\";\n }\n\n // Check for Safari (but not Chrome which also contains Safari)\n if (userAgent.includes(\"Safari/\") && !userAgent.includes(\"Chrome\")) {\n const match = userAgent.match(/Version\\/([\\d]+)/);\n return match ? `Safari/${match[1]}` : \"Safari\";\n }\n\n // Check for Edge\n if (userAgent.includes(\"Edg/\")) {\n const match = userAgent.match(/Edg\\/([\\d]+)/);\n return match ? `Edge/${match[1]}` : \"Edge\";\n }\n\n // Generic fallback - try to extract first meaningful part\n const match = userAgent.match(/^([^\\/\\s\\(]+)/);\n return match ? match[1] : \"unknown\";\n}\n\n/**\n * Builds a client identifier from browser info and optional hostname\n * Format: clientName/version (metadata)\n * Example: \"ui/Chrome/131 (example.com)\"\n */\nexport function buildClientIdentifier(clientName: string, userAgent?: string, hostname?: string): string {\n let clientId = clientName;\n\n if (userAgent) {\n const browserInfo = parseBrowserFromUserAgent(userAgent);\n if (browserInfo !== \"unknown\") {\n clientId = `${clientName}/${browserInfo}`;\n }\n }\n\n if (hostname && hostname !== \"localhost\") {\n clientId += ` (${hostname})`;\n }\n\n return clientId;\n}\n"],"names":["match"],"mappings":";;;;;;;;;AAIO,SAAS,0BAA0B,WAA2B;AACnE,MAAI,CAAC,UAAW,QAAO;AAGvB,MAAI,UAAU,SAAS,SAAS,KAAK,CAAC,UAAU,SAAS,MAAM,GAAG;AAChE,UAAMA,SAAQ,UAAU,MAAM,iBAAiB;AAC/C,WAAOA,SAAQ,UAAUA,OAAM,CAAC,CAAC,KAAK;AAAA,EACxC;AAGA,MAAI,UAAU,SAAS,UAAU,GAAG;AAClC,UAAMA,SAAQ,UAAU,MAAM,kBAAkB;AAChD,WAAOA,SAAQ,WAAWA,OAAM,CAAC,CAAC,KAAK;AAAA,EACzC;AAGA,MAAI,UAAU,SAAS,SAAS,KAAK,CAAC,UAAU,SAAS,QAAQ,GAAG;AAClE,UAAMA,SAAQ,UAAU,MAAM,kBAAkB;AAChD,WAAOA,SAAQ,UAAUA,OAAM,CAAC,CAAC,KAAK;AAAA,EACxC;AAGA,MAAI,UAAU,SAAS,MAAM,GAAG;AAC9B,UAAMA,SAAQ,UAAU,MAAM,cAAc;AAC5C,WAAOA,SAAQ,QAAQA,OAAM,CAAC,CAAC,KAAK;AAAA,EACtC;AAGA,QAAM,QAAQ,UAAU,MAAM,eAAe;AAC7C,SAAO,QAAQ,MAAM,CAAC,IAAI;AAC5B;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MessageBuffer } from './messageBuffer.ts';
|
|
2
|
+
import { EventContainer } from './utils/eventContainer.ts';
|
|
3
|
+
declare const decompressors: Record<"gzip" | "deflate" | "br", (buf: Buffer) => Buffer>;
|
|
4
|
+
type ContentEncoding = keyof typeof decompressors;
|
|
5
|
+
export declare function createSpotlightBuffer(): MessageBuffer<EventContainer>;
|
|
6
|
+
type PushToSpotlightBufferOptions = {
|
|
7
|
+
spotlightBuffer: MessageBuffer<EventContainer>;
|
|
8
|
+
body: Buffer;
|
|
9
|
+
encoding?: ContentEncoding;
|
|
10
|
+
contentType?: string;
|
|
11
|
+
userAgent?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function pushToSpotlightBuffer(options: PushToSpotlightBufferOptions): EventContainer | undefined;
|
|
14
|
+
export declare function decompressBody(body: Buffer, contentEncoding?: ContentEncoding): Buffer<ArrayBufferLike>;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
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] = "75ed20dd-d677-4ccd-a15b-af93d9a30db1", e._sentryDebugIdIdentifier = "sentry-dbid-75ed20dd-d677-4ccd-a15b-af93d9a30db1");
|
|
6
|
+
} catch (e2) {
|
|
7
|
+
}
|
|
8
|
+
}();
|
|
9
|
+
import { brotliDecompressSync, inflateSync, gunzipSync } from "node:zlib";
|
|
10
|
+
import { MessageBuffer } from "./messageBuffer.js";
|
|
11
|
+
import { EventContainer } from "./utils/eventContainer.js";
|
|
12
|
+
import "../_virtual/_sentry-release-injection-file.js";
|
|
13
|
+
const decompressors = {
|
|
14
|
+
gzip: gunzipSync,
|
|
15
|
+
deflate: inflateSync,
|
|
16
|
+
br: brotliDecompressSync
|
|
17
|
+
};
|
|
18
|
+
function createSpotlightBuffer() {
|
|
19
|
+
return new MessageBuffer();
|
|
20
|
+
}
|
|
21
|
+
function pushToSpotlightBuffer(options) {
|
|
22
|
+
const body = decompressBody(options.body, options.encoding);
|
|
23
|
+
const contentType = options.contentType?.split(";")[0].toLocaleLowerCase();
|
|
24
|
+
if (contentType) {
|
|
25
|
+
const container = new EventContainer(contentType, body, options.userAgent);
|
|
26
|
+
options.spotlightBuffer.put(container);
|
|
27
|
+
return container;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function decompressBody(body, contentEncoding) {
|
|
31
|
+
if (!contentEncoding) {
|
|
32
|
+
return body;
|
|
33
|
+
}
|
|
34
|
+
return decompressors[contentEncoding](body);
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
createSpotlightBuffer,
|
|
38
|
+
decompressBody,
|
|
39
|
+
pushToSpotlightBuffer
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.js","sources":["../../src/server/sdk.ts"],"sourcesContent":["import { brotliDecompressSync, gunzipSync, inflateSync } from \"node:zlib\";\nimport { MessageBuffer } from \"./messageBuffer.ts\";\nimport { EventContainer } from \"./utils/eventContainer.ts\";\n\nconst decompressors: Record<\"gzip\" | \"deflate\" | \"br\", (buf: Buffer) => Buffer> = {\n gzip: gunzipSync,\n deflate: inflateSync,\n br: brotliDecompressSync,\n};\ntype ContentEncoding = keyof typeof decompressors;\n\nexport function createSpotlightBuffer() {\n return new MessageBuffer<EventContainer>();\n}\n\ntype PushToSpotlightBufferOptions = {\n spotlightBuffer: MessageBuffer<EventContainer>;\n body: Buffer;\n encoding?: ContentEncoding;\n contentType?: string;\n userAgent?: string;\n};\n\nexport function pushToSpotlightBuffer(options: PushToSpotlightBufferOptions) {\n const body = decompressBody(options.body, options.encoding);\n\n const contentType = options.contentType?.split(\";\")[0].toLocaleLowerCase();\n\n if (contentType) {\n // Create event container and add to buffer\n const container = new EventContainer(contentType, body, options.userAgent);\n\n // Add to buffer - this will automatically trigger all subscribers\n // including the onEnvelope callback if one is registered\n options.spotlightBuffer.put(container);\n\n return container;\n }\n}\n\nexport function decompressBody(body: Buffer, contentEncoding?: ContentEncoding) {\n if (!contentEncoding) {\n return body;\n }\n return decompressors[contentEncoding](body);\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAIA,MAAM,gBAA4E;AAAA,EAChF,MAAM;AAAA,EACN,SAAS;AAAA,EACT,IAAI;AACN;AAGO,SAAS,wBAAwB;AACtC,SAAO,IAAI,cAAA;AACb;AAUO,SAAS,sBAAsB,SAAuC;AAC3E,QAAM,OAAO,eAAe,QAAQ,MAAM,QAAQ,QAAQ;AAE1D,QAAM,cAAc,QAAQ,aAAa,MAAM,GAAG,EAAE,CAAC,EAAE,kBAAA;AAEvD,MAAI,aAAa;AAEf,UAAM,YAAY,IAAI,eAAe,aAAa,MAAM,QAAQ,SAAS;AAIzE,YAAQ,gBAAgB,IAAI,SAAS;AAErC,WAAO;AAAA,EACT;AACF;AAEO,SAAS,eAAe,MAAc,iBAAmC;AAC9E,MAAI,CAAC,iBAAiB;AACpB,WAAO;AAAA,EACT;AACA,SAAO,cAAc,eAAe,EAAE,IAAI;AAC5C;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FormatterType } from '../formatters/types.ts';
|
|
2
|
+
import { SideCarOptions } from './utils.ts';
|
|
3
|
+
export type CLIHandlerOptions = {
|
|
4
|
+
cmd?: string;
|
|
5
|
+
cmdArgs: string[];
|
|
6
|
+
port: SideCarOptions["port"];
|
|
7
|
+
help?: boolean;
|
|
8
|
+
debug?: boolean;
|
|
9
|
+
format?: FormatterType;
|
|
10
|
+
basePath?: SideCarOptions["basePath"];
|
|
11
|
+
filesToServe?: SideCarOptions["filesToServe"];
|
|
12
|
+
allowedOrigins?: SideCarOptions["allowedOrigins"];
|
|
13
|
+
};
|
|
14
|
+
export type CLIHandlerReturnType = Promise<any> | any;
|
|
15
|
+
export type CLIHandler = ((options: CLIHandlerOptions) => CLIHandlerReturnType) | (() => CLIHandlerReturnType);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HttpBindings } from '@hono/node-server';
|
|
2
|
+
import { IncomingPayloadCallback } from './utils.ts';
|
|
3
|
+
export type HonoEnv = {
|
|
4
|
+
Bindings: HttpBindings;
|
|
5
|
+
Variables: {
|
|
6
|
+
contextId: string;
|
|
7
|
+
basePath?: string;
|
|
8
|
+
incomingPayload?: IncomingPayloadCallback;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { ParsedEnvelope } from '../parser/processEnvelope.ts';
|
|
2
|
+
import { NormalizedAllowedOrigins } from '../utils/cors.ts';
|
|
3
|
+
export type IncomingPayloadCallback = (body: string) => void;
|
|
4
|
+
export type OnEnvelopeCallback = (envelope: ParsedEnvelope["envelope"]) => void;
|
|
5
|
+
export type SidecarLogger = {
|
|
6
|
+
info: (message: any) => void;
|
|
7
|
+
warn: (message: any) => void;
|
|
8
|
+
error: (message: any) => void;
|
|
9
|
+
debug: (message: any) => void;
|
|
10
|
+
};
|
|
11
|
+
export type SideCarOptions = {
|
|
12
|
+
/**
|
|
13
|
+
* The port on which the sidecar should listen.
|
|
14
|
+
* Defaults to 8969.
|
|
15
|
+
*/
|
|
16
|
+
port: number;
|
|
17
|
+
/**
|
|
18
|
+
* A logger that implements the SidecarLogger interface.
|
|
19
|
+
* Use this to inject your custom logger implementation.
|
|
20
|
+
*
|
|
21
|
+
* @default - a simple logger logging to the console.
|
|
22
|
+
*/
|
|
23
|
+
logger?: SidecarLogger;
|
|
24
|
+
/**
|
|
25
|
+
* The base path from where the static files should be served.
|
|
26
|
+
*/
|
|
27
|
+
basePath?: string;
|
|
28
|
+
filesToServe?: Record<string, Buffer>;
|
|
29
|
+
/**
|
|
30
|
+
* A callback that will be called with the incoming message.
|
|
31
|
+
* Helpful for debugging.
|
|
32
|
+
*/
|
|
33
|
+
incomingPayload?: IncomingPayloadCallback;
|
|
34
|
+
/**
|
|
35
|
+
* A callback that will be called with the parsed envelope every
|
|
36
|
+
* time an envelope is received. This will me mainly used for the
|
|
37
|
+
* CLI for streaming data but can be used by other tools as well.
|
|
38
|
+
*/
|
|
39
|
+
onEnvelope?: OnEnvelopeCallback;
|
|
40
|
+
isStandalone?: boolean;
|
|
41
|
+
stdioMCP?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Additional origins to allow for CORS requests.
|
|
44
|
+
* Useful for custom local domains, tunnels, etc.
|
|
45
|
+
*
|
|
46
|
+
* Accepts two formats:
|
|
47
|
+
* - Full origins (e.g., "https://ngrok.io:443") for strict matching
|
|
48
|
+
* - Plain domains (e.g., "myapp.local") to allow any protocol/port
|
|
49
|
+
*/
|
|
50
|
+
allowedOrigins?: string[];
|
|
51
|
+
};
|
|
52
|
+
export type StartServerOptions = Pick<SideCarOptions, "basePath" | "filesToServe" | "incomingPayload"> & {
|
|
53
|
+
port: number;
|
|
54
|
+
/** Pre-normalized allowed origins for CORS (use normalizeAllowedOrigins() to create) */
|
|
55
|
+
normalizedAllowedOrigins?: NormalizedAllowedOrigins;
|
|
56
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pre-normalized allowed origins for efficient matching.
|
|
3
|
+
* Call normalizeAllowedOrigins() once at server startup to create this structure.
|
|
4
|
+
*/
|
|
5
|
+
export interface NormalizedAllowedOrigins {
|
|
6
|
+
/** Full origins (lowercased, trailing slash removed) for exact matching */
|
|
7
|
+
fullOrigins: Set<string>;
|
|
8
|
+
/** Plain domains (lowercased) for permissive matching */
|
|
9
|
+
domains: Set<string>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Normalize and classify allowed origins for efficient matching.
|
|
13
|
+
* Call this once at server startup, then pass the result to isAllowedOrigin().
|
|
14
|
+
*
|
|
15
|
+
* @param allowedOrigins - Raw list of allowed origins/domains from config
|
|
16
|
+
* @returns Pre-normalized structure for O(1) lookups
|
|
17
|
+
*/
|
|
18
|
+
export declare function normalizeAllowedOrigins(allowedOrigins: string[]): NormalizedAllowedOrigins;
|
|
19
|
+
/**
|
|
20
|
+
* Clear the DNS cache, pending resolutions, and machine IPs cache. Useful for testing.
|
|
21
|
+
*/
|
|
22
|
+
export declare function clearDnsCache(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Get the current DNS cache size. Useful for testing.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getDnsCacheSize(): number;
|
|
27
|
+
/**
|
|
28
|
+
* Validates if an origin should be allowed to access the Sidecar.
|
|
29
|
+
*
|
|
30
|
+
* Allowed origins:
|
|
31
|
+
* - localhost (RFC 6761 reserved name, always trusted)
|
|
32
|
+
* - Any origin whose hostname resolves to this machine's IPs (with TTL >= 1h)
|
|
33
|
+
* - https://spotlightjs.com and subdomains (HTTPS only, default port)
|
|
34
|
+
* - Custom origins/domains from the normalizedAllowedOrigins list
|
|
35
|
+
*
|
|
36
|
+
* For DNS rebinding protection details, see the TTL Constants section above.
|
|
37
|
+
*
|
|
38
|
+
* @param origin - The origin to validate
|
|
39
|
+
* @param normalizedAllowedOrigins - Optional pre-normalized allowed origins (from normalizeAllowedOrigins())
|
|
40
|
+
* @returns Promise<boolean> - true if the origin is allowed, false otherwise
|
|
41
|
+
*/
|
|
42
|
+
export declare function isAllowedOrigin(origin: string, normalizedAllowedOrigins?: NormalizedAllowedOrigins): Promise<boolean>;
|