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
@@ -0,0 +1,187 @@
1
+ export function installXhrCollector(options) {
2
+ if (typeof globalThis.XMLHttpRequest === 'undefined') {
3
+ return noop;
4
+ }
5
+ const prototype = globalThis.XMLHttpRequest.prototype;
6
+ const originalOpen = prototype.open;
7
+ const originalSend = prototype.send;
8
+ const originalSetRequestHeader = prototype.setRequestHeader;
9
+ const states = new WeakMap();
10
+ prototype.open = function patchedOpen(method, url, async, username, password) {
11
+ states.set(this, {
12
+ method: method.toUpperCase(),
13
+ url: sanitizeUrl(String(url), options.config.disallowRecordSearches),
14
+ startedAt: 0,
15
+ recorded: false,
16
+ });
17
+ return originalOpen.call(this, method, url, async ?? true, username, password);
18
+ };
19
+ prototype.setRequestHeader = function patchedSetRequestHeader(name, value) {
20
+ const state = states.get(this);
21
+ if (state && options.config.enableRecordRequestHeaders !== false) {
22
+ const disallowed = new Set((options.config.disallowRecordRequestHeaders ?? []).map((header) => header.toLowerCase()));
23
+ if (!disallowed.has(name.toLowerCase())) {
24
+ state.requestHeaders ??= {};
25
+ state.requestHeaders[name] = value;
26
+ }
27
+ }
28
+ return originalSetRequestHeader.call(this, name, value);
29
+ };
30
+ prototype.send = function patchedSend(body) {
31
+ const state = states.get(this);
32
+ if (state) {
33
+ state.startedAt = Date.now();
34
+ const bodyInfo = requestBodyToString(body ?? null, options.config);
35
+ state.requestBody = bodyInfo.body;
36
+ state.bodySkippedReason = bodyInfo.bodySkippedReason;
37
+ const onError = () => {
38
+ state.failure = { message: 'XMLHttpRequest error', name: 'error' };
39
+ };
40
+ const onAbort = () => {
41
+ state.failure = { message: 'XMLHttpRequest aborted', name: 'abort' };
42
+ };
43
+ const onTimeout = () => {
44
+ state.failure = { message: 'XMLHttpRequest timeout', name: 'timeout' };
45
+ };
46
+ const onLoadEnd = () => {
47
+ recordXhr(options.record, this, state, options.config);
48
+ this.removeEventListener('error', onError);
49
+ this.removeEventListener('abort', onAbort);
50
+ this.removeEventListener('timeout', onTimeout);
51
+ this.removeEventListener('loadend', onLoadEnd);
52
+ };
53
+ this.addEventListener('error', onError);
54
+ this.addEventListener('abort', onAbort);
55
+ this.addEventListener('timeout', onTimeout);
56
+ this.addEventListener('loadend', onLoadEnd);
57
+ }
58
+ return originalSend.call(this, body ?? null);
59
+ };
60
+ return () => {
61
+ prototype.open = originalOpen;
62
+ prototype.send = originalSend;
63
+ prototype.setRequestHeader = originalSetRequestHeader;
64
+ };
65
+ }
66
+ function recordXhr(record, xhr, state, config) {
67
+ if (state.recorded) {
68
+ return;
69
+ }
70
+ state.recorded = true;
71
+ try {
72
+ if (state.failure) {
73
+ record({
74
+ type: 'network',
75
+ payload: {
76
+ outcome: 'failed',
77
+ url: state.url,
78
+ method: state.method,
79
+ durationMs: Date.now() - state.startedAt,
80
+ error: state.failure,
81
+ ...(state.bodySkippedReason ? { bodySkippedReason: state.bodySkippedReason } : {}),
82
+ },
83
+ });
84
+ return;
85
+ }
86
+ const responseBody = readXhrResponseBody(xhr, config);
87
+ const bodySkippedReason = state.bodySkippedReason ?? responseBody.bodySkippedReason;
88
+ record({
89
+ type: 'network',
90
+ payload: {
91
+ outcome: 'success',
92
+ url: state.url,
93
+ method: state.method,
94
+ status: xhr.status,
95
+ durationMs: Date.now() - state.startedAt,
96
+ ...(state.requestHeaders ? { requestHeaders: state.requestHeaders } : {}),
97
+ ...(config.enableRecordResponseHeaders === false
98
+ ? {}
99
+ : {
100
+ responseHeaders: parseResponseHeaders(xhr.getAllResponseHeaders(), config.disallowRecordResponseHeaders),
101
+ }),
102
+ ...(state.requestBody !== undefined ? { requestBody: state.requestBody } : {}),
103
+ ...(responseBody.body !== undefined ? { responseBody: responseBody.body } : {}),
104
+ ...(bodySkippedReason ? { bodySkippedReason } : {}),
105
+ },
106
+ });
107
+ }
108
+ catch {
109
+ // XHR 回调链不能因采集异常影响宿主监听器。
110
+ }
111
+ }
112
+ function sanitizeUrl(url, disallowSearches) {
113
+ if (!disallowSearches?.length) {
114
+ return url;
115
+ }
116
+ try {
117
+ const parsed = new URL(url, globalThis.location?.href);
118
+ for (const key of disallowSearches) {
119
+ parsed.searchParams.delete(key);
120
+ }
121
+ return parsed.toString();
122
+ }
123
+ catch {
124
+ return url;
125
+ }
126
+ }
127
+ function requestBodyToString(body, config) {
128
+ if (config.enableRecordRequestBody === false) {
129
+ return { bodySkippedReason: 'request-body-disabled' };
130
+ }
131
+ if (body === null) {
132
+ return { body: null };
133
+ }
134
+ if (typeof body === 'string') {
135
+ return { body };
136
+ }
137
+ if (body instanceof URLSearchParams) {
138
+ return { body: body.toString() };
139
+ }
140
+ if (body instanceof FormData) {
141
+ return { bodySkippedReason: 'request-body-form-data' };
142
+ }
143
+ if (body instanceof Blob) {
144
+ return { bodySkippedReason: 'request-body-blob' };
145
+ }
146
+ if (body instanceof ArrayBuffer || ArrayBuffer.isView(body)) {
147
+ return { bodySkippedReason: 'request-body-binary' };
148
+ }
149
+ return { bodySkippedReason: 'request-body-unknown' };
150
+ }
151
+ function readXhrResponseBody(xhr, config) {
152
+ if (config.enableRecordResponseBody === false) {
153
+ return { bodySkippedReason: 'response-body-disabled' };
154
+ }
155
+ if (xhr.responseType && xhr.responseType !== 'text') {
156
+ return { bodySkippedReason: `response-body-${xhr.responseType}` };
157
+ }
158
+ try {
159
+ return { body: xhr.responseText };
160
+ }
161
+ catch {
162
+ return { bodySkippedReason: 'response-body-unreadable' };
163
+ }
164
+ }
165
+ function parseResponseHeaders(rawHeaders, disallowHeaders) {
166
+ const disallowed = new Set((disallowHeaders ?? []).map((header) => header.toLowerCase()));
167
+ const result = {};
168
+ for (const line of rawHeaders.trim().split(/[\r\n]+/)) {
169
+ if (!line) {
170
+ continue;
171
+ }
172
+ const separatorIndex = line.indexOf(':');
173
+ if (separatorIndex <= 0) {
174
+ continue;
175
+ }
176
+ const key = line.slice(0, separatorIndex).trim();
177
+ const value = line.slice(separatorIndex + 1).trim();
178
+ if (!disallowed.has(key.toLowerCase())) {
179
+ result[key] = value;
180
+ }
181
+ }
182
+ return result;
183
+ }
184
+ function noop() {
185
+ // noop
186
+ }
187
+ //# sourceMappingURL=xhr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xhr.js","sourceRoot":"","sources":["../../../src/collectors/network/xhr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { NewWebLoggerEvent } from '../types';
2
+ import type { CollectorDispose } from './types';
3
+ export interface RrwebCollectorOptions {
4
+ record(event: NewWebLoggerEvent): void;
5
+ checkoutEveryNms?: number;
6
+ }
7
+ export declare function installRrwebCollector(options: RrwebCollectorOptions): CollectorDispose;
8
+ //# sourceMappingURL=rrweb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rrweb.d.ts","sourceRoot":"","sources":["../../src/collectors/rrweb.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAUD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,gBAAgB,CA6BtF"}
@@ -0,0 +1,41 @@
1
+ import { record as rrwebRecord } from 'rrweb';
2
+ import { DEFAULT_RRWEB_CHECKOUT_EVERY_NMS } from '../types';
3
+ export function installRrwebCollector(options) {
4
+ if (typeof window === 'undefined' || typeof document === 'undefined') {
5
+ return noop;
6
+ }
7
+ try {
8
+ const stop = rrwebRecord({
9
+ emit(event) {
10
+ options.record({
11
+ type: 'rrweb',
12
+ timestamp: event.timestamp,
13
+ payload: {
14
+ rrwebEvent: event,
15
+ },
16
+ });
17
+ },
18
+ recordCanvas: true,
19
+ sampling: {
20
+ canvas: 4,
21
+ media: 4,
22
+ },
23
+ collectFonts: true,
24
+ checkoutEveryNms: normalizeCheckoutEveryNms(options.checkoutEveryNms),
25
+ });
26
+ return stop ?? noop;
27
+ }
28
+ catch {
29
+ return noop;
30
+ }
31
+ }
32
+ function noop() {
33
+ // noop
34
+ }
35
+ function normalizeCheckoutEveryNms(checkoutEveryNms) {
36
+ if (checkoutEveryNms === undefined) {
37
+ return DEFAULT_RRWEB_CHECKOUT_EVERY_NMS;
38
+ }
39
+ return checkoutEveryNms > 0 ? checkoutEveryNms : undefined;
40
+ }
41
+ //# sourceMappingURL=rrweb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rrweb.js","sourceRoot":"","sources":["../../src/collectors/rrweb.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAiB5D,MAAM,UAAU,qBAAqB,CAAC,OAA8B;IAClE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAI,WAAsC,CAAC;YACnD,IAAI,CAAC,KAAK;gBACR,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,OAAO,EAAE;wBACP,UAAU,EAAE,KAAK;qBAClB;iBACF,CAAC,CAAC;YACL,CAAC;YACD,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE;gBACR,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,CAAC;aACT;YACD,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE,yBAAyB,CAAC,OAAO,CAAC,gBAAgB,CAAC;SACtE,CAAC,CAAC;QAEH,OAAO,IAAI,IAAI,IAAI,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,IAAI;IACX,OAAO;AACT,CAAC;AAED,SAAS,yBAAyB,CAAC,gBAAoC;IACrE,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IAED,OAAO,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type NewWebLoggerEvent, type WebLoggerConfig } from '../types';
2
+ import type { CollectorDispose } from './types';
3
+ export interface StorageCollectorOptions {
4
+ config: WebLoggerConfig;
5
+ record(event: NewWebLoggerEvent): void;
6
+ windowRef?: Window;
7
+ }
8
+ export declare function installStorageCollector(options: StorageCollectorOptions): CollectorDispose;
9
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/collectors/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAEtB,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,uBAAuB,GAAG,gBAAgB,CA0E1F"}
@@ -0,0 +1,139 @@
1
+ import { DEFAULT_SESSION_STORAGE_KEY, } from '../types';
2
+ export function installStorageCollector(options) {
3
+ const windowRef = options.windowRef ?? (typeof window !== 'undefined' ? window : undefined);
4
+ if (!windowRef || typeof globalThis.Storage === 'undefined') {
5
+ return noop;
6
+ }
7
+ const prototype = globalThis.Storage.prototype;
8
+ const originalSetItem = prototype.setItem;
9
+ const originalRemoveItem = prototype.removeItem;
10
+ const originalClear = prototype.clear;
11
+ prototype.setItem = function patchedSetItem(key, value) {
12
+ originalSetItem.call(this, key, value);
13
+ const area = resolveStorageArea(windowRef, this);
14
+ if (!area || shouldSkipStorageKey(key, options.config)) {
15
+ return;
16
+ }
17
+ options.record({
18
+ type: 'storage',
19
+ payload: {
20
+ area,
21
+ op: 'set',
22
+ key,
23
+ value: String(value),
24
+ },
25
+ });
26
+ };
27
+ prototype.removeItem = function patchedRemoveItem(key) {
28
+ originalRemoveItem.call(this, key);
29
+ const area = resolveStorageArea(windowRef, this);
30
+ if (!area || shouldSkipStorageKey(key, options.config)) {
31
+ return;
32
+ }
33
+ options.record({
34
+ type: 'storage',
35
+ payload: {
36
+ area,
37
+ op: 'remove',
38
+ key,
39
+ value: null,
40
+ },
41
+ });
42
+ };
43
+ prototype.clear = function patchedClear() {
44
+ originalClear.call(this);
45
+ const area = resolveStorageArea(windowRef, this);
46
+ if (!area) {
47
+ return;
48
+ }
49
+ options.record({
50
+ type: 'storage',
51
+ payload: {
52
+ area,
53
+ op: 'clear',
54
+ },
55
+ });
56
+ };
57
+ recordStorageSnapshot(options.record, windowRef, 'local', options.config);
58
+ recordStorageSnapshot(options.record, windowRef, 'session', options.config);
59
+ return () => {
60
+ prototype.setItem = originalSetItem;
61
+ prototype.removeItem = originalRemoveItem;
62
+ prototype.clear = originalClear;
63
+ };
64
+ }
65
+ function resolveStorageArea(windowRef, storage) {
66
+ try {
67
+ if (storage === windowRef.localStorage) {
68
+ return 'local';
69
+ }
70
+ if (storage === windowRef.sessionStorage) {
71
+ return 'session';
72
+ }
73
+ }
74
+ catch {
75
+ return undefined;
76
+ }
77
+ return undefined;
78
+ }
79
+ function recordStorageSnapshot(record, windowRef, area, config) {
80
+ const storage = getStorageArea(windowRef, area);
81
+ if (!storage) {
82
+ return;
83
+ }
84
+ const snapshot = readStorageSnapshot(storage, config);
85
+ if (Object.keys(snapshot.entries).length === 0 && snapshot.skipped.length === 0) {
86
+ return;
87
+ }
88
+ record({
89
+ type: 'storage',
90
+ payload: {
91
+ area,
92
+ op: 'snapshot',
93
+ entries: snapshot.entries,
94
+ ...(snapshot.skipped.length > 0 ? { skipped: snapshot.skipped } : {}),
95
+ },
96
+ });
97
+ }
98
+ function getStorageArea(windowRef, area) {
99
+ try {
100
+ return area === 'local' ? windowRef.localStorage : windowRef.sessionStorage;
101
+ }
102
+ catch {
103
+ return undefined;
104
+ }
105
+ }
106
+ function readStorageSnapshot(storage, config) {
107
+ const entries = {};
108
+ const skipped = [];
109
+ try {
110
+ for (let index = 0; index < storage.length; index += 1) {
111
+ const key = storage.key(index);
112
+ if (!key) {
113
+ continue;
114
+ }
115
+ if (shouldSkipStorageKey(key, config)) {
116
+ skipped.push({ key, reason: 'disallowed' });
117
+ continue;
118
+ }
119
+ const value = storage.getItem(key);
120
+ if (value === null) {
121
+ continue;
122
+ }
123
+ entries[key] = value;
124
+ }
125
+ }
126
+ catch {
127
+ return { entries, skipped };
128
+ }
129
+ return { entries, skipped };
130
+ }
131
+ function shouldSkipStorageKey(key, config) {
132
+ const disallowed = new Set(config.disallowRecordStorageKeys ?? []);
133
+ disallowed.add(config.sessionStorageKey ?? DEFAULT_SESSION_STORAGE_KEY);
134
+ return disallowed.has(key);
135
+ }
136
+ function noop() {
137
+ // noop
138
+ }
139
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/collectors/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export type CollectorDispose = () => void;
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/collectors/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/collectors/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { type NewWebLoggerEvent, type SessionExport, type WebLoggerConfig, type WebLoggerController, type WebLoggerEvent } from './types';
2
+ export interface InitWebLoggerOptions extends WebLoggerConfig {
3
+ sessionId?: string;
4
+ persistentSessionId?: string;
5
+ now?: () => number;
6
+ }
7
+ export declare class WebLoggerCoreController implements WebLoggerController {
8
+ #private;
9
+ readonly sessionId: string;
10
+ readonly persistentSessionId?: string;
11
+ readonly namespaceKey: string;
12
+ readonly config: Required<Pick<WebLoggerConfig, 'memoryFlushThresholdBytes'>> & WebLoggerConfig;
13
+ constructor(options?: InitWebLoggerOptions);
14
+ record(event: NewWebLoggerEvent): WebLoggerEvent;
15
+ flushToIdb(): Promise<void>;
16
+ exportFull(): Promise<SessionExport>;
17
+ exportSince(sinceMs: number): Promise<SessionExport>;
18
+ destroy(): void;
19
+ }
20
+ export declare function initWebLogger(options?: InitWebLoggerOptions): WebLoggerController;
21
+ export { WebLoggerCoreController as InMemoryWebLoggerController };
22
+ //# sourceMappingURL=controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,qBAAa,uBAAwB,YAAW,mBAAmB;;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC,GAAG,eAAe,CAAC;gBAYpF,OAAO,GAAE,oBAAyB;IA8C9C,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,cAAc;IAe1C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B3B,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAQpC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAqB1D,OAAO,IAAI,IAAI;CA4EhB;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,mBAAmB,CAErF;AAED,OAAO,EAAE,uBAAuB,IAAI,2BAA2B,EAAE,CAAC"}