@glasstrace/sdk 1.3.2 → 1.3.4
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/README.md +126 -0
- package/dist/{chunk-REEU6CNO.js → chunk-3HWBR7XM.js} +3 -3
- package/dist/chunk-3HWBR7XM.js.map +1 -0
- package/dist/{chunk-XS3BO7RY.js → chunk-BQKPRFLF.js} +3 -3
- package/dist/{chunk-GCFOY7T2.js → chunk-E62DL2H4.js} +3 -3
- package/dist/{chunk-UFZEISZB.js → chunk-LQKJ27LO.js} +2 -2
- package/dist/chunk-LQKJ27LO.js.map +1 -0
- package/dist/{chunk-MQHLWSIX.js → chunk-M4ZI7J3N.js} +100 -62
- package/dist/{chunk-MQHLWSIX.js.map → chunk-M4ZI7J3N.js.map} +1 -1
- package/dist/{chunk-JFR42QG5.js → chunk-QJVAKVQJ.js} +2 -2
- package/dist/{chunk-CRM3EYOL.js → chunk-WKOQJCFN.js} +2 -2
- package/dist/{chunk-DQGNUENK.js → chunk-XFNK4YEW.js} +58 -16
- package/dist/chunk-XFNK4YEW.js.map +1 -0
- package/dist/{chunk-3TU62WD6.js → chunk-YG3X7TUI.js} +1 -1
- package/dist/chunk-YG3X7TUI.js.map +1 -0
- package/dist/cli/init.cjs +51 -13
- package/dist/cli/init.cjs.map +1 -1
- package/dist/cli/init.js +6 -6
- package/dist/cli/mcp-add.cjs +49 -11
- package/dist/cli/mcp-add.cjs.map +1 -1
- package/dist/cli/mcp-add.js +2 -2
- package/dist/cli/uninit.cjs.map +1 -1
- package/dist/cli/uninit.js +3 -3
- package/dist/cli/validate.cjs +49 -11
- package/dist/cli/validate.cjs.map +1 -1
- package/dist/cli/validate.js +2 -2
- package/dist/edge-entry.cjs +88 -50
- package/dist/edge-entry.cjs.map +1 -1
- package/dist/edge-entry.js +2 -2
- package/dist/index.cjs +151 -70
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +19 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +6 -6
- package/dist/node-entry.cjs +151 -70
- package/dist/node-entry.cjs.map +1 -1
- package/dist/node-entry.js +8 -8
- package/dist/node-subpath.cjs +49 -11
- package/dist/node-subpath.cjs.map +1 -1
- package/dist/node-subpath.js +4 -4
- package/dist/{source-map-uploader-LACAGKIW.js → source-map-uploader-JAD3XM4F.js} +4 -4
- package/package.json +1 -1
- package/dist/chunk-3TU62WD6.js.map +0 -1
- package/dist/chunk-DQGNUENK.js.map +0 -1
- package/dist/chunk-REEU6CNO.js.map +0 -1
- package/dist/chunk-UFZEISZB.js.map +0 -1
- /package/dist/{chunk-XS3BO7RY.js.map → chunk-BQKPRFLF.js.map} +0 -0
- /package/dist/{chunk-GCFOY7T2.js.map → chunk-E62DL2H4.js.map} +0 -0
- /package/dist/{chunk-JFR42QG5.js.map → chunk-QJVAKVQJ.js.map} +0 -0
- /package/dist/{chunk-CRM3EYOL.js.map → chunk-WKOQJCFN.js.map} +0 -0
- /package/dist/{source-map-uploader-LACAGKIW.js.map → source-map-uploader-JAD3XM4F.js.map} +0 -0
package/dist/edge-entry.js
CHANGED
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
GlasstraceSpanProcessor,
|
|
3
3
|
SdkError,
|
|
4
4
|
captureCorrelationId
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-WKOQJCFN.js";
|
|
6
6
|
import "./chunk-DQ25VOKK.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-M4ZI7J3N.js";
|
|
8
8
|
import "./chunk-NSBPE2FW.js";
|
|
9
9
|
export {
|
|
10
10
|
GlasstraceSpanProcessor,
|
package/dist/index.cjs
CHANGED
|
@@ -14563,7 +14563,7 @@ function deriveSessionId(apiKey, origin, date5, windowIndex) {
|
|
|
14563
14563
|
const digest = sha256Hex(input).slice(0, 16);
|
|
14564
14564
|
return SessionIdSchema.parse(digest);
|
|
14565
14565
|
}
|
|
14566
|
-
var DevApiKeySchema, AnonApiKeySchema, SessionIdSchema, BuildHashSchema, SdkDiagnosticCodeSchema, CaptureConfigSchema, SdkCachedConfigSchema, GlasstraceOptionsSchema, GlasstraceEnvVarsSchema, ImportGraphPayloadSchema, SdkHealthReportSchema, TierLimitsSchema, SdkInitResponseSchema, DiscoveryResponseSchema, SourceMapUploadResponseSchema, PresignedUploadRequestSchema, PresignedUploadResponseSchema, SourceMapManifestRequestSchema, SourceMapManifestResponseSchema,
|
|
14566
|
+
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;
|
|
14567
14567
|
var init_dist = __esm({
|
|
14568
14568
|
"../protocol/dist/index.js"() {
|
|
14569
14569
|
"use strict";
|
|
@@ -14614,6 +14614,59 @@ var init_dist = __esm({
|
|
|
14614
14614
|
NODE_ENV: external_exports.string().optional(),
|
|
14615
14615
|
VERCEL_ENV: external_exports.string().optional()
|
|
14616
14616
|
});
|
|
14617
|
+
GLASSTRACE_ATTRIBUTE_NAMES = {
|
|
14618
|
+
// Server-side attributes
|
|
14619
|
+
TRACE_TYPE: "glasstrace.trace.type",
|
|
14620
|
+
SESSION_ID: "glasstrace.session.id",
|
|
14621
|
+
CORRELATION_ID: "glasstrace.correlation.id",
|
|
14622
|
+
ENVIRONMENT: "glasstrace.environment",
|
|
14623
|
+
ROUTE: "glasstrace.route",
|
|
14624
|
+
HTTP_METHOD: "glasstrace.http.method",
|
|
14625
|
+
HTTP_STATUS_CODE: "glasstrace.http.status_code",
|
|
14626
|
+
HTTP_DURATION_MS: "glasstrace.http.duration_ms",
|
|
14627
|
+
ERROR_MESSAGE: "glasstrace.error.message",
|
|
14628
|
+
ERROR_CODE: "glasstrace.error.code",
|
|
14629
|
+
ERROR_CATEGORY: "glasstrace.error.category",
|
|
14630
|
+
ERROR_FIELD: "glasstrace.error.field",
|
|
14631
|
+
ORM_PROVIDER: "glasstrace.orm.provider",
|
|
14632
|
+
ORM_MODEL: "glasstrace.orm.model",
|
|
14633
|
+
ORM_OPERATION: "glasstrace.orm.operation",
|
|
14634
|
+
ORM_DURATION_MS: "glasstrace.orm.duration_ms",
|
|
14635
|
+
FETCH_URL: "glasstrace.fetch.url",
|
|
14636
|
+
FETCH_METHOD: "glasstrace.fetch.method",
|
|
14637
|
+
FETCH_STATUS_CODE: "glasstrace.fetch.status_code",
|
|
14638
|
+
FETCH_DURATION_MS: "glasstrace.fetch.duration_ms",
|
|
14639
|
+
FETCH_TARGET: "glasstrace.fetch.target",
|
|
14640
|
+
ENV_REFERENCED: "glasstrace.env.referenced",
|
|
14641
|
+
BUILD_HASH: "glasstrace.build.hash",
|
|
14642
|
+
SOURCE_FILE: "glasstrace.source.file",
|
|
14643
|
+
SOURCE_LINE: "glasstrace.source.line",
|
|
14644
|
+
SOURCE_MAPPED: "glasstrace.source.mapped",
|
|
14645
|
+
TRPC_PROCEDURE: "glasstrace.trpc.procedure",
|
|
14646
|
+
ERROR_RESPONSE_BODY: "glasstrace.error.response_body",
|
|
14647
|
+
NEXT_ACTION_DETECTED: "glasstrace.next.action.detected",
|
|
14648
|
+
// Client-side attributes
|
|
14649
|
+
PLATFORM: "glasstrace.platform",
|
|
14650
|
+
GESTURE_TYPE: "glasstrace.gesture.type",
|
|
14651
|
+
TRIGGER_TYPE: "glasstrace.trigger.type",
|
|
14652
|
+
ELEMENT_FINGERPRINT: "glasstrace.element.fingerprint",
|
|
14653
|
+
ELEMENT_CONFIDENCE: "glasstrace.element.confidence",
|
|
14654
|
+
TAB_ID: "glasstrace.tab.id"
|
|
14655
|
+
};
|
|
14656
|
+
DEFAULT_CAPTURE_CONFIG = {
|
|
14657
|
+
requestBodies: false,
|
|
14658
|
+
queryParamValues: false,
|
|
14659
|
+
envVarValues: false,
|
|
14660
|
+
fullConsoleOutput: false,
|
|
14661
|
+
importGraph: false,
|
|
14662
|
+
consoleErrors: false,
|
|
14663
|
+
errorResponseBodies: false
|
|
14664
|
+
};
|
|
14665
|
+
MAX_SOURCE_MAP_FILE_PATH_LENGTH = 512;
|
|
14666
|
+
MAX_SOURCE_MAP_FILE_SIZE = 50 * 1024 * 1024;
|
|
14667
|
+
MAX_SOURCE_MAP_FILE_COUNT = 100;
|
|
14668
|
+
MAX_PRESIGNED_CLIENT_TOKEN_LENGTH = 2048;
|
|
14669
|
+
MAX_PRESIGNED_PATHNAME_LENGTH = 1024;
|
|
14617
14670
|
ImportGraphPayloadSchema = external_exports.object({
|
|
14618
14671
|
buildHash: BuildHashSchema,
|
|
14619
14672
|
graph: external_exports.record(external_exports.string(), external_exports.array(external_exports.string()))
|
|
@@ -14660,35 +14713,68 @@ var init_dist = __esm({
|
|
|
14660
14713
|
buildHash: BuildHashSchema,
|
|
14661
14714
|
files: external_exports.array(
|
|
14662
14715
|
external_exports.object({
|
|
14663
|
-
filePath: external_exports.string().min(1)
|
|
14664
|
-
|
|
14716
|
+
filePath: external_exports.string().min(1).max(
|
|
14717
|
+
MAX_SOURCE_MAP_FILE_PATH_LENGTH,
|
|
14718
|
+
`filePath length exceeds maximum of ${MAX_SOURCE_MAP_FILE_PATH_LENGTH} characters`
|
|
14719
|
+
),
|
|
14720
|
+
sizeBytes: external_exports.number().int().positive().max(
|
|
14721
|
+
MAX_SOURCE_MAP_FILE_SIZE,
|
|
14722
|
+
`sizeBytes exceeds maximum of ${MAX_SOURCE_MAP_FILE_SIZE} bytes (${MAX_SOURCE_MAP_FILE_SIZE / (1024 * 1024)} MiB)`
|
|
14723
|
+
)
|
|
14665
14724
|
})
|
|
14666
|
-
).min(1).max(
|
|
14725
|
+
).min(1).max(
|
|
14726
|
+
MAX_SOURCE_MAP_FILE_COUNT,
|
|
14727
|
+
`files array exceeds maximum of ${MAX_SOURCE_MAP_FILE_COUNT} entries`
|
|
14728
|
+
)
|
|
14667
14729
|
});
|
|
14668
14730
|
PresignedUploadResponseSchema = external_exports.object({
|
|
14669
14731
|
uploadId: external_exports.string().uuid(),
|
|
14670
14732
|
expiresAt: external_exports.number().int().nonnegative(),
|
|
14671
14733
|
files: external_exports.array(
|
|
14672
14734
|
external_exports.object({
|
|
14673
|
-
filePath: external_exports.string().min(1)
|
|
14674
|
-
|
|
14675
|
-
|
|
14676
|
-
|
|
14735
|
+
filePath: external_exports.string().min(1).max(
|
|
14736
|
+
MAX_SOURCE_MAP_FILE_PATH_LENGTH,
|
|
14737
|
+
`filePath length exceeds maximum of ${MAX_SOURCE_MAP_FILE_PATH_LENGTH} characters`
|
|
14738
|
+
),
|
|
14739
|
+
clientToken: external_exports.string().min(1).max(
|
|
14740
|
+
MAX_PRESIGNED_CLIENT_TOKEN_LENGTH,
|
|
14741
|
+
`clientToken length exceeds maximum of ${MAX_PRESIGNED_CLIENT_TOKEN_LENGTH} characters`
|
|
14742
|
+
),
|
|
14743
|
+
pathname: external_exports.string().min(1).max(
|
|
14744
|
+
MAX_PRESIGNED_PATHNAME_LENGTH,
|
|
14745
|
+
`pathname length exceeds maximum of ${MAX_PRESIGNED_PATHNAME_LENGTH} characters`
|
|
14746
|
+
),
|
|
14747
|
+
maxBytes: external_exports.number().int().positive().max(
|
|
14748
|
+
MAX_SOURCE_MAP_FILE_SIZE,
|
|
14749
|
+
`maxBytes exceeds maximum of ${MAX_SOURCE_MAP_FILE_SIZE} bytes (${MAX_SOURCE_MAP_FILE_SIZE / (1024 * 1024)} MiB)`
|
|
14750
|
+
),
|
|
14677
14751
|
/** Vercel Blob access mode — explicit in the contract per DISC-756. */
|
|
14678
14752
|
access: external_exports.enum(["public"])
|
|
14679
14753
|
})
|
|
14680
|
-
).min(1).max(
|
|
14754
|
+
).min(1).max(
|
|
14755
|
+
MAX_SOURCE_MAP_FILE_COUNT,
|
|
14756
|
+
`files array exceeds maximum of ${MAX_SOURCE_MAP_FILE_COUNT} entries`
|
|
14757
|
+
)
|
|
14681
14758
|
});
|
|
14682
14759
|
SourceMapManifestRequestSchema = external_exports.object({
|
|
14683
14760
|
uploadId: external_exports.string().uuid(),
|
|
14684
14761
|
buildHash: BuildHashSchema,
|
|
14685
14762
|
files: external_exports.array(
|
|
14686
14763
|
external_exports.object({
|
|
14687
|
-
filePath: external_exports.string().min(1)
|
|
14688
|
-
|
|
14764
|
+
filePath: external_exports.string().min(1).max(
|
|
14765
|
+
MAX_SOURCE_MAP_FILE_PATH_LENGTH,
|
|
14766
|
+
`filePath length exceeds maximum of ${MAX_SOURCE_MAP_FILE_PATH_LENGTH} characters`
|
|
14767
|
+
),
|
|
14768
|
+
sizeBytes: external_exports.number().int().positive().max(
|
|
14769
|
+
MAX_SOURCE_MAP_FILE_SIZE,
|
|
14770
|
+
`sizeBytes exceeds maximum of ${MAX_SOURCE_MAP_FILE_SIZE} bytes (${MAX_SOURCE_MAP_FILE_SIZE / (1024 * 1024)} MiB)`
|
|
14771
|
+
),
|
|
14689
14772
|
blobUrl: external_exports.string().url()
|
|
14690
14773
|
})
|
|
14691
|
-
).min(1).max(
|
|
14774
|
+
).min(1).max(
|
|
14775
|
+
MAX_SOURCE_MAP_FILE_COUNT,
|
|
14776
|
+
`files array exceeds maximum of ${MAX_SOURCE_MAP_FILE_COUNT} entries`
|
|
14777
|
+
)
|
|
14692
14778
|
});
|
|
14693
14779
|
SourceMapManifestResponseSchema = external_exports.object({
|
|
14694
14780
|
success: external_exports.literal(true),
|
|
@@ -14697,54 +14783,6 @@ var init_dist = __esm({
|
|
|
14697
14783
|
totalSizeBytes: external_exports.number().int().nonnegative(),
|
|
14698
14784
|
activatedAt: external_exports.number().int().positive()
|
|
14699
14785
|
});
|
|
14700
|
-
GLASSTRACE_ATTRIBUTE_NAMES = {
|
|
14701
|
-
// Server-side attributes
|
|
14702
|
-
TRACE_TYPE: "glasstrace.trace.type",
|
|
14703
|
-
SESSION_ID: "glasstrace.session.id",
|
|
14704
|
-
CORRELATION_ID: "glasstrace.correlation.id",
|
|
14705
|
-
ENVIRONMENT: "glasstrace.environment",
|
|
14706
|
-
ROUTE: "glasstrace.route",
|
|
14707
|
-
HTTP_METHOD: "glasstrace.http.method",
|
|
14708
|
-
HTTP_STATUS_CODE: "glasstrace.http.status_code",
|
|
14709
|
-
HTTP_DURATION_MS: "glasstrace.http.duration_ms",
|
|
14710
|
-
ERROR_MESSAGE: "glasstrace.error.message",
|
|
14711
|
-
ERROR_CODE: "glasstrace.error.code",
|
|
14712
|
-
ERROR_CATEGORY: "glasstrace.error.category",
|
|
14713
|
-
ERROR_FIELD: "glasstrace.error.field",
|
|
14714
|
-
ORM_PROVIDER: "glasstrace.orm.provider",
|
|
14715
|
-
ORM_MODEL: "glasstrace.orm.model",
|
|
14716
|
-
ORM_OPERATION: "glasstrace.orm.operation",
|
|
14717
|
-
ORM_DURATION_MS: "glasstrace.orm.duration_ms",
|
|
14718
|
-
FETCH_URL: "glasstrace.fetch.url",
|
|
14719
|
-
FETCH_METHOD: "glasstrace.fetch.method",
|
|
14720
|
-
FETCH_STATUS_CODE: "glasstrace.fetch.status_code",
|
|
14721
|
-
FETCH_DURATION_MS: "glasstrace.fetch.duration_ms",
|
|
14722
|
-
FETCH_TARGET: "glasstrace.fetch.target",
|
|
14723
|
-
ENV_REFERENCED: "glasstrace.env.referenced",
|
|
14724
|
-
BUILD_HASH: "glasstrace.build.hash",
|
|
14725
|
-
SOURCE_FILE: "glasstrace.source.file",
|
|
14726
|
-
SOURCE_LINE: "glasstrace.source.line",
|
|
14727
|
-
SOURCE_MAPPED: "glasstrace.source.mapped",
|
|
14728
|
-
TRPC_PROCEDURE: "glasstrace.trpc.procedure",
|
|
14729
|
-
ERROR_RESPONSE_BODY: "glasstrace.error.response_body",
|
|
14730
|
-
NEXT_ACTION_DETECTED: "glasstrace.next.action.detected",
|
|
14731
|
-
// Client-side attributes
|
|
14732
|
-
PLATFORM: "glasstrace.platform",
|
|
14733
|
-
GESTURE_TYPE: "glasstrace.gesture.type",
|
|
14734
|
-
TRIGGER_TYPE: "glasstrace.trigger.type",
|
|
14735
|
-
ELEMENT_FINGERPRINT: "glasstrace.element.fingerprint",
|
|
14736
|
-
ELEMENT_CONFIDENCE: "glasstrace.element.confidence",
|
|
14737
|
-
TAB_ID: "glasstrace.tab.id"
|
|
14738
|
-
};
|
|
14739
|
-
DEFAULT_CAPTURE_CONFIG = {
|
|
14740
|
-
requestBodies: false,
|
|
14741
|
-
queryParamValues: false,
|
|
14742
|
-
envVarValues: false,
|
|
14743
|
-
fullConsoleOutput: false,
|
|
14744
|
-
importGraph: false,
|
|
14745
|
-
consoleErrors: false,
|
|
14746
|
-
errorResponseBodies: false
|
|
14747
|
-
};
|
|
14748
14786
|
K = new Uint32Array([
|
|
14749
14787
|
1116352408,
|
|
14750
14788
|
1899447441,
|
|
@@ -18356,15 +18394,32 @@ function prepareErrorResponseBody(body) {
|
|
|
18356
18394
|
}
|
|
18357
18395
|
|
|
18358
18396
|
// src/build-info.ts
|
|
18397
|
+
init_console_capture();
|
|
18359
18398
|
var UNSET = "";
|
|
18399
|
+
var SHA_SHAPE = /^[0-9a-f]{7,64}$/i;
|
|
18400
|
+
function redactBuildHash(value) {
|
|
18401
|
+
const sanitize2 = (s) => s.replace(/[\x00-\x1F\x7F]/g, "?");
|
|
18402
|
+
if (value.length <= 12) return sanitize2(value.slice(0, 4)) + "...";
|
|
18403
|
+
return sanitize2(value.slice(0, 8)) + "..." + sanitize2(value.slice(-4));
|
|
18404
|
+
}
|
|
18360
18405
|
function readBuildHashFromEnv() {
|
|
18361
18406
|
const raw = process.env.GLASSTRACE_BUILD_HASH;
|
|
18362
18407
|
if (typeof raw !== "string") return UNSET;
|
|
18363
18408
|
const trimmed = raw.trim();
|
|
18364
|
-
|
|
18409
|
+
if (trimmed.length === 0) return UNSET;
|
|
18410
|
+
if (!SHA_SHAPE.test(trimmed)) {
|
|
18411
|
+
sdkLog(
|
|
18412
|
+
"warn",
|
|
18413
|
+
`[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.`
|
|
18414
|
+
);
|
|
18415
|
+
}
|
|
18416
|
+
return trimmed;
|
|
18365
18417
|
}
|
|
18366
|
-
var cachedBuildHash =
|
|
18418
|
+
var cachedBuildHash = null;
|
|
18367
18419
|
function getBuildHash() {
|
|
18420
|
+
if (cachedBuildHash === null) {
|
|
18421
|
+
cachedBuildHash = readBuildHashFromEnv();
|
|
18422
|
+
}
|
|
18368
18423
|
return cachedBuildHash === UNSET ? void 0 : cachedBuildHash;
|
|
18369
18424
|
}
|
|
18370
18425
|
|
|
@@ -21981,9 +22036,11 @@ This message will not appear once Glasstrace is added to your provider config.`
|
|
|
21981
22036
|
}
|
|
21982
22037
|
function emitGuidanceMessage() {
|
|
21983
22038
|
const isSentry = detectSentry();
|
|
22039
|
+
const isProduction = typeof process !== "undefined" && process.env?.NODE_ENV === "production";
|
|
22040
|
+
const level = isProduction ? "error" : "warn";
|
|
21984
22041
|
if (isSentry) {
|
|
21985
22042
|
sdkLog(
|
|
21986
|
-
|
|
22043
|
+
level,
|
|
21987
22044
|
`[glasstrace] An existing OTel TracerProvider is registered but Glasstrace could not auto-attach its span processor.
|
|
21988
22045
|
Add Glasstrace to your Sentry config:
|
|
21989
22046
|
|
|
@@ -21996,7 +22053,7 @@ Add Glasstrace to your Sentry config:
|
|
|
21996
22053
|
);
|
|
21997
22054
|
} else {
|
|
21998
22055
|
sdkLog(
|
|
21999
|
-
|
|
22056
|
+
level,
|
|
22000
22057
|
`[glasstrace] An existing OTel TracerProvider is registered but Glasstrace could not auto-attach its span processor.
|
|
22001
22058
|
Add Glasstrace to your provider configuration:
|
|
22002
22059
|
|
|
@@ -22123,11 +22180,27 @@ async function runCoexistencePath(existingProvider, config2) {
|
|
|
22123
22180
|
setOtelState(OtelState.COEXISTENCE_FAILED);
|
|
22124
22181
|
emitLifecycleEvent("otel:configured", { state: OtelState.COEXISTENCE_FAILED, scenario: "C/F" });
|
|
22125
22182
|
emitLifecycleEvent("otel:injection_failed", { reason: "provider internals inaccessible" });
|
|
22183
|
+
emitLifecycleEvent("otel:failed", {
|
|
22184
|
+
category: "auto-attach-returned-null",
|
|
22185
|
+
message: "tryAutoAttachGlasstraceProcessor returned null \u2014 the existing OTel TracerProvider exposed no injection point. Spans are not reaching the Glasstrace exporter. Apply the manual createGlasstraceSpanProcessor() workaround documented in the SDK README.",
|
|
22186
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
22187
|
+
providerClass: readProviderClass(existingProvider)
|
|
22188
|
+
});
|
|
22126
22189
|
const coreState = getCoreState();
|
|
22127
22190
|
if (coreState === CoreState.ACTIVE || coreState === CoreState.KEY_RESOLVED) {
|
|
22128
22191
|
setCoreState(CoreState.ACTIVE_DEGRADED);
|
|
22129
22192
|
}
|
|
22130
22193
|
}
|
|
22194
|
+
function readProviderClass(tracerProvider) {
|
|
22195
|
+
try {
|
|
22196
|
+
const proxy = tracerProvider;
|
|
22197
|
+
const delegate = typeof proxy.getDelegate === "function" ? proxy.getDelegate() : tracerProvider;
|
|
22198
|
+
const name = delegate?.constructor?.name;
|
|
22199
|
+
return typeof name === "string" && name.length > 0 ? name : void 0;
|
|
22200
|
+
} catch {
|
|
22201
|
+
return void 0;
|
|
22202
|
+
}
|
|
22203
|
+
}
|
|
22131
22204
|
async function runRegistrationPath(config2, sessionManager) {
|
|
22132
22205
|
const exporterUrl = `${config2.endpoint}/v1/traces`;
|
|
22133
22206
|
const createOtlpExporter = (url2, headers) => new OTLPTraceExporter({ url: url2, headers });
|
|
@@ -22430,6 +22503,7 @@ init_console_capture();
|
|
|
22430
22503
|
var _projectRoot = null;
|
|
22431
22504
|
var _sdkVersion = "unknown";
|
|
22432
22505
|
var _lastScenario;
|
|
22506
|
+
var _lastError;
|
|
22433
22507
|
var _debounceTimer = null;
|
|
22434
22508
|
var _started = false;
|
|
22435
22509
|
function startRuntimeStateWriter(options) {
|
|
@@ -22452,6 +22526,10 @@ function startRuntimeStateWriter(options) {
|
|
|
22452
22526
|
_lastScenario = scenario;
|
|
22453
22527
|
debouncedWrite();
|
|
22454
22528
|
});
|
|
22529
|
+
onLifecycleEvent("otel:failed", (payload) => {
|
|
22530
|
+
_lastError = { ...payload };
|
|
22531
|
+
debouncedWrite();
|
|
22532
|
+
});
|
|
22455
22533
|
onLifecycleEvent("auth:key_resolved", () => debouncedWrite());
|
|
22456
22534
|
onLifecycleEvent("auth:claim_started", () => debouncedWrite());
|
|
22457
22535
|
onLifecycleEvent("auth:claim_completed", () => debouncedWrite());
|
|
@@ -22479,6 +22557,9 @@ function writeStateNow() {
|
|
|
22479
22557
|
auth: { state: state.auth },
|
|
22480
22558
|
otel: { state: state.otel, scenario: _lastScenario }
|
|
22481
22559
|
};
|
|
22560
|
+
if (_lastError) {
|
|
22561
|
+
runtimeState.lastError = _lastError;
|
|
22562
|
+
}
|
|
22482
22563
|
const dir = (0, import_node_path.join)(_projectRoot, ".glasstrace");
|
|
22483
22564
|
const filePath = (0, import_node_path.join)(dir, "runtime-state.json");
|
|
22484
22565
|
(0, import_node_fs.mkdirSync)(dir, { recursive: true, mode: 448 });
|
|
@@ -22523,7 +22604,7 @@ function registerGlasstrace(options) {
|
|
|
22523
22604
|
setCoreState(CoreState.REGISTERING);
|
|
22524
22605
|
startRuntimeStateWriter({
|
|
22525
22606
|
projectRoot: process.cwd(),
|
|
22526
|
-
sdkVersion: "1.3.
|
|
22607
|
+
sdkVersion: "1.3.4"
|
|
22527
22608
|
});
|
|
22528
22609
|
const config2 = resolveConfig(options);
|
|
22529
22610
|
if (config2.verbose) {
|
|
@@ -22689,8 +22770,8 @@ async function backgroundInit(config2, anonKeyForInit, generation) {
|
|
|
22689
22770
|
if (config2.verbose) {
|
|
22690
22771
|
console.info("[glasstrace] Background init firing.");
|
|
22691
22772
|
}
|
|
22692
|
-
const healthReport = collectHealthReport("1.3.
|
|
22693
|
-
const initResult = await performInit(config2, anonKeyForInit, "1.3.
|
|
22773
|
+
const healthReport = collectHealthReport("1.3.4");
|
|
22774
|
+
const initResult = await performInit(config2, anonKeyForInit, "1.3.4", healthReport);
|
|
22694
22775
|
if (generation !== registrationGeneration) return;
|
|
22695
22776
|
const currentState = getCoreState();
|
|
22696
22777
|
if (currentState === CoreState.SHUTTING_DOWN || currentState === CoreState.SHUTDOWN) {
|
|
@@ -22713,7 +22794,7 @@ async function backgroundInit(config2, anonKeyForInit, generation) {
|
|
|
22713
22794
|
}
|
|
22714
22795
|
maybeInstallConsoleCapture();
|
|
22715
22796
|
if (didLastInitSucceed()) {
|
|
22716
|
-
startHeartbeat(config2, anonKeyForInit, "1.3.
|
|
22797
|
+
startHeartbeat(config2, anonKeyForInit, "1.3.4", generation, (newApiKey, accountId) => {
|
|
22717
22798
|
setAuthState(AuthState.CLAIMING);
|
|
22718
22799
|
emitLifecycleEvent("auth:claim_started", { accountId });
|
|
22719
22800
|
setResolvedApiKey(newApiKey);
|
|
@@ -22875,8 +22956,8 @@ init_dist();
|
|
|
22875
22956
|
init_error_nudge();
|
|
22876
22957
|
|
|
22877
22958
|
// src/stack-frame.ts
|
|
22878
|
-
var PAREN_FRAME = /^\s*at\s+(?:[^()]+\s+)?\(([^()\s]+):(\d+):(\d+)\)\s*$/;
|
|
22879
|
-
var BARE_FRAME = /^\s*at\s+(?:async\s+)?([^()\s]+):(\d+):(\d+)\s*$/;
|
|
22959
|
+
var PAREN_FRAME = /^\s*at\s+(?!eval\s+\(eval\s+at\b)(?:[^()]+\s+)?\(([^()\s]+(?:\([A-Za-z0-9_.-]+\)[^()\s]*)*):(\d+):(\d+)\)\s*$/;
|
|
22960
|
+
var BARE_FRAME = /^\s*at\s+(?:async\s+)?([^()\s]+(?:\([A-Za-z0-9_.-]+\)[^()\s]*)*):(\d+):(\d+)\s*$/;
|
|
22880
22961
|
var INTERNAL_FRAME_PATTERNS = [
|
|
22881
22962
|
/^node:/,
|
|
22882
22963
|
/^node:internal\//,
|