ray-logger-core 0.0.1

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 (65) hide show
  1. package/collectors/console.d.ts +9 -0
  2. package/collectors/console.d.ts.map +1 -0
  3. package/collectors/console.js +51 -0
  4. package/collectors/console.js.map +1 -0
  5. package/collectors/cookie.d.ts +9 -0
  6. package/collectors/cookie.d.ts.map +1 -0
  7. package/collectors/cookie.js +162 -0
  8. package/collectors/cookie.js.map +1 -0
  9. package/collectors/error.d.ts +8 -0
  10. package/collectors/error.d.ts.map +1 -0
  11. package/collectors/error.js +47 -0
  12. package/collectors/error.js.map +1 -0
  13. package/collectors/network/fetch.d.ts +9 -0
  14. package/collectors/network/fetch.d.ts.map +1 -0
  15. package/collectors/network/fetch.js +182 -0
  16. package/collectors/network/fetch.js.map +1 -0
  17. package/collectors/network/xhr.d.ts +8 -0
  18. package/collectors/network/xhr.d.ts.map +1 -0
  19. package/collectors/network/xhr.js +187 -0
  20. package/collectors/network/xhr.js.map +1 -0
  21. package/collectors/rrweb.d.ts +8 -0
  22. package/collectors/rrweb.d.ts.map +1 -0
  23. package/collectors/rrweb.js +41 -0
  24. package/collectors/rrweb.js.map +1 -0
  25. package/collectors/storage.d.ts +9 -0
  26. package/collectors/storage.d.ts.map +1 -0
  27. package/collectors/storage.js +139 -0
  28. package/collectors/storage.js.map +1 -0
  29. package/collectors/types.d.ts +2 -0
  30. package/collectors/types.d.ts.map +1 -0
  31. package/collectors/types.js +2 -0
  32. package/collectors/types.js.map +1 -0
  33. package/controller.d.ts +22 -0
  34. package/controller.d.ts.map +1 -0
  35. package/controller.js +218 -0
  36. package/controller.js.map +1 -0
  37. package/index.d.ts +10 -0
  38. package/index.d.ts.map +1 -0
  39. package/index.js +1559 -0
  40. package/index.js.map +1 -0
  41. package/package.json +20 -0
  42. package/session.d.ts +13 -0
  43. package/session.d.ts.map +1 -0
  44. package/session.js +77 -0
  45. package/session.js.map +1 -0
  46. package/storage/idb.d.ts +40 -0
  47. package/storage/idb.d.ts.map +1 -0
  48. package/storage/idb.js +182 -0
  49. package/storage/idb.js.map +1 -0
  50. package/timeline.d.ts +23 -0
  51. package/timeline.d.ts.map +1 -0
  52. package/timeline.js +64 -0
  53. package/timeline.js.map +1 -0
  54. package/types.d.ts +181 -0
  55. package/types.d.ts.map +1 -0
  56. package/types.js +28 -0
  57. package/types.js.map +1 -0
  58. package/utils/console-stack.d.ts +12 -0
  59. package/utils/console-stack.d.ts.map +1 -0
  60. package/utils/console-stack.js +141 -0
  61. package/utils/console-stack.js.map +1 -0
  62. package/utils/serialize.d.ts +4 -0
  63. package/utils/serialize.d.ts.map +1 -0
  64. package/utils/serialize.js +57 -0
  65. package/utils/serialize.js.map +1 -0
