@fixback/sdk-core 0.2.0 → 0.3.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.
Files changed (68) hide show
  1. package/README.md +28 -9
  2. package/{src/annotation.ts → dist/annotation.d.ts} +36 -47
  3. package/dist/anonymous-id.d.ts +23 -0
  4. package/dist/anonymous-id.js +39 -0
  5. package/dist/anonymous-id.js.map +1 -0
  6. package/dist/auto-capture.d.ts +129 -0
  7. package/dist/auto-capture.js +210 -0
  8. package/dist/auto-capture.js.map +1 -0
  9. package/{src/backoff.ts → dist/backoff.d.ts} +17 -52
  10. package/dist/boot.d.ts +148 -0
  11. package/dist/boot.js +113 -0
  12. package/dist/boot.js.map +1 -0
  13. package/dist/breadcrumb.d.ts +133 -0
  14. package/dist/connect.d.ts +110 -0
  15. package/dist/connect.js +147 -0
  16. package/dist/connect.js.map +1 -0
  17. package/dist/env.d.ts +37 -0
  18. package/dist/env.js +83 -0
  19. package/dist/env.js.map +1 -0
  20. package/dist/fingerprint.d.ts +39 -0
  21. package/dist/fingerprint.js +10 -15
  22. package/dist/fingerprint.js.map +1 -1
  23. package/dist/http.d.ts +51 -0
  24. package/dist/http.js +42 -0
  25. package/dist/http.js.map +1 -0
  26. package/dist/index.d.ts +28 -0
  27. package/dist/index.js +115 -3
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.mjs +1057 -0
  30. package/dist/index.mjs.map +7 -0
  31. package/dist/options.d.ts +82 -0
  32. package/dist/options.js +22 -0
  33. package/dist/options.js.map +1 -0
  34. package/dist/release.d.ts +19 -0
  35. package/dist/release.js +36 -0
  36. package/dist/release.js.map +1 -0
  37. package/dist/scrub.d.ts +62 -0
  38. package/dist/stack.d.ts +51 -0
  39. package/dist/stack.js +97 -0
  40. package/dist/stack.js.map +1 -0
  41. package/dist/trace/buffer.d.ts +121 -0
  42. package/dist/trace/buffer.js +230 -0
  43. package/dist/trace/buffer.js.map +1 -0
  44. package/dist/trace/console-args.d.ts +60 -0
  45. package/dist/trace/console-args.js +189 -0
  46. package/dist/trace/console-args.js.map +1 -0
  47. package/dist/trace/console.d.ts +42 -0
  48. package/dist/trace/console.js +71 -0
  49. package/dist/trace/console.js.map +1 -0
  50. package/dist/trace/crumbs.d.ts +88 -0
  51. package/dist/trace/crumbs.js +164 -0
  52. package/dist/trace/crumbs.js.map +1 -0
  53. package/dist/trace/source.d.ts +30 -0
  54. package/dist/trace/source.js +59 -0
  55. package/dist/trace/source.js.map +1 -0
  56. package/dist/version.d.ts +13 -0
  57. package/dist/version.js +17 -0
  58. package/dist/version.js.map +1 -0
  59. package/dist/wire.d.ts +101 -0
  60. package/package.json +12 -8
  61. package/src/backoff.test.ts +0 -94
  62. package/src/breadcrumb.ts +0 -169
  63. package/src/fingerprint.test.ts +0 -96
  64. package/src/fingerprint.ts +0 -112
  65. package/src/index.ts +0 -63
  66. package/src/scrub.test.ts +0 -215
  67. package/src/scrub.ts +0 -226
  68. package/src/wire.ts +0 -116
package/dist/index.js CHANGED
@@ -1,17 +1,28 @@
1
1
  "use strict";
