@glasstrace/sdk 1.3.1 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +38 -0
  2. package/dist/{chunk-X4IK6KES.js → chunk-3HWBR7XM.js} +3 -3
  3. package/dist/chunk-3HWBR7XM.js.map +1 -0
  4. package/dist/{chunk-XS3BO7RY.js → chunk-BQKPRFLF.js} +3 -3
  5. package/dist/{chunk-USLH3OTM.js → chunk-E62DL2H4.js} +3 -3
  6. package/dist/{chunk-DW2UJUNB.js → chunk-LQKJ27LO.js} +11 -2
  7. package/dist/chunk-LQKJ27LO.js.map +1 -0
  8. package/dist/{chunk-MQHLWSIX.js → chunk-M4ZI7J3N.js} +100 -62
  9. package/dist/{chunk-MQHLWSIX.js.map → chunk-M4ZI7J3N.js.map} +1 -1
  10. package/dist/{chunk-JFR42QG5.js → chunk-QJVAKVQJ.js} +2 -2
  11. package/dist/{chunk-CRM3EYOL.js → chunk-WKOQJCFN.js} +2 -2
  12. package/dist/{chunk-5PFPEA4C.js → chunk-XNKG4WNQ.js} +35 -14
  13. package/dist/chunk-XNKG4WNQ.js.map +1 -0
  14. package/dist/{chunk-3TU62WD6.js → chunk-YG3X7TUI.js} +1 -1
  15. package/dist/chunk-YG3X7TUI.js.map +1 -0
  16. package/dist/cli/init.cjs +51 -13
  17. package/dist/cli/init.cjs.map +1 -1
  18. package/dist/cli/init.js +6 -6
  19. package/dist/cli/mcp-add.cjs +49 -11
  20. package/dist/cli/mcp-add.cjs.map +1 -1
  21. package/dist/cli/mcp-add.js +2 -2
  22. package/dist/cli/uninit.cjs.map +1 -1
  23. package/dist/cli/uninit.js +3 -3
  24. package/dist/cli/validate.cjs +49 -11
  25. package/dist/cli/validate.cjs.map +1 -1
  26. package/dist/cli/validate.js +2 -2
  27. package/dist/edge-entry.cjs +88 -50
  28. package/dist/edge-entry.cjs.map +1 -1
  29. package/dist/edge-entry.js +2 -2
  30. package/dist/index.cjs +135 -68
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.js +6 -6
  33. package/dist/node-entry.cjs +135 -68
  34. package/dist/node-entry.cjs.map +1 -1
  35. package/dist/node-entry.js +8 -8
  36. package/dist/node-subpath.cjs +49 -11
  37. package/dist/node-subpath.cjs.map +1 -1
  38. package/dist/node-subpath.js +4 -4
  39. package/dist/{source-map-uploader-LACAGKIW.js → source-map-uploader-JAD3XM4F.js} +4 -4
  40. package/package.json +1 -1
  41. package/dist/chunk-3TU62WD6.js.map +0 -1
  42. package/dist/chunk-5PFPEA4C.js.map +0 -1
  43. package/dist/chunk-DW2UJUNB.js.map +0 -1
  44. package/dist/chunk-X4IK6KES.js.map +0 -1
  45. /package/dist/{chunk-XS3BO7RY.js.map → chunk-BQKPRFLF.js.map} +0 -0
  46. /package/dist/{chunk-USLH3OTM.js.map → chunk-E62DL2H4.js.map} +0 -0
  47. /package/dist/{chunk-JFR42QG5.js.map → chunk-QJVAKVQJ.js.map} +0 -0
  48. /package/dist/{chunk-CRM3EYOL.js.map → chunk-WKOQJCFN.js.map} +0 -0
  49. /package/dist/{source-map-uploader-LACAGKIW.js.map → source-map-uploader-JAD3XM4F.js.map} +0 -0
package/dist/index.js CHANGED
@@ -12,14 +12,14 @@ import {
12
12
  registerGlasstrace,
13
13
  waitForReady,
14
14
  withGlasstraceConfig
15
- } from "./chunk-5PFPEA4C.js";
15
+ } from "./chunk-XNKG4WNQ.js";
16
16
  import {
17
17
  GlasstraceSpanProcessor,
18
18
  SdkError,
19
19
  captureCorrelationId
20
- } from "./chunk-CRM3EYOL.js";
20
+ } from "./chunk-WKOQJCFN.js";
21
21
  import "./chunk-DQ25VOKK.js";