package/controller.js ADDED
@@ -0,0 +1,218 @@
1
+ import { installConsoleCollector } from './collectors/console';
2
+ import { installCookieCollector } from './collectors/cookie';
3
+ import { installErrorCollector } from './collectors/error';
4
+ import { installFetchCollector } from './collectors/network/fetch';
5
+ import { installXhrCollector } from './collectors/network/xhr';
6
+ import { installRrwebCollector } from './collectors/rrweb';
7
+ import { installStorageCollector } from './collectors/storage';
8
+ import { IndexedDbEventStore } from './storage/idb';
9
+ import { resolveSession } from './session';
10
+ import { Timeline, compareTimelineEvents, hasRrwebFullSnapshot } from './timeline';
11
+ import { DEFAULT_MEMORY_FLUSH_THRESHOLD_BYTES, SESSION_EXPORT_SCHEMA_VERSION, } from './types';
12
+ export class WebLoggerCoreController {
13
+ sessionId;
14
+ persistentSessionId;
15
+ namespaceKey;
16
+ config;
17
+ #timeline;
18
+ #store;
19
+ #flushPromise;
20
+ #estimatedBufferBytes = 0;
21
+ #destroyed = false;
22
+ #now;
23
+ #sessionState;
24
+ #readyPromise;
25
+ #collectorDisposers = [];
26
+ constructor(options = {}) {
27
+ this.sessionId = options.sessionId ?? createSessionId();
28
+ this.#sessionState = resolveSession({
29
+ sessionId: this.sessionId,
30
+ persistentSessionId: options.persistentSessionId,
31
+ sessionStorageKey: options.sessionStorageKey,
32
+ });
33
+ this.persistentSessionId = this.#sessionState.persistentSessionId;
34
+ this.namespaceKey = this.#sessionState.namespaceKey;
35
+ this.#now = options.now ?? Date.now;
36
+ this.config = {
37
+ ...options,
38
+ memoryFlushThresholdBytes: options.memoryFlushThresholdBytes ?? DEFAULT_MEMORY_FLUSH_THRESHOLD_BYTES,
39
+ };
40
+ this.#timeline = new Timeline({
41
+ sessionId: this.sessionId,
42
+ now: this.#now,
43
+ initialSeq: this.#sessionState.initialSeq,
44
+ });
45
+ if (IndexedDbEventStore.isSupported()) {
46
+ this.#store = new IndexedDbEventStore({
47
+ namespaceKey: this.namespaceKey,
48
+ now: this.#now,
49
+ });
50
+ }
51
+ this.#readyPromise = this.#hydrateSeqFromIdb();
52
+ this.#collectorDisposers = [
53
+ installConsoleCollector({
54
+ record: (event) => this.record(event),
55
+ recordConsoleCallSite: options.recordConsoleCallSite !== false,
56
+ }),
57
+ installErrorCollector({ record: (event) => this.record(event) }),
58
+ installFetchCollector({ config: this.config, record: (event) => this.record(event) }),
59
+ installXhrCollector({ config: this.config, record: (event) => this.record(event) }),
60
+ installStorageCollector({ config: this.config, record: (event) => this.record(event) }),
61
+ installCookieCollector({ config: this.config, record: (event) => this.record(event) }),
62
+ installRrwebCollector({
63
+ record: (event) => this.record(event),
64
+ checkoutEveryNms: this.config.rrwebCheckoutEveryNms,
65
+ }),
66
+ ];
67
+ }
68
+ record(event) {
69
+ this.#assertActive();
70
+ const recorded = this.#timeline.append(event);
71
+ this.#sessionState.updateLastSeq(recorded.seq);
72
+ this.#estimatedBufferBytes += estimateEventBytes(recorded);
73
+ if (this.#estimatedBufferBytes >= this.config.memoryFlushThresholdBytes) {
74
+ void this.flushToIdb().catch(() => {
75
+ // Export still includes memory events if background persistence fails.
76
+ });
77
+ }
78
+ return recorded;
79
+ }
80
+ async flushToIdb() {
81
+ this.#assertActive();
82
+ if (!this.#store) {
83
+ return;
84
+ }
85
+ await this.#waitUntilReady();
86
+ if (this.#flushPromise) {
87
+ return this.#flushPromise;
88
+ }
89
+ const pendingEvents = this.#timeline.pending();
90
+ if (pendingEvents.length === 0) {
91
+ return;
92
+ }
93
+ this.#flushPromise = this.#store
94
+ .appendChunk(pendingEvents)
95
+ .then(() => {
96
+ this.#timeline.clear(pendingEvents);
97
+ this.#estimatedBufferBytes = estimateEventsBytes(this.#timeline.pending());
98
+ })
99
+ .finally(() => {
100
+ this.#flushPromise = undefined;
101
+ });
102
+ return this.#flushPromise;
103
+ }
104
+ async exportFull() {
105
+ this.#assertActive();
106
+ await this.#waitUntilReady();
107
+ await this.#waitForFlush();
108
+ const persistedEvents = await this.#readPersistedEvents();
109
+ return this.#createExport('full', mergeEvents(persistedEvents, this.#timeline.all()));
110
+ }
111
+ async exportSince(sinceMs) {
112
+ this.#assertActive();
113
+ const untilMs = this.#now();
114
+ await this.#waitUntilReady();
115
+ await this.#waitForFlush();
116
+ const persistedEvents = await this.#readPersistedEvents({ sinceMs, untilMs });
117
+ const memoryEvents = this.#timeline.since(sinceMs, untilMs);
118
+ const windowEvents = mergeEvents(persistedEvents, memoryEvents);
119
+ const rrwebAnchor = hasRrwebFullSnapshot(windowEvents)
120
+ ? undefined
121
+ : await this.#readLatestRrwebFullSnapshotBefore(sinceMs);
122
+ const events = rrwebAnchor ? mergeEvents([rrwebAnchor], windowEvents) : windowEvents;
123
+ const includesRrwebBaseline = hasRrwebFullSnapshot(events);
124
+ return this.#createExport('since', events, {
125
+ sinceMs,
126
+ rrwebAnchorSeq: rrwebAnchor?.seq,
127
+ includesRrwebBaseline,
128
+ replayableStandalone: includesRrwebBaseline,
129
+ });
130
+ }
131
+ destroy() {
132
+ for (const dispose of this.#collectorDisposers.splice(0)) {
133
+ dispose();
134
+ }
135
+ this.#timeline.clear();
136
+ this.#destroyed = true;
137
+ }
138
+ #createExport(kind, events, exportMeta = {}) {
139
+ return {
140
+ schemaVersion: SESSION_EXPORT_SCHEMA_VERSION,
141
+ sessionId: this.sessionId,
142
+ ...(this.persistentSessionId ? { persistentSessionId: this.persistentSessionId } : {}),
143
+ exportedAt: new Date(this.#now()).toISOString(),
144
+ export: { kind, ...exportMeta },
145
+ events,
146
+ };
147
+ }
148
+ #assertActive() {
149
+ if (this.#destroyed) {
150
+ throw new Error('WebLoggerController has been destroyed.');
151
+ }
152
+ }
153
+ async #waitForFlush() {
154
+ if (this.#flushPromise) {
155
+ await this.#flushPromise;
156
+ }
157
+ }
158
+ async #waitUntilReady() {
159
+ await this.#readyPromise;
160
+ }
161
+ async #hydrateSeqFromIdb() {
162
+ if (!this.#store) {
163
+ return;
164
+ }
165
+ try {
166
+ const meta = await this.#store.readMeta();
167
+ if (!meta) {
168
+ return;
169
+ }
170
+ const nextSeq = meta.lastSeq + 1;
171
+ this.#timeline.ensureNextSeqAtLeast(nextSeq);
172
+ this.#sessionState.updateLastSeq(meta.lastSeq);
173
+ }
174
+ catch {
175
+ // IDB 元数据校准失败不阻断当前运行期采集;导出仍会包含内存事件。
176
+ }
177
+ }
178
+ async #readPersistedEvents(options = {}) {
179
+ if (!this.#store) {
180
+ return [];
181
+ }
182
+ return this.#store.readEvents(options);
183
+ }
184
+ async #readLatestRrwebFullSnapshotBefore(beforeMs) {
185
+ const anchors = [
186
+ await this.#store?.readLatestRrwebFullSnapshotBefore(beforeMs),
187
+ this.#timeline.latestRrwebFullSnapshotBefore(beforeMs),
188
+ ].filter((event) => event !== undefined);
189
+ return anchors.sort(compareTimelineEvents).at(-1);
190
+ }
191
+ }
192
+ export function initWebLogger(options = {}) {
193
+ return new WebLoggerCoreController(options);
194
+ }
195
+ export { WebLoggerCoreController as InMemoryWebLoggerController };
196
+ function createSessionId() {
197
+ if (globalThis.crypto?.randomUUID) {
198
+ return globalThis.crypto.randomUUID();
199
+ }
200
+ return `session-${Date.now()}-${Math.random().toString(36).slice(2)}`;
201
+ }
202
+ function estimateEventBytes(event) {
203
+ return JSON.stringify(event).length * 2;
204
+ }
205
+ function estimateEventsBytes(events) {
206
+ return events.reduce((total, event) => total + estimateEventBytes(event), 0);
207
+ }
208
+ function mergeEvents(persistedEvents, memoryEvents) {
209
+ const bySeq = new Map();
210
+ for (const event of persistedEvents) {
211
+ bySeq.set(event.seq, event);
212
+ }
213
+ for (const event of memoryEvents) {
214
+ bySeq.set(event.seq, event);
215
+ }
216
+ return [...bySeq.values()].sort(compareTimelineEvents);
217
+ }
218
+ //# sourceMappingURL=controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ export { InMemoryWebLoggerController, WebLoggerCoreController, initWebLogger } from './controller';
2
+ export type { InitWebLoggerOptions } from './controller';
3
+ export { EVENT_CHUNKS_STORE, IDB_VERSION, IndexedDbEventStore, SESSION_META_STORE, } from './storage/idb';
4
+ export type { EventChunkRecord, SessionMetaRecord } from './storage/idb';
5
+ export { resolveSession } from './session';
6
+ export type { ResolveSessionOptions, SessionState } from './session';
7
+ export { Timeline, compareTimelineEvents } from './timeline';
8
+ export { CONSOLE_CAPTURE_METHODS, DEFAULT_MEMORY_FLUSH_THRESHOLD_BYTES, DEFAULT_INDEXED_DB_NAME, DEFAULT_RRWEB_CHECKOUT_EVERY_NMS, DEFAULT_SESSION_STORAGE_KEY, PACKAGE_NAME, SESSION_EXPORT_SCHEMA_VERSION, } from './types';
9
+ export type { BaseWebLoggerEvent, ConsoleCaptureMethod, ConsolePayload, ConsoleStackFrame, CookieSnapshotItem, CookieSnapshotSkippedItem, CookiePayload, ErrorPayload, JsonPrimitive, JsonValue, NetworkPayload, NetworkPayloadFailed, NetworkPayloadSuccess, NewWebLoggerEvent, RrwebEvent, RrwebPayload, SerializedValue, SessionExport, StorageSnapshotSkippedItem, StoragePayload, WebLoggerConfig, WebLoggerController, WebLoggerEvent, } from './types';
10
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACnG,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EACL,uBAAuB,EACvB,oCAAoC,EACpC,uBAAuB,EACvB,gCAAgC,EAChC,2BAA2B,EAC3B,YAAY,EACZ,6BAA6B,GAC9B,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,0BAA0B,EAC1B,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,cAAc,GACf,MAAM,SAAS,CAAC"}