2
2
  /**
3
3
  * `@fixback/sdk-core` — the runtime-agnostic core shared by the Fixback capture
4
- * SDKs (ADR-0028). Pure fingerprinting, scrubbing, and backoff logic plus the
5
- * shared ingest wire shapes no DOM, no Node built-ins, no rrweb.
4
+ * SDKs (ADR-0028). Fingerprinting, stack parsing, scrubbing, backoff, the trace
5
+ * buffer and its crumb builders, the automatic-capture state machine, the ingest
6
+ * boot contract, and the shared wire shapes — with no DOM, no Node built-ins, and
7
+ * no rrweb. Every runtime touchpoint is either injected or probed off `globalThis`.
6
8
  */
7
9
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.parseRetryAfter = exports.DEFAULT_RETRY_AFTER_SECONDS = exports.AutoReportBackoff = exports.scrubUrl = exports.runBeforeSend = exports.redactPii = exports.applyDefaultScrub = exports.normalize = exports.hashString = exports.extractTopFrames = exports.computeFingerprint = void 0;
10
+ exports.TokenBucket = exports.precedingIds = exports.DEFAULT_MAX_DISTINCT_AUTO = exports.DEFAULT_BURST_REFILL_MS = exports.DEFAULT_BURST_CAPACITY = exports.createAutoCapture = exports.CAUSED_BY_LIMIT = exports.asString = exports.DEFAULT_API_URL = exports.RELEASE_MAX_LENGTH = exports.normaliseRelease = exports.generateAnonymousId = exports.ANONYMOUS_ID_STORAGE_KEY = exports.revokeReporterSession = exports.reporterSessionStorageKey = exports.parseConnectMessage = exports.isConnectExchangeResponse = exports.exchangeConnectCode = exports.connectSignOutEndpoint = exports.connectExchangeEndpoint = exports.CONNECT_RETURN_PARAM = exports.CONNECT_MESSAGE_SOURCE = exports.buildConnectUrl = exports.requestBoot = exports.isFixbackApiRequest = exports.isBootAnswer = exports.feedbackEndpoint = exports.compactIdentity = exports.bootEndpoint = exports.safeHeader = exports.resolveFetch = exports.utf8ByteLength = exports.trivialBodySize = exports.serializedBytes = exports.nowMono = exports.parseRetryAfter = exports.DEFAULT_RETRY_AFTER_SECONDS = exports.AutoReportBackoff = exports.scrubUrl = exports.runBeforeSend = exports.redactPii = exports.applyDefaultScrub = exports.parseStackLine = exports.parseFrameLocation = exports.extractStructuredFrames = exports.normalize = exports.hashString = exports.extractTopFrames = exports.computeFingerprint = exports.SDK_CORE_VERSION = void 0;
11
+ exports.instrumentConsole = exports.sourceFromStack = exports.parseStackFrame = exports.CONSOLE_SOURCE_SKIP_FRAMES = exports.xhrCrumb = exports.parseContentLength = exports.outcomeFromStatus = exports.networkCrumb = exports.navigationCrumb = exports.MAX_URL_LENGTH = exports.fetchCrumb = exports.errorCrumb = exports.describeError = exports.contentTypeOf = exports.consoleCrumb = exports.toConsoleArg = exports.stringifyArg = exports.safeCloneValue = exports.MAX_MESSAGE_LENGTH = exports.MAX_CONSOLE_ARGS_BYTES = exports.MAX_ARG_STRING_LENGTH = exports.MAX_ARG_ITEMS = exports.MAX_ARG_DEPTH = exports.joinArgs = exports.describeErrorValue = exports.capLength = exports.capConsoleArgs = exports.trimConsoleStream = exports.streamOf = exports.SOURCE_CAPTURE_LEVELS = exports.PINNED_CONSOLE_LEVELS = exports.normalizeBudget = exports.isPinnedConsoleLevel = exports.DEFAULT_STREAM_BUDGETS = exports.DEFAULT_MAX_AGE_MS = exports.DEFAULT_CONSOLE_LEVELS = exports.createIdFactory = exports.createBreadcrumbBuffer = exports.capturesSource = void 0;
12
+ // The SDK core's own version, reported by consumers that surface it.
13
+ var version_1 = require("./version");
14
+ Object.defineProperty(exports, "SDK_CORE_VERSION", { enumerable: true, get: function () { return version_1.SDK_CORE_VERSION; } });
9
15
  // Fingerprint (ADR-0027) — the cross-surface grouping key.