22
- import "./chunk-3TU62WD6.js";
22
+ import "./chunk-YG3X7TUI.js";
23
23
  import {
24
24
  getActiveConfig,
25
25
  getLinkedAccountId,
@@ -27,7 +27,7 @@ import {
27
27
  performInit,
28
28
  saveCachedConfig,
29
29
  sendInitRequest
30
- } from "./chunk-X4IK6KES.js";
30
+ } from "./chunk-3HWBR7XM.js";
31
31
  import {
32
32
  isAnonymousMode,
33
33
  isProductionDisabled,
@@ -37,10 +37,10 @@ import {
37
37
  import {
38
38
  getOrCreateAnonKey,
39
39
  readAnonKey
40
- } from "./chunk-DW2UJUNB.js";
40
+ } from "./chunk-LQKJ27LO.js";
41
41
  import {
42
42
  deriveSessionId
43
- } from "./chunk-MQHLWSIX.js";
43
+ } from "./chunk-M4ZI7J3N.js";
44
44
  import "./chunk-NSBPE2FW.js";
45
45
  export {
46
46
  GlasstraceExporter,
@@ -14566,7 +14566,7 @@ function deriveSessionId(apiKey, origin, date5, windowIndex) {
14566
14566
  const digest = sha256Hex(input).slice(0, 16);
14567
14567
  return SessionIdSchema.parse(digest);
14568
14568
  }
14569
- var DevApiKeySchema, AnonApiKeySchema, SessionIdSchema, BuildHashSchema, SdkDiagnosticCodeSchema, CaptureConfigSchema, SdkCachedConfigSchema, GlasstraceOptionsSchema, GlasstraceEnvVarsSchema, ImportGraphPayloadSchema, SdkHealthReportSchema, TierLimitsSchema, SdkInitResponseSchema, DiscoveryResponseSchema, SourceMapUploadResponseSchema, PresignedUploadRequestSchema, PresignedUploadResponseSchema, SourceMapManifestRequestSchema, SourceMapManifestResponseSchema, GLASSTRACE_ATTRIBUTE_NAMES, DEFAULT_CAPTURE_CONFIG, K;
14569
+ var DevApiKeySchema, AnonApiKeySchema, SessionIdSchema, BuildHashSchema, SdkDiagnosticCodeSchema, CaptureConfigSchema, SdkCachedConfigSchema, GlasstraceOptionsSchema, GlasstraceEnvVarsSchema, GLASSTRACE_ATTRIBUTE_NAMES, DEFAULT_CAPTURE_CONFIG, MAX_SOURCE_MAP_FILE_PATH_LENGTH, MAX_SOURCE_MAP_FILE_SIZE, MAX_SOURCE_MAP_FILE_COUNT, MAX_PRESIGNED_CLIENT_TOKEN_LENGTH, MAX_PRESIGNED_PATHNAME_LENGTH, ImportGraphPayloadSchema, SdkHealthReportSchema, TierLimitsSchema, SdkInitResponseSchema, DiscoveryResponseSchema, SourceMapUploadResponseSchema, PresignedUploadRequestSchema, PresignedUploadResponseSchema, SourceMapManifestRequestSchema, SourceMapManifestResponseSchema, K;
14570
14570
  var init_dist = __esm({
14571
14571
  "../protocol/dist/index.js"() {
14572
14572
  "use strict";
@@ -14617,6 +14617,59 @@ var init_dist = __esm({
14617
14617
  NODE_ENV: external_exports.string().optional(),
14618
14618
  VERCEL_ENV: external_exports.string().optional()
14619
14619
  });
14620
+ GLASSTRACE_ATTRIBUTE_NAMES = {
14621
+ // Server-side attributes
14622
+ TRACE_TYPE: "glasstrace.trace.type",
14623
+ SESSION_ID: "glasstrace.session.id",
14624
+ CORRELATION_ID: "glasstrace.correlation.id",
14625
+ ENVIRONMENT: "glasstrace.environment",
14626
+ ROUTE: "glasstrace.route",
14627
+ HTTP_METHOD: "glasstrace.http.method",
14628
+ HTTP_STATUS_CODE: "glasstrace.http.status_code",
14629
+ HTTP_DURATION_MS: "glasstrace.http.duration_ms",
14630
+ ERROR_MESSAGE: "glasstrace.error.message",
14631
+ ERROR_CODE: "glasstrace.error.code",
14632
+ ERROR_CATEGORY: "glasstrace.error.category",
14633
+ ERROR_FIELD: "glasstrace.error.field",
14634
+ ORM_PROVIDER: "glasstrace.orm.provider",
14635
+ ORM_MODEL: "glasstrace.orm.model",
14636
+ ORM_OPERATION: "glasstrace.orm.operation",
14637
+ ORM_DURATION_MS: "glasstrace.orm.duration_ms",
14638
+ FETCH_URL: "glasstrace.fetch.url",
14639
+ FETCH_METHOD: "glasstrace.fetch.method",
14640
+ FETCH_STATUS_CODE: "glasstrace.fetch.status_code",
14641
+ FETCH_DURATION_MS: "glasstrace.fetch.duration_ms",
14642
+ FETCH_TARGET: "glasstrace.fetch.target",
14643
+ ENV_REFERENCED: "glasstrace.env.referenced",
14644
+ BUILD_HASH: "glasstrace.build.hash",
14645
+ SOURCE_FILE: "glasstrace.source.file",
14646
+ SOURCE_LINE: "glasstrace.source.line",
14647
+ SOURCE_MAPPED: "glasstrace.source.mapped",
14648
+ TRPC_PROCEDURE: "glasstrace.trpc.procedure",
14649
+ ERROR_RESPONSE_BODY: "glasstrace.error.response_body",
14650
+ NEXT_ACTION_DETECTED: "glasstrace.next.action.detected",
14651
+ // Client-side attributes
14652
+ PLATFORM: "glasstrace.platform",
14653
+ GESTURE_TYPE: "glasstrace.gesture.type",
14654
+ TRIGGER_TYPE: "glasstrace.trigger.type",
14655
+ ELEMENT_FINGERPRINT: "glasstrace.element.fingerprint",
14656
+ ELEMENT_CONFIDENCE: "glasstrace.element.confidence",
14657
+ TAB_ID: "glasstrace.tab.id"
14658
+ };
14659
+ DEFAULT_CAPTURE_CONFIG = {
14660
+ requestBodies: false,
14661
+ queryParamValues: false,
14662
+ envVarValues: false,
14663
+ fullConsoleOutput: false,
14664
+ importGraph: false,
14665
+ consoleErrors: false,
14666
+ errorResponseBodies: false
14667
+ };
14668
+ MAX_SOURCE_MAP_FILE_PATH_LENGTH = 512;
14669
+ MAX_SOURCE_MAP_FILE_SIZE = 50 * 1024 * 1024;
14670
+ MAX_SOURCE_MAP_FILE_COUNT = 100;
14671
+ MAX_PRESIGNED_CLIENT_TOKEN_LENGTH = 2048;
14672
+ MAX_PRESIGNED_PATHNAME_LENGTH = 1024;
14620
14673
  ImportGraphPayloadSchema = external_exports.object({
14621
14674
  buildHash: BuildHashSchema,
14622
14675
  graph: external_exports.record(external_exports.string(), external_exports.array(external_exports.string()))
@@ -14663,35 +14716,68 @@ var init_dist = __esm({
14663
14716
  buildHash: BuildHashSchema,
14664
14717
  files: external_exports.array(
14665
14718
  external_exports.object({
14666
- filePath: external_exports.string().min(1),
14667
- sizeBytes: external_exports.number().int().positive()
14719
+ filePath: external_exports.string().min(1).max(
14720
+ MAX_SOURCE_MAP_FILE_PATH_LENGTH,
14721
+ `filePath length exceeds maximum of ${MAX_SOURCE_MAP_FILE_PATH_LENGTH} characters`
14722
+ ),
14723
+ sizeBytes: external_exports.number().int().positive().max(
14724
+ MAX_SOURCE_MAP_FILE_SIZE,
14725
+ `sizeBytes exceeds maximum of ${MAX_SOURCE_MAP_FILE_SIZE} bytes (${MAX_SOURCE_MAP_FILE_SIZE / (1024 * 1024)} MiB)`
14726
+ )
14668
14727
  })
14669
- ).min(1).max(100)
14728
+ ).min(1).max(
14729
+ MAX_SOURCE_MAP_FILE_COUNT,
14730
+ `files array exceeds maximum of ${MAX_SOURCE_MAP_FILE_COUNT} entries`
14731
+ )
14670
14732
  });
14671
14733
  PresignedUploadResponseSchema = external_exports.object({
14672
14734
  uploadId: external_exports.string().uuid(),
14673
14735
  expiresAt: external_exports.number().int().nonnegative(),
14674
14736
  files: external_exports.array(
14675
14737
  external_exports.object({
14676
- filePath: external_exports.string().min(1),
14677
- clientToken: external_exports.string().min(1),
14678
- pathname: external_exports.string().min(1),
14679
- maxBytes: external_exports.number().int().positive(),
14738
+ filePath: external_exports.string().min(1).max(
14739
+ MAX_SOURCE_MAP_FILE_PATH_LENGTH,
14740
+ `filePath length exceeds maximum of ${MAX_SOURCE_MAP_FILE_PATH_LENGTH} characters`
14741
+ ),
14742
+ clientToken: external_exports.string().min(1).max(
14743
+ MAX_PRESIGNED_CLIENT_TOKEN_LENGTH,
14744
+ `clientToken length exceeds maximum of ${MAX_PRESIGNED_CLIENT_TOKEN_LENGTH} characters`
14745
+ ),
14746
+ pathname: external_exports.string().min(1).max(
14747
+ MAX_PRESIGNED_PATHNAME_LENGTH,
14748
+ `pathname length exceeds maximum of ${MAX_PRESIGNED_PATHNAME_LENGTH} characters`
14749
+ ),
14750
+ maxBytes: external_exports.number().int().positive().max(
14751
+ MAX_SOURCE_MAP_FILE_SIZE,
14752
+ `maxBytes exceeds maximum of ${MAX_SOURCE_MAP_FILE_SIZE} bytes (${MAX_SOURCE_MAP_FILE_SIZE / (1024 * 1024)} MiB)`
14753
+ ),
14680
14754
  /** Vercel Blob access mode — explicit in the contract per DISC-756. */
14681
14755
  access: external_exports.enum(["public"])
14682
14756
  })
14683
- ).min(1).max(100)
14757
+ ).min(1).max(
14758
+ MAX_SOURCE_MAP_FILE_COUNT,
14759
+ `files array exceeds maximum of ${MAX_SOURCE_MAP_FILE_COUNT} entries`
14760
+ )
14684
14761
  });
14685
14762
  SourceMapManifestRequestSchema = external_exports.object({
14686
14763
  uploadId: external_exports.string().uuid(),
14687
14764
  buildHash: BuildHashSchema,
14688
14765
  files: external_exports.array(
14689
14766
  external_exports.object({
14690
- filePath: external_exports.string().min(1),
14691
- sizeBytes: external_exports.number().int().positive(),
14767
+ filePath: external_exports.string().min(1).max(
14768
+ MAX_SOURCE_MAP_FILE_PATH_LENGTH,
14769
+ `filePath length exceeds maximum of ${MAX_SOURCE_MAP_FILE_PATH_LENGTH} characters`
14770
+ ),
14771
+ sizeBytes: external_exports.number().int().positive().max(
14772
+ MAX_SOURCE_MAP_FILE_SIZE,
14773
+ `sizeBytes exceeds maximum of ${MAX_SOURCE_MAP_FILE_SIZE} bytes (${MAX_SOURCE_MAP_FILE_SIZE / (1024 * 1024)} MiB)`
14774
+ ),
14692
14775
  blobUrl: external_exports.string().url()
14693
14776
  })
14694
- ).min(1).max(100)
14777
+ ).min(1).max(
14778
+ MAX_SOURCE_MAP_FILE_COUNT,
14779
+ `files array exceeds maximum of ${MAX_SOURCE_MAP_FILE_COUNT} entries`
14780
+ )
14695
14781
  });
14696
14782
  SourceMapManifestResponseSchema = external_exports.object({
14697
14783
  success: external_exports.literal(true),
@@ -14700,54 +14786,6 @@ var init_dist = __esm({
14700
14786
  totalSizeBytes: external_exports.number().int().nonnegative(),
14701
14787
  activatedAt: external_exports.number().int().positive()
14702
14788
  });
14703
- GLASSTRACE_ATTRIBUTE_NAMES = {
14704
- // Server-side attributes
14705
- TRACE_TYPE: "glasstrace.trace.type",
14706
- SESSION_ID: "glasstrace.session.id",
14707
- CORRELATION_ID: "glasstrace.correlation.id",
14708
- ENVIRONMENT: "glasstrace.environment",
14709
- ROUTE: "glasstrace.route",
14710
- HTTP_METHOD: "glasstrace.http.method",
14711
- HTTP_STATUS_CODE: "glasstrace.http.status_code",
14712
- HTTP_DURATION_MS: "glasstrace.http.duration_ms",
14713
- ERROR_MESSAGE: "glasstrace.error.message",
14714
- ERROR_CODE: "glasstrace.error.code",
14715
- ERROR_CATEGORY: "glasstrace.error.category",
14716
- ERROR_FIELD: "glasstrace.error.field",
14717
- ORM_PROVIDER: "glasstrace.orm.provider",
14718
- ORM_MODEL: "glasstrace.orm.model",
14719
- ORM_OPERATION: "glasstrace.orm.operation",
14720
- ORM_DURATION_MS: "glasstrace.orm.duration_ms",
14721
- FETCH_URL: "glasstrace.fetch.url",
14722
- FETCH_METHOD: "glasstrace.fetch.method",
14723
- FETCH_STATUS_CODE: "glasstrace.fetch.status_code",
14724
- FETCH_DURATION_MS: "glasstrace.fetch.duration_ms",
14725
- FETCH_TARGET: "glasstrace.fetch.target",
14726
- ENV_REFERENCED: "glasstrace.env.referenced",
14727
- BUILD_HASH: "glasstrace.build.hash",
14728
- SOURCE_FILE: "glasstrace.source.file",
14729
- SOURCE_LINE: "glasstrace.source.line",
14730
- SOURCE_MAPPED: "glasstrace.source.mapped",
14731
- TRPC_PROCEDURE: "glasstrace.trpc.procedure",
14732
- ERROR_RESPONSE_BODY: "glasstrace.error.response_body",
14733
- NEXT_ACTION_DETECTED: "glasstrace.next.action.detected",
14734
- // Client-side attributes
14735
- PLATFORM: "glasstrace.platform",
14736
- GESTURE_TYPE: "glasstrace.gesture.type",
14737
- TRIGGER_TYPE: "glasstrace.trigger.type",
14738
- ELEMENT_FINGERPRINT: "glasstrace.element.fingerprint",
14739
- ELEMENT_CONFIDENCE: "glasstrace.element.confidence",
14740
- TAB_ID: "glasstrace.tab.id"
14741
- };
14742
- DEFAULT_CAPTURE_CONFIG = {
14743
- requestBodies: false,
14744
- queryParamValues: false,
14745
- envVarValues: false,
14746
- fullConsoleOutput: false,
14747
- importGraph: false,
14748
- consoleErrors: false,
14749
- errorResponseBodies: false
14750
- };
14751
14789
  K = new Uint32Array([
14752
14790
  1116352408,
14753
14791
  1899447441,
@@ -17698,6 +17736,14 @@ function fsyncParentDirSyncWithFs(targetPath, fs4) {
17698
17736
  }
17699
17737
  }
17700
17738
  }
17739
+ function isSyncFsAvailable() {
17740
+ try {
17741
+ loadFsSync();
17742
+ return true;
17743
+ } catch {
17744
+ return false;
17745
+ }
17746
+ }
17701
17747
 
17702
17748
  // src/mcp-runtime.ts
17703
17749
  var MCP_ENDPOINT = "https://api.glasstrace.dev/mcp";
@@ -18424,15 +18470,32 @@ function prepareErrorResponseBody(body) {
18424
18470
  }
18425
18471
 
18426
18472
  // src/build-info.ts
18473
+ init_console_capture();
18427
18474
  var UNSET = "";
18475
+ var SHA_SHAPE = /^[0-9a-f]{7,64}$/i;
18476
+ function redactBuildHash(value) {
18477
+ const sanitize2 = (s) => s.replace(/[\x00-\x1F\x7F]/g, "?");
18478
+ if (value.length <= 12) return sanitize2(value.slice(0, 4)) + "...";
18479
+ return sanitize2(value.slice(0, 8)) + "..." + sanitize2(value.slice(-4));
18480
+ }
18428
18481
  function readBuildHashFromEnv() {
18429
18482
  const raw = process.env.GLASSTRACE_BUILD_HASH;
18430
18483
  if (typeof raw !== "string") return UNSET;
18431
18484
  const trimmed = raw.trim();
18432
- return trimmed.length > 0 ? trimmed : UNSET;
18485
+ if (trimmed.length === 0) return UNSET;
18486
+ if (!SHA_SHAPE.test(trimmed)) {
18487
+ sdkLog(
18488
+ "warn",
18489
+ `[glasstrace] warning: GLASSTRACE_BUILD_HASH=${redactBuildHash(trimmed)} does not match expected SHA shape (7-64 hex characters); source-map enrichment may not work as expected.`
18490
+ );
18491
+ }
18492
+ return trimmed;
18433
18493
  }
18434
- var cachedBuildHash = readBuildHashFromEnv();
18494
+ var cachedBuildHash = null;
18435
18495
  function getBuildHash() {
18496
+ if (cachedBuildHash === null) {
18497
+ cachedBuildHash = readBuildHashFromEnv();
18498
+ }
18436
18499
  return cachedBuildHash === UNSET ? void 0 : cachedBuildHash;
18437
18500
  }
18438
18501
 
@@ -22502,6 +22565,10 @@ var _debounceTimer = null;
22502
22565
  var _started = false;
22503
22566
  function startRuntimeStateWriter(options) {
22504
22567
  if (_started) return;
22568
+ if (!isSyncFsAvailable()) {
22569
+ _started = true;
22570
+ return;
22571
+ }
22505
22572
  _started = true;
22506
22573
  _projectRoot = options.projectRoot;
22507
22574
  _sdkVersion = options.sdkVersion;
@@ -22587,7 +22654,7 @@ function registerGlasstrace(options) {
22587
22654
  setCoreState(CoreState.REGISTERING);
22588
22655
  startRuntimeStateWriter({
22589
22656
  projectRoot: process.cwd(),
22590
- sdkVersion: "1.3.1"
22657
+ sdkVersion: "1.3.3"
22591
22658
  });
22592
22659
  const config2 = resolveConfig(options);
22593
22660
  if (config2.verbose) {
@@ -22753,8 +22820,8 @@ async function backgroundInit(config2, anonKeyForInit, generation) {
22753
22820
  if (config2.verbose) {
22754
22821
  console.info("[glasstrace] Background init firing.");
22755
22822
  }
22756
- const healthReport = collectHealthReport("1.3.1");
22757
- const initResult = await performInit(config2, anonKeyForInit, "1.3.1", healthReport);
22823
+ const healthReport = collectHealthReport("1.3.3");
22824
+ const initResult = await performInit(config2, anonKeyForInit, "1.3.3", healthReport);
22758
22825
  if (generation !== registrationGeneration) return;
22759
22826
  const currentState = getCoreState();
22760
22827
  if (currentState === CoreState.SHUTTING_DOWN || currentState === CoreState.SHUTDOWN) {
@@ -22777,7 +22844,7 @@ async function backgroundInit(config2, anonKeyForInit, generation) {
22777
22844
  }
22778
22845
  maybeInstallConsoleCapture();
22779
22846
  if (didLastInitSucceed()) {
22780
- startHeartbeat(config2, anonKeyForInit, "1.3.1", generation, (newApiKey, accountId) => {
22847
+ startHeartbeat(config2, anonKeyForInit, "1.3.3", generation, (newApiKey, accountId) => {
22781
22848
  setAuthState(AuthState.CLAIMING);
22782
22849
  emitLifecycleEvent("auth:claim_started", { accountId });
22783
22850
  setResolvedApiKey(newApiKey);
@@ -22939,8 +23006,8 @@ init_dist();
22939
23006
  init_error_nudge();
22940
23007
 
22941
23008
  // src/stack-frame.ts
22942
- var PAREN_FRAME = /^\s*at\s+(?:[^()]+\s+)?\(([^()\s]+):(\d+):(\d+)\)\s*$/;
22943
- var BARE_FRAME = /^\s*at\s+(?:async\s+)?([^()\s]+):(\d+):(\d+)\s*$/;
23009
+ var PAREN_FRAME = /^\s*at\s+(?!eval\s+\(eval\s+at\b)(?:[^()]+\s+)?\(([^()\s]+(?:\([A-Za-z0-9_.-]+\)[^()\s]*)*):(\d+):(\d+)\)\s*$/;
23010
+ var BARE_FRAME = /^\s*at\s+(?:async\s+)?([^()\s]+(?:\([A-Za-z0-9_.-]+\)[^()\s]*)*):(\d+):(\d+)\s*$/;
22944
23011
  var INTERNAL_FRAME_PATTERNS = [
22945
23012
  /^node:/,
22946
23013
  /^node:internal\//,