10
16
  var fingerprint_1 = require("./fingerprint");
11
17
  Object.defineProperty(exports, "computeFingerprint", { enumerable: true, get: function () { return fingerprint_1.computeFingerprint; } });
12
18
  Object.defineProperty(exports, "extractTopFrames", { enumerable: true, get: function () { return fingerprint_1.extractTopFrames; } });
13
19
  Object.defineProperty(exports, "hashString", { enumerable: true, get: function () { return fingerprint_1.hashString; } });
14
20
  Object.defineProperty(exports, "normalize", { enumerable: true, get: function () { return fingerprint_1.normalize; } });
21
+ // Stack parsing — one tokenizer, one structured-frame extractor (#117, ADR-0024).
22
+ var stack_1 = require("./stack");
23
+ Object.defineProperty(exports, "extractStructuredFrames", { enumerable: true, get: function () { return stack_1.extractStructuredFrames; } });
24
+ Object.defineProperty(exports, "parseFrameLocation", { enumerable: true, get: function () { return stack_1.parseFrameLocation; } });
25
+ Object.defineProperty(exports, "parseStackLine", { enumerable: true, get: function () { return stack_1.parseStackLine; } });
15
26
  // Scrub choke point (spec 0003 §C).
16
27
  var scrub_1 = require("./scrub");
17
28
  Object.defineProperty(exports, "applyDefaultScrub", { enumerable: true, get: function () { return scrub_1.applyDefaultScrub; } });
@@ -23,4 +34,105 @@ var backoff_1 = require("./backoff");
23
34
  Object.defineProperty(exports, "AutoReportBackoff", { enumerable: true, get: function () { return backoff_1.AutoReportBackoff; } });
24
35
  Object.defineProperty(exports, "DEFAULT_RETRY_AFTER_SECONDS", { enumerable: true, get: function () { return backoff_1.DEFAULT_RETRY_AFTER_SECONDS; } });
25
36
  Object.defineProperty(exports, "parseRetryAfter", { enumerable: true, get: function () { return backoff_1.parseRetryAfter; } });
37
+ // Runtime probes — the high-res clock and the byte-measuring helpers.
38
+ var env_1 = require("./env");
39
+ Object.defineProperty(exports, "nowMono", { enumerable: true, get: function () { return env_1.nowMono; } });
40
+ Object.defineProperty(exports, "serializedBytes", { enumerable: true, get: function () { return env_1.serializedBytes; } });
41
+ Object.defineProperty(exports, "trivialBodySize", { enumerable: true, get: function () { return env_1.trivialBodySize; } });
42
+ Object.defineProperty(exports, "utf8ByteLength", { enumerable: true, get: function () { return env_1.utf8ByteLength; } });
43
+ // The structural HTTP surface every transport speaks.
44
+ var http_1 = require("./http");
45
+ Object.defineProperty(exports, "resolveFetch", { enumerable: true, get: function () { return http_1.resolveFetch; } });
46
+ Object.defineProperty(exports, "safeHeader", { enumerable: true, get: function () { return http_1.safeHeader; } });
47
+ // The ingest boot + feedback wire contract (spec 0003 §A; spec 0004 §A).
48
+ var boot_1 = require("./boot");
49
+ Object.defineProperty(exports, "bootEndpoint", { enumerable: true, get: function () { return boot_1.bootEndpoint; } });
50
+ Object.defineProperty(exports, "compactIdentity", { enumerable: true, get: function () { return boot_1.compactIdentity; } });
51
+ Object.defineProperty(exports, "feedbackEndpoint", { enumerable: true, get: function () { return boot_1.feedbackEndpoint; } });
52
+ Object.defineProperty(exports, "isBootAnswer", { enumerable: true, get: function () { return boot_1.isBootAnswer; } });
53
+ Object.defineProperty(exports, "isFixbackApiRequest", { enumerable: true, get: function () { return boot_1.isFixbackApiRequest; } });
54
+ Object.defineProperty(exports, "requestBoot", { enumerable: true, get: function () { return boot_1.requestBoot; } });
55
+ // The Connect round trip (ADR-0032) — one-time-code exchange, session token, chip.
56
+ var connect_1 = require("./connect");
57
+ Object.defineProperty(exports, "buildConnectUrl", { enumerable: true, get: function () { return connect_1.buildConnectUrl; } });
58
+ Object.defineProperty(exports, "CONNECT_MESSAGE_SOURCE", { enumerable: true, get: function () { return connect_1.CONNECT_MESSAGE_SOURCE; } });
59
+ Object.defineProperty(exports, "CONNECT_RETURN_PARAM", { enumerable: true, get: function () { return connect_1.CONNECT_RETURN_PARAM; } });
60
+ Object.defineProperty(exports, "connectExchangeEndpoint", { enumerable: true, get: function () { return connect_1.connectExchangeEndpoint; } });
61
+ Object.defineProperty(exports, "connectSignOutEndpoint", { enumerable: true, get: function () { return connect_1.connectSignOutEndpoint; } });
62
+ Object.defineProperty(exports, "exchangeConnectCode", { enumerable: true, get: function () { return connect_1.exchangeConnectCode; } });
63
+ Object.defineProperty(exports, "isConnectExchangeResponse", { enumerable: true, get: function () { return connect_1.isConnectExchangeResponse; } });
64
+ Object.defineProperty(exports, "parseConnectMessage", { enumerable: true, get: function () { return connect_1.parseConnectMessage; } });
65
+ Object.defineProperty(exports, "reporterSessionStorageKey", { enumerable: true, get: function () { return connect_1.reporterSessionStorageKey; } });
66
+ Object.defineProperty(exports, "revokeReporterSession", { enumerable: true, get: function () { return connect_1.revokeReporterSession; } });
67
+ // The Public Reporter's anonymous id — the key and generator (the storage binding
68
+ // stays per-runtime).
69
+ var anonymous_id_1 = require("./anonymous-id");
70
+ Object.defineProperty(exports, "ANONYMOUS_ID_STORAGE_KEY", { enumerable: true, get: function () { return anonymous_id_1.ANONYMOUS_ID_STORAGE_KEY; } });
71
+ Object.defineProperty(exports, "generateAnonymousId", { enumerable: true, get: function () { return anonymous_id_1.generateAnonymousId; } });
72
+ // Release validation (#117, ADR-0024) — shared by the SDKs, the CLI, and the plugins.
73
+ var release_1 = require("./release");
74
+ Object.defineProperty(exports, "normaliseRelease", { enumerable: true, get: function () { return release_1.normaliseRelease; } });
75
+ Object.defineProperty(exports, "RELEASE_MAX_LENGTH", { enumerable: true, get: function () { return release_1.RELEASE_MAX_LENGTH; } });
76
+ // The shared init vocabulary.
77
+ var options_1 = require("./options");
78
+ Object.defineProperty(exports, "DEFAULT_API_URL", { enumerable: true, get: function () { return options_1.DEFAULT_API_URL; } });
79
+ // Automatic error capture (spec 0003 §E, ADR-0011) — the shared state machine.
80
+ var auto_capture_1 = require("./auto-capture");
81
+ Object.defineProperty(exports, "asString", { enumerable: true, get: function () { return auto_capture_1.asString; } });
82
+ Object.defineProperty(exports, "CAUSED_BY_LIMIT", { enumerable: true, get: function () { return auto_capture_1.CAUSED_BY_LIMIT; } });
83
+ Object.defineProperty(exports, "createAutoCapture", { enumerable: true, get: function () { return auto_capture_1.createAutoCapture; } });
84
+ Object.defineProperty(exports, "DEFAULT_BURST_CAPACITY", { enumerable: true, get: function () { return auto_capture_1.DEFAULT_BURST_CAPACITY; } });
85
+ Object.defineProperty(exports, "DEFAULT_BURST_REFILL_MS", { enumerable: true, get: function () { return auto_capture_1.DEFAULT_BURST_REFILL_MS; } });
86
+ Object.defineProperty(exports, "DEFAULT_MAX_DISTINCT_AUTO", { enumerable: true, get: function () { return auto_capture_1.DEFAULT_MAX_DISTINCT_AUTO; } });
87
+ Object.defineProperty(exports, "precedingIds", { enumerable: true, get: function () { return auto_capture_1.precedingIds; } });
88
+ Object.defineProperty(exports, "TokenBucket", { enumerable: true, get: function () { return auto_capture_1.TokenBucket; } });
89
+ // The trace ring buffer (spec #122 §A/§B).
90
+ var buffer_1 = require("./trace/buffer");
91
+ Object.defineProperty(exports, "capturesSource", { enumerable: true, get: function () { return buffer_1.capturesSource; } });
92
+ Object.defineProperty(exports, "createBreadcrumbBuffer", { enumerable: true, get: function () { return buffer_1.createBreadcrumbBuffer; } });
93
+ Object.defineProperty(exports, "createIdFactory", { enumerable: true, get: function () { return buffer_1.createIdFactory; } });
94
+ Object.defineProperty(exports, "DEFAULT_CONSOLE_LEVELS", { enumerable: true, get: function () { return buffer_1.DEFAULT_CONSOLE_LEVELS; } });
95
+ Object.defineProperty(exports, "DEFAULT_MAX_AGE_MS", { enumerable: true, get: function () { return buffer_1.DEFAULT_MAX_AGE_MS; } });
96
+ Object.defineProperty(exports, "DEFAULT_STREAM_BUDGETS", { enumerable: true, get: function () { return buffer_1.DEFAULT_STREAM_BUDGETS; } });
97
+ Object.defineProperty(exports, "isPinnedConsoleLevel", { enumerable: true, get: function () { return buffer_1.isPinnedConsoleLevel; } });
98
+ Object.defineProperty(exports, "normalizeBudget", { enumerable: true, get: function () { return buffer_1.normalizeBudget; } });
99
+ Object.defineProperty(exports, "PINNED_CONSOLE_LEVELS", { enumerable: true, get: function () { return buffer_1.PINNED_CONSOLE_LEVELS; } });
100
+ Object.defineProperty(exports, "SOURCE_CAPTURE_LEVELS", { enumerable: true, get: function () { return buffer_1.SOURCE_CAPTURE_LEVELS; } });
101
+ Object.defineProperty(exports, "streamOf", { enumerable: true, get: function () { return buffer_1.streamOf; } });
102
+ Object.defineProperty(exports, "trimConsoleStream", { enumerable: true, get: function () { return buffer_1.trimConsoleStream; } });
103
+ // Structured console arguments (spec #122 §C).
104
+ var console_args_1 = require("./trace/console-args");
105
+ Object.defineProperty(exports, "capConsoleArgs", { enumerable: true, get: function () { return console_args_1.capConsoleArgs; } });
106
+ Object.defineProperty(exports, "capLength", { enumerable: true, get: function () { return console_args_1.capLength; } });
107
+ Object.defineProperty(exports, "describeErrorValue", { enumerable: true, get: function () { return console_args_1.describeErrorValue; } });
108
+ Object.defineProperty(exports, "joinArgs", { enumerable: true, get: function () { return console_args_1.joinArgs; } });
109
+ Object.defineProperty(exports, "MAX_ARG_DEPTH", { enumerable: true, get: function () { return console_args_1.MAX_ARG_DEPTH; } });
110
+ Object.defineProperty(exports, "MAX_ARG_ITEMS", { enumerable: true, get: function () { return console_args_1.MAX_ARG_ITEMS; } });
111
+ Object.defineProperty(exports, "MAX_ARG_STRING_LENGTH", { enumerable: true, get: function () { return console_args_1.MAX_ARG_STRING_LENGTH; } });
112
+ Object.defineProperty(exports, "MAX_CONSOLE_ARGS_BYTES", { enumerable: true, get: function () { return console_args_1.MAX_CONSOLE_ARGS_BYTES; } });
113
+ Object.defineProperty(exports, "MAX_MESSAGE_LENGTH", { enumerable: true, get: function () { return console_args_1.MAX_MESSAGE_LENGTH; } });
114
+ Object.defineProperty(exports, "safeCloneValue", { enumerable: true, get: function () { return console_args_1.safeCloneValue; } });
115
+ Object.defineProperty(exports, "stringifyArg", { enumerable: true, get: function () { return console_args_1.stringifyArg; } });
116
+ Object.defineProperty(exports, "toConsoleArg", { enumerable: true, get: function () { return console_args_1.toConsoleArg; } });
117
+ // The pure crumb builders (spec #122 §C/§D/§F).
118
+ var crumbs_1 = require("./trace/crumbs");
119
+ Object.defineProperty(exports, "consoleCrumb", { enumerable: true, get: function () { return crumbs_1.consoleCrumb; } });
120
+ Object.defineProperty(exports, "contentTypeOf", { enumerable: true, get: function () { return crumbs_1.contentTypeOf; } });
121
+ Object.defineProperty(exports, "describeError", { enumerable: true, get: function () { return crumbs_1.describeError; } });
122
+ Object.defineProperty(exports, "errorCrumb", { enumerable: true, get: function () { return crumbs_1.errorCrumb; } });
123
+ Object.defineProperty(exports, "fetchCrumb", { enumerable: true, get: function () { return crumbs_1.fetchCrumb; } });
124
+ Object.defineProperty(exports, "MAX_URL_LENGTH", { enumerable: true, get: function () { return crumbs_1.MAX_URL_LENGTH; } });
125
+ Object.defineProperty(exports, "navigationCrumb", { enumerable: true, get: function () { return crumbs_1.navigationCrumb; } });
126
+ Object.defineProperty(exports, "networkCrumb", { enumerable: true, get: function () { return crumbs_1.networkCrumb; } });
127
+ Object.defineProperty(exports, "outcomeFromStatus", { enumerable: true, get: function () { return crumbs_1.outcomeFromStatus; } });
128
+ Object.defineProperty(exports, "parseContentLength", { enumerable: true, get: function () { return crumbs_1.parseContentLength; } });
129
+ Object.defineProperty(exports, "xhrCrumb", { enumerable: true, get: function () { return crumbs_1.xhrCrumb; } });
130
+ // The console call site (spec #122 §C).
131
+ var source_1 = require("./trace/source");
132
+ Object.defineProperty(exports, "CONSOLE_SOURCE_SKIP_FRAMES", { enumerable: true, get: function () { return source_1.CONSOLE_SOURCE_SKIP_FRAMES; } });
133
+ Object.defineProperty(exports, "parseStackFrame", { enumerable: true, get: function () { return source_1.parseStackFrame; } });
134
+ Object.defineProperty(exports, "sourceFromStack", { enumerable: true, get: function () { return source_1.sourceFromStack; } });
135
+ // The console instrumentation — the one wrapper both capture SDKs install.
136
+ var console_1 = require("./trace/console");
137
+ Object.defineProperty(exports, "instrumentConsole", { enumerable: true, get: function () { return console_1.instrumentConsole; } });
26
138
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2DAA2D;AAC3D,6CAA4F;AAAnF,iHAAA,kBAAkB,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AAAE,yGAAA,UAAU,OAAA;AAAE,wGAAA,SAAS,OAAA;AAEpE,oCAAoC;AACpC,iCAOiB;AANf,0GAAA,iBAAiB,OAAA;AAGjB,kGAAA,SAAS,OAAA;AACT,sGAAA,aAAa,OAAA;AACb,iGAAA,QAAQ,OAAA;AAGV,oEAAoE;AACpE,qCAKmB;AAJjB,4GAAA,iBAAiB,OAAA;AAEjB,sHAAA,2BAA2B,OAAA;AAC3B,0GAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}