@openreplay/tracker 4.0.1 → 4.1.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.
- package/cjs/app/guards.d.ts +1 -0
- package/cjs/app/guards.js +6 -1
- package/cjs/app/index.d.ts +1 -1
- package/cjs/app/index.js +14 -8
- package/cjs/app/messages.gen.js +1 -0
- package/cjs/app/nodes.d.ts +1 -1
- package/cjs/app/nodes.js +3 -5
- package/cjs/app/observer/iframe_observer.js +1 -0
- package/cjs/app/observer/iframe_offsets.d.ts +8 -0
- package/cjs/app/observer/iframe_offsets.js +59 -0
- package/cjs/app/observer/observer.js +4 -4
- package/cjs/app/observer/top_observer.d.ts +2 -4
- package/cjs/app/observer/top_observer.js +11 -21
- package/cjs/app/sanitizer.d.ts +10 -4
- package/cjs/app/sanitizer.js +33 -15
- package/cjs/app/session.js +1 -1
- package/cjs/common/messages.gen.js +1 -0
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +6 -6
- package/cjs/modules/constructedStyleSheets.d.ts +4 -0
- package/cjs/modules/{adoptedStyleSheets.js → constructedStyleSheets.js} +21 -20
- package/cjs/modules/cssrules.js +65 -18
- package/cjs/modules/img.js +27 -19
- package/cjs/modules/input.js +2 -2
- package/cjs/modules/mouse.js +11 -7
- package/cjs/modules/scroll.js +32 -12
- package/cjs/utils.d.ts +5 -3
- package/cjs/utils.js +18 -13
- package/lib/app/guards.d.ts +1 -0
- package/lib/app/guards.js +4 -0
- package/lib/app/index.d.ts +1 -1
- package/lib/app/index.js +14 -8
- package/lib/app/messages.gen.js +1 -0
- package/lib/app/nodes.d.ts +1 -1
- package/lib/app/nodes.js +3 -5
- package/lib/app/observer/iframe_observer.js +1 -0
- package/lib/app/observer/iframe_offsets.d.ts +8 -0
- package/lib/app/observer/iframe_offsets.js +56 -0
- package/lib/app/observer/observer.js +4 -4
- package/lib/app/observer/top_observer.d.ts +2 -4
- package/lib/app/observer/top_observer.js +11 -21
- package/lib/app/sanitizer.d.ts +10 -4
- package/lib/app/sanitizer.js +32 -15
- package/lib/app/session.js +1 -1
- package/lib/common/messages.gen.js +1 -0
- package/lib/common/tsconfig.tsbuildinfo +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +4 -5
- package/lib/modules/constructedStyleSheets.d.ts +4 -0
- package/lib/modules/{adoptedStyleSheets.js → constructedStyleSheets.js} +20 -21
- package/lib/modules/cssrules.js +67 -19
- package/lib/modules/img.js +28 -20
- package/lib/modules/input.js +3 -3
- package/lib/modules/mouse.js +11 -7
- package/lib/modules/scroll.js +33 -13
- package/lib/utils.d.ts +5 -3
- package/lib/utils.js +17 -11
- package/package.json +1 -1
- package/cjs/modules/adoptedStyleSheets.d.ts +0 -2
- package/lib/modules/adoptedStyleSheets.d.ts +0 -2
package/lib/app/messages.gen.js
CHANGED
package/lib/app/nodes.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export default class Nodes {
|
|
|
6
6
|
private readonly elementListeners;
|
|
7
7
|
constructor(node_id: string);
|
|
8
8
|
attachNodeCallback(nodeCallback: NodeCallback): void;
|
|
9
|
-
|
|
9
|
+
attachNodeListener(node: Node, type: string, listener: EventListener): void;
|
|
10
10
|
registerNode(node: Node): [/*id:*/ number, /*isNew:*/ boolean];
|
|
11
11
|
unregisterNode(node: Node): number | undefined;
|
|
12
12
|
cleanTree(): void;
|
package/lib/app/nodes.js
CHANGED
|
@@ -9,20 +9,18 @@ export default class Nodes {
|
|
|
9
9
|
attachNodeCallback(nodeCallback) {
|
|
10
10
|
this.nodeCallbacks.push(nodeCallback);
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
attachElementListener(type, node, elementListener) {
|
|
12
|
+
attachNodeListener(node, type, listener) {
|
|
14
13
|
const id = this.getID(node);
|
|
15
14
|
if (id === undefined) {
|
|
16
15
|
return;
|
|
17
16
|
}
|
|
18
|
-
node.addEventListener(type,
|
|
17
|
+
node.addEventListener(type, listener);
|
|
19
18
|
let listeners = this.elementListeners.get(id);
|
|
20
19
|
if (listeners === undefined) {
|
|
21
20
|
listeners = [];
|
|
22
21
|
this.elementListeners.set(id, listeners);
|
|
23
|
-
return;
|
|
24
22
|
}
|
|
25
|
-
listeners.push([type,
|
|
23
|
+
listeners.push([type, listener]);
|
|
26
24
|
}
|
|
27
25
|
registerNode(node) {
|
|
28
26
|
let id = node[this.node_id];
|
|
@@ -9,6 +9,7 @@ export default class IFrameObserver extends Observer {
|
|
|
9
9
|
} //log TODO common app.logger
|
|
10
10
|
// Have to observe document, because the inner <html> might be changed
|
|
11
11
|
this.observeRoot(doc, (docID) => {
|
|
12
|
+
//MBTODO: do not send if empty (send on load? it might be in-place iframe, like our replayer, which does not get loaded)
|
|
12
13
|
if (docID === undefined) {
|
|
13
14
|
console.log('OpenReplay: Iframe document not bound');
|
|
14
15
|
return;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// Le truc - for defining an absolute offset for (nested) iframe documents. (To track mouse movments)
|
|
2
|
+
export default class IFrameOffsets {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.states = new Map();
|
|
5
|
+
}
|
|
6
|
+
calcOffset(state) {
|
|
7
|
+
let parLeft = 0, parTop = 0;
|
|
8
|
+
if (state.parent) {
|
|
9
|
+
;
|
|
10
|
+
[parLeft, parTop] = this.calcOffset(state.parent);
|
|
11
|
+
}
|
|
12
|
+
if (!state.offset) {
|
|
13
|
+
const { left, top } = state.iFrame.getBoundingClientRect();
|
|
14
|
+
state.offset = [left, top];
|
|
15
|
+
}
|
|
16
|
+
const [left, top] = state.offset;
|
|
17
|
+
return [parLeft + left, parTop + top]; // TODO: store absolute sum, invalidate whole subtree. Otherwise it is summated on each mousemove
|
|
18
|
+
}
|
|
19
|
+
getDocumentOffset(doc) {
|
|
20
|
+
const state = this.states.get(doc);
|
|
21
|
+
if (!state) {
|
|
22
|
+
return [0, 0];
|
|
23
|
+
} // topmost doc
|
|
24
|
+
return this.calcOffset(state);
|
|
25
|
+
}
|
|
26
|
+
observe(iFrame) {
|
|
27
|
+
var _a;
|
|
28
|
+
const doc = iFrame.contentDocument;
|
|
29
|
+
if (!doc) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const parentDoc = iFrame.ownerDocument;
|
|
33
|
+
const parentState = this.states.get(parentDoc);
|
|
34
|
+
const state = {
|
|
35
|
+
offset: null,
|
|
36
|
+
iFrame,
|
|
37
|
+
parent: parentState || null,
|
|
38
|
+
clear: () => {
|
|
39
|
+
var _a;
|
|
40
|
+
parentDoc.removeEventListener('scroll', invalidateOffset);
|
|
41
|
+
(_a = parentDoc.defaultView) === null || _a === void 0 ? void 0 : _a.removeEventListener('resize', invalidateOffset);
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
const invalidateOffset = () => {
|
|
45
|
+
state.offset = null;
|
|
46
|
+
};
|
|
47
|
+
// anything more reliable? This does not cover all cases (layout changes are ignored, for ex.)
|
|
48
|
+
parentDoc.addEventListener('scroll', invalidateOffset);
|
|
49
|
+
(_a = parentDoc.defaultView) === null || _a === void 0 ? void 0 : _a.addEventListener('resize', invalidateOffset);
|
|
50
|
+
this.states.set(doc, state);
|
|
51
|
+
}
|
|
52
|
+
clear() {
|
|
53
|
+
this.states.forEach((s) => s.clear());
|
|
54
|
+
this.states.clear();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -221,7 +221,7 @@ export default class Observer {
|
|
|
221
221
|
return false;
|
|
222
222
|
}
|
|
223
223
|
this.app.sanitizer.handleNode(id, parentID, node);
|
|
224
|
-
if (this.app.sanitizer.
|
|
224
|
+
if (this.app.sanitizer.isHidden(parentID)) {
|
|
225
225
|
return false;
|
|
226
226
|
}
|
|
227
227
|
}
|
|
@@ -249,12 +249,12 @@ export default class Observer {
|
|
|
249
249
|
if (isElementNode(node)) {
|
|
250
250
|
let el = node;
|
|
251
251
|
if (parentID !== undefined) {
|
|
252
|
-
if (this.app.sanitizer.
|
|
252
|
+
if (this.app.sanitizer.isHidden(id)) {
|
|
253
253
|
const width = el.clientWidth;
|
|
254
254
|
const height = el.clientHeight;
|
|
255
255
|
el = node.cloneNode();
|
|
256
|
-
el.style.width = width
|
|
257
|
-
el.style.height = height
|
|
256
|
+
el.style.width = `${width}px`;
|
|
257
|
+
el.style.height = `${height}px`;
|
|
258
258
|
}
|
|
259
259
|
this.app.send(CreateElementNode(id, parentID, index, el.tagName, isSVGElement(node)));
|
|
260
260
|
}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import Observer from './observer.js';
|
|
2
|
+
import { Offset } from './iframe_offsets.js';
|
|
2
3
|
import App from '../index.js';
|
|
3
4
|
export interface Options {
|
|
4
5
|
captureIFrames: boolean;
|
|
5
6
|
}
|
|
6
7
|
declare type Context = Window & typeof globalThis;
|
|
7
8
|
declare type ContextCallback = (context: Context) => void;
|
|
8
|
-
declare type Offset = {
|
|
9
|
-
top: number;
|
|
10
|
-
left: number;
|
|
11
|
-
};
|
|
12
9
|
export default class TopObserver extends Observer {
|
|
13
10
|
private readonly options;
|
|
11
|
+
private readonly iframeOffsets;
|
|
14
12
|
constructor(app: App, options: Partial<Options>);
|
|
15
13
|
private readonly contextCallbacks;
|
|
16
14
|
private readonly contextsSet;
|
|
@@ -2,16 +2,14 @@ import Observer from './observer.js';
|
|
|
2
2
|
import { isElementNode, hasTag } from '../guards.js';
|
|
3
3
|
import IFrameObserver from './iframe_observer.js';
|
|
4
4
|
import ShadowRootObserver from './shadow_root_observer.js';
|
|
5
|
+
import IFrameOffsets from './iframe_offsets.js';
|
|
5
6
|
import { CreateDocument } from '../messages.gen.js';
|
|
6
7
|
import { IN_BROWSER, hasOpenreplayAttribute } from '../../utils.js';
|
|
7
|
-
function isPatchedDocument(doc) {
|
|
8
|
-
// @ts-ignore
|
|
9
|
-
return typeof doc.__openreplay__getOffset === 'function';
|
|
10
|
-
}
|
|
11
8
|
const attachShadowNativeFn = IN_BROWSER ? Element.prototype.attachShadow : () => new ShadowRoot();
|
|
12
9
|
export default class TopObserver extends Observer {
|
|
13
10
|
constructor(app, options) {
|
|
14
11
|
super(app, true);
|
|
12
|
+
this.iframeOffsets = new IFrameOffsets();
|
|
15
13
|
this.contextCallbacks = [];
|
|
16
14
|
// Attached once per Tracker instance
|
|
17
15
|
this.contextsSet = new Set();
|
|
@@ -38,17 +36,14 @@ export default class TopObserver extends Observer {
|
|
|
38
36
|
attachContextCallback(cb) {
|
|
39
37
|
this.contextCallbacks.push(cb);
|
|
40
38
|
}
|
|
41
|
-
// Le truc
|
|
42
39
|
getDocumentOffset(doc) {
|
|
43
|
-
|
|
44
|
-
return doc.__openreplay__getOffset();
|
|
45
|
-
}
|
|
46
|
-
return { top: 0, left: 0 };
|
|
40
|
+
return this.iframeOffsets.getDocumentOffset(doc);
|
|
47
41
|
}
|
|
48
42
|
handleIframe(iframe) {
|
|
49
43
|
let doc = null;
|
|
50
|
-
|
|
51
|
-
|
|
44
|
+
// setTimeout is required. Otherwise some event listeners (scroll, mousemove) applied in modules
|
|
45
|
+
// do not work on the iframe document when it 've been loaded dynamically ((why?))
|
|
46
|
+
const handle = this.app.safe(() => setTimeout(() => {
|
|
52
47
|
const id = this.app.nodes.getID(iframe);
|
|
53
48
|
if (id === undefined) {
|
|
54
49
|
//log
|
|
@@ -59,27 +54,21 @@ export default class TopObserver extends Observer {
|
|
|
59
54
|
if (currentDoc && currentDoc !== doc) {
|
|
60
55
|
const observer = new IFrameObserver(this.app);
|
|
61
56
|
this.iframeObservers.push(observer);
|
|
62
|
-
observer.observe(iframe);
|
|
57
|
+
observer.observe(iframe); // TODO: call unregisterNode for the previous doc if present (incapsulate: one iframe - one observer)
|
|
63
58
|
doc = currentDoc;
|
|
64
|
-
|
|
65
|
-
const { top, left } = this.getDocumentOffset(iframe.ownerDocument);
|
|
66
|
-
return {
|
|
67
|
-
top: iframe.offsetTop + top,
|
|
68
|
-
left: iframe.offsetLeft + left,
|
|
69
|
-
};
|
|
70
|
-
};
|
|
59
|
+
this.iframeOffsets.observe(iframe);
|
|
71
60
|
}
|
|
72
61
|
if (currentWin &&
|
|
73
62
|
// Sometimes currentWin.window is null (not in specification). Such window object is not functional
|
|
74
63
|
currentWin === currentWin.window &&
|
|
75
64
|
!this.contextsSet.has(currentWin) // for each context callbacks called once per Tracker (TopObserver) instance
|
|
65
|
+
//TODO: more explicit logic
|
|
76
66
|
) {
|
|
77
67
|
this.contextsSet.add(currentWin);
|
|
78
68
|
//@ts-ignore https://github.com/microsoft/TypeScript/issues/41684
|
|
79
69
|
this.contextCallbacks.forEach((cb) => cb(currentWin));
|
|
80
|
-
win = currentWin;
|
|
81
70
|
}
|
|
82
|
-
});
|
|
71
|
+
}, 0));
|
|
83
72
|
iframe.addEventListener('load', handle); // why app.attachEventListener not working?
|
|
84
73
|
handle();
|
|
85
74
|
}
|
|
@@ -108,6 +97,7 @@ export default class TopObserver extends Observer {
|
|
|
108
97
|
}, window.document.documentElement);
|
|
109
98
|
}
|
|
110
99
|
disconnect() {
|
|
100
|
+
this.iframeOffsets.clear();
|
|
111
101
|
Element.prototype.attachShadow = attachShadowNativeFn;
|
|
112
102
|
this.iframeObservers.forEach((o) => o.disconnect());
|
|
113
103
|
this.iframeObservers = [];
|
package/lib/app/sanitizer.d.ts
CHANGED
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
import type App from './index.js';
|
|
2
|
+
export declare enum SanitizeLevel {
|
|
3
|
+
Plain = 0,
|
|
4
|
+
Obscured = 1,
|
|
5
|
+
Hidden = 2
|
|
6
|
+
}
|
|
2
7
|
export interface Options {
|
|
3
8
|
obscureTextEmails: boolean;
|
|
4
9
|
obscureTextNumbers: boolean;
|
|
10
|
+
domSanitizer?: (node: Element) => SanitizeLevel;
|
|
5
11
|
}
|
|
6
12
|
export default class Sanitizer {
|
|
7
13
|
private readonly app;
|
|
8
|
-
private readonly
|
|
9
|
-
private readonly
|
|
14
|
+
private readonly obscured;
|
|
15
|
+
private readonly hidden;
|
|
10
16
|
private readonly options;
|
|
11
17
|
constructor(app: App, options: Partial<Options>);
|
|
12
18
|
handleNode(id: number, parentID: number, node: Node): void;
|
|
13
19
|
sanitize(id: number, data: string): string;
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
isObscured(id: number): boolean;
|
|
21
|
+
isHidden(id: number): boolean;
|
|
16
22
|
getInnerTextSecure(el: HTMLElement): string;
|
|
17
23
|
clear(): void;
|
|
18
24
|
}
|
package/lib/app/sanitizer.js
CHANGED
|
@@ -1,27 +1,44 @@
|
|
|
1
1
|
import { stars, hasOpenreplayAttribute } from '../utils.js';
|
|
2
2
|
import { isElementNode } from './guards.js';
|
|
3
|
+
export var SanitizeLevel;
|
|
4
|
+
(function (SanitizeLevel) {
|
|
5
|
+
SanitizeLevel[SanitizeLevel["Plain"] = 0] = "Plain";
|
|
6
|
+
SanitizeLevel[SanitizeLevel["Obscured"] = 1] = "Obscured";
|
|
7
|
+
SanitizeLevel[SanitizeLevel["Hidden"] = 2] = "Hidden";
|
|
8
|
+
})(SanitizeLevel || (SanitizeLevel = {}));
|
|
3
9
|
export default class Sanitizer {
|
|
4
10
|
constructor(app, options) {
|
|
5
11
|
this.app = app;
|
|
6
|
-
this.
|
|
7
|
-
this.
|
|
12
|
+
this.obscured = new Set();
|
|
13
|
+
this.hidden = new Set();
|
|
8
14
|
this.options = Object.assign({
|
|
9
15
|
obscureTextEmails: true,
|
|
10
16
|
obscureTextNumbers: false,
|
|
11
17
|
}, options);
|
|
12
18
|
}
|
|
13
19
|
handleNode(id, parentID, node) {
|
|
14
|
-
if (this.
|
|
15
|
-
(isElementNode(node) &&
|
|
16
|
-
|
|
20
|
+
if (this.obscured.has(parentID) ||
|
|
21
|
+
(isElementNode(node) &&
|
|
22
|
+
(hasOpenreplayAttribute(node, 'masked') || hasOpenreplayAttribute(node, 'obscured')))) {
|
|
23
|
+
this.obscured.add(id);
|
|
17
24
|
}
|
|
18
|
-
if (this.
|
|
19
|
-
(isElementNode(node) &&
|
|
20
|
-
|
|
25
|
+
if (this.hidden.has(parentID) ||
|
|
26
|
+
(isElementNode(node) &&
|
|
27
|
+
(hasOpenreplayAttribute(node, 'htmlmasked') || hasOpenreplayAttribute(node, 'hidden')))) {
|
|
28
|
+
this.hidden.add(id);
|
|
29
|
+
}
|
|
30
|
+
if (this.options.domSanitizer !== undefined && isElementNode(node)) {
|
|
31
|
+
const sanitizeLevel = this.options.domSanitizer(node);
|
|
32
|
+
if (sanitizeLevel === SanitizeLevel.Obscured) {
|
|
33
|
+
this.obscured.add(id);
|
|
34
|
+
}
|
|
35
|
+
if (sanitizeLevel === SanitizeLevel.Hidden) {
|
|
36
|
+
this.hidden.add(id);
|
|
37
|
+
}
|
|
21
38
|
}
|
|
22
39
|
}
|
|
23
40
|
sanitize(id, data) {
|
|
24
|
-
if (this.
|
|
41
|
+
if (this.obscured.has(id)) {
|
|
25
42
|
// TODO: is it the best place to put trim() ? Might trimmed spaces be considered in layout in certain cases?
|
|
26
43
|
return data
|
|
27
44
|
.trim()
|
|
@@ -35,11 +52,11 @@ export default class Sanitizer {
|
|
|
35
52
|
}
|
|
36
53
|
return data;
|
|
37
54
|
}
|
|
38
|
-
|
|
39
|
-
return this.
|
|
55
|
+
isObscured(id) {
|
|
56
|
+
return this.obscured.has(id);
|
|
40
57
|
}
|
|
41
|
-
|
|
42
|
-
return this.
|
|
58
|
+
isHidden(id) {
|
|
59
|
+
return this.hidden.has(id);
|
|
43
60
|
}
|
|
44
61
|
getInnerTextSecure(el) {
|
|
45
62
|
const id = this.app.nodes.getID(el);
|
|
@@ -49,7 +66,7 @@ export default class Sanitizer {
|
|
|
49
66
|
return this.sanitize(id, el.innerText);
|
|
50
67
|
}
|
|
51
68
|
clear() {
|
|
52
|
-
this.
|
|
53
|
-
this.
|
|
69
|
+
this.obscured.clear();
|
|
70
|
+
this.hidden.clear();
|
|
54
71
|
}
|
|
55
72
|
}
|
package/lib/app/session.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../src/common/messages.gen.ts","../../src/common/interaction.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@types/minimatch/index.d.ts","../../node_modules/@types/glob/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/resolve/index.d.ts"],"fileInfos":[{"version":"ca3c1cd7464b613bf148a1422cb3201fe083e08565a02dc99eaad0d2977c16a7","affectsGlobalScope":true,"impliedFormat":1},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true,"impliedFormat":1},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true,"impliedFormat":1},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true,"impliedFormat":1},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true,"impliedFormat":1},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true,"impliedFormat":1},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true,"impliedFormat":1},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true,"impliedFormat":1},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true,"impliedFormat":1},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true,"impliedFormat":1},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true,"impliedFormat":1},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true,"impliedFormat":1},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true,"impliedFormat":1},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true,"impliedFormat":1},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true,"impliedFormat":1},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true,"impliedFormat":1},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true,"impliedFormat":1},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true,"impliedFormat":1},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true,"impliedFormat":1},{"version":"ca06fa264234f5895ebfe13ec1f578ee1c18a0d02219a54c3cdad296686251cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true,"impliedFormat":1},"01ec15f8bc58fbddf7a56720f7b4c05cc9bc97489975216bdcfb151a37eae3f3","68dcaf7bcaafa00e059a6c32fc519773fccdedbe51ba80c8962a944c36e5a77e","89ccbe04e737ce613f5f04990271cfa84901446350b8551b0555ddf19319723b","9122ed7070e054b73ebab37c2373a196def2d90e7d1a9a7fcd9d46b0e51fae78","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"77f0b5c6a193a699c9f7d7fb0578e64e562d271afa740783665d2a827104a873","affectsGlobalScope":true,"impliedFormat":1},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"3e4624c306340ad303cc536a07004e81336c3f088308a9e4a9f4c957a3cda2fd","affectsGlobalScope":true,"impliedFormat":1},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true,"impliedFormat":1},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","34ec1daf3566f26c43dbab380af0de1aac29166e57e4f9ef379a2f154e0cb290","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","75ecef44f126e2ae018b4abbd85b6e8a2e2ba1638ebec56cc64274643ce3567b","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"249a2b90439cdfd51709539fbfa4dfe0791cbae6efce1e9b327ba8f8cd703f49","affectsGlobalScope":true,"impliedFormat":1},"2f60ac046e587e917d739f1edc77540eb0ec34f83090dae4ebd5f96c1c9578d4","a9b6b0f7b1e30359283b131ba6d1c51ee2d3601a2f12e1623141e6a1a60c92a5","aeee0090b38de0dd47ca9a79ad5c2d156e3e09d92306719b0b45a3e96098e564","7bac475dcdd9f7e4e9da934d32c305bc889c4ce3c8ac0ef45a93a8d670fff607","09416dd69576b03a3f485adf329a02f043e4a481e060ef5b208194e488d31fd9","8acf99b1c8682276a63ea5bb68433782715892726b97e4604a415e4e56bce41c",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true,"impliedFormat":1},"3b145a2351f5cf16abf999c8d5f4481c74dffdc54ec1e9a89992e2622e1226c5","a907bf91df26df2400858ef75f749498fb5cf00062bf90a737ac3949cc07978d","d270fd4b565eda11a0a737c181892316b7a1ace06c7988d0246219c3df11db06","4275d5f964e7fc7afc18538e26b3748c207dd772998346d17f409749aa1f3a63",{"version":"59a638a504490fecaacf0020b9814b6abee37edb66047eb1ab9f7c2274bf1da0","affectsGlobalScope":true,"impliedFormat":1},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","d1a78a3c5708807e8de3e399f91df4797c62e44b02195eefc2209b2e713e54ee","8c4c1a64db28930732033c31418f817dcb9d09d706766707ae6d38f23faf0c53","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","556bf5c36deb62cffa1bf697c1789fe008ec82db0273025001db66732714e9d9","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true,"impliedFormat":1},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","653968fc1b35c5eb3d273d36fac1c1dc66f9537edf28f33485b8776bd956e23d",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true,"impliedFormat":1},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","a381f079c4804442f179d742fdb2e495fe28d67a47cac673485f75ae2e77aeca","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"bfe39beb986d2a2e512c091cbe924f1c415bc65de54de0e2f6a0dc6f84c183d9","affectsGlobalScope":true,"impliedFormat":1},"2af17363f8a062e3a8cd1b26030af0058b3f86e783f4fc6aa9f57247f240ebaa","06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","dfe08140492cdc135fb7fd9c4a652c05207b61a436906079b87da1d3111314bf","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","089e1f8603cbc35ab977c8dcc662eb754b82fca32ed1dfb16bd682726c2d5432","8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},"64d5585e08ad1ab194b18bf4e851f22a626eae33ac7312ca4ba90bb7ea7daf64","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","8a19491eba2108d5c333c249699f40aff05ad312c04a17504573b27d91f0aede"],"options":{"composite":true,"declaration":true,"module":5,"noImplicitAny":true,"noImplicitThis":true,"outDir":"..","rootDir":"../../src","strictNullChecks":true,"target":2},"fileIdsList":[[86],[57,58,86,93,94],[42,86],[45,86],[46,51,86],[47,57,58,65,74,85,86],[47,48,57,65,86],[49,86],[50,51,58,66,86],[51,74,82,86],[52,54,57,65,86],[53,86],[54,55,86],[56,57,86],[57,86],[57,58,59,74,85,86],[57,58,59,74,77,86],[86,90],[60,65,74,85,86],[57,58,60,61,65,74,82,85,86],[60,62,74,82,85,86],[42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92],[57,63,86],[64,85,86],[54,57,65,74,86],[66,86],[67,86],[45,68,86],[69,84,86,90],[70,86],[71,86],[57,72,86],[72,73,86,88],[57,74,75,76,77,86],[74,76,86],[74,75,86],[77,86],[78,86],[57,80,81,86],[80,81,86],[51,65,74,82,86],[83,86],[65,84,86],[46,60,71,85,86],[51,86],[74,86,87],[86,88],[86,89],[46,51,57,59,68,74,85,86,88,90],[74,86,91],[86,93],[39,86]],"referencedMap":[[41,1],[95,2],[96,1],[94,1],[42,3],[43,3],[45,4],[46,5],[47,6],[48,7],[49,8],[50,9],[51,10],[52,11],[53,12],[54,13],[55,13],[56,14],[57,15],[58,16],[59,17],[44,18],[92,1],[60,19],[61,20],[62,21],[93,22],[63,23],[64,24],[65,25],[66,26],[67,27],[68,28],[69,29],[70,30],[71,31],[72,32],[73,33],[74,34],[76,35],[75,36],[77,37],[78,38],[79,1],[80,39],[81,40],[82,41],[83,42],[84,43],[85,44],[86,45],[87,46],[88,47],[89,48],[90,49],[91,50],[97,51],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[4,1],[21,1],[18,1],[19,1],[20,1],[22,1],[23,1],[24,1],[5,1],[25,1],[26,1],[27,1],[28,1],[6,1],[29,1],[30,1],[31,1],[32,1],[7,1],[37,1],[33,1],[34,1],[35,1],[36,1],[1,1],[38,1],[40,52],[39,1]],"exportedModulesMap":[[41,1],[95,2],[96,1],[94,1],[42,3],[43,3],[45,4],[46,5],[47,6],[48,7],[49,8],[50,9],[51,10],[52,11],[53,12],[54,13],[55,13],[56,14],[57,15],[58,16],[59,17],[44,18],[92,1],[60,19],[61,20],[62,21],[93,22],[63,23],[64,24],[65,25],[66,26],[67,27],[68,28],[69,29],[70,30],[71,31],[72,32],[73,33],[74,34],[76,35],[75,36],[77,37],[78,38],[79,1],[80,39],[81,40],[82,41],[83,42],[84,43],[85,44],[86,45],[87,46],[88,47],[89,48],[90,49],[91,50],[97,51],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[4,1],[21,1],[18,1],[19,1],[20,1],[22,1],[23,1],[24,1],[5,1],[25,1],[26,1],[27,1],[28,1],[6,1],[29,1],[30,1],[31,1],[32,1],[7,1],[37,1],[33,1],[34,1],[35,1],[36,1],[1,1],[38,1],[40,52],[39,1]],"semanticDiagnosticsPerFile":[41,95,96,94,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,44,92,60,61,62,93,63,64,65,66,67,68,69,70,71,72,73,74,76,75,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,97,9,8,2,10,11,12,13,14,15,16,17,3,4,21,18,19,20,22,23,24,5,25,26,27,28,6,29,30,31,32,7,37,33,34,35,36,1,38,40,39]},"version":"4.6.0-dev.20211126"}
|
|
1
|
+
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../src/common/messages.gen.ts","../../src/common/interaction.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@types/minimatch/index.d.ts","../../node_modules/@types/glob/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/resolve/index.d.ts"],"fileInfos":[{"version":"ca3c1cd7464b613bf148a1422cb3201fe083e08565a02dc99eaad0d2977c16a7","affectsGlobalScope":true,"impliedFormat":1},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true,"impliedFormat":1},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true,"impliedFormat":1},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true,"impliedFormat":1},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true,"impliedFormat":1},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true,"impliedFormat":1},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true,"impliedFormat":1},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true,"impliedFormat":1},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true,"impliedFormat":1},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true,"impliedFormat":1},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true,"impliedFormat":1},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true,"impliedFormat":1},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true,"impliedFormat":1},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true,"impliedFormat":1},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true,"impliedFormat":1},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true,"impliedFormat":1},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true,"impliedFormat":1},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true,"impliedFormat":1},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true,"impliedFormat":1},{"version":"ca06fa264234f5895ebfe13ec1f578ee1c18a0d02219a54c3cdad296686251cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true,"impliedFormat":1},"eb8d151b279cdd7f9c014cbfd79371801b8ef1e1b34b088630f88b52924201b4","68dcaf7bcaafa00e059a6c32fc519773fccdedbe51ba80c8962a944c36e5a77e","89ccbe04e737ce613f5f04990271cfa84901446350b8551b0555ddf19319723b","9122ed7070e054b73ebab37c2373a196def2d90e7d1a9a7fcd9d46b0e51fae78","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"77f0b5c6a193a699c9f7d7fb0578e64e562d271afa740783665d2a827104a873","affectsGlobalScope":true,"impliedFormat":1},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"3e4624c306340ad303cc536a07004e81336c3f088308a9e4a9f4c957a3cda2fd","affectsGlobalScope":true,"impliedFormat":1},"0c0cee62cb619aed81133b904f644515ba3064487002a7da83fd8aa07b1b4abd","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true,"impliedFormat":1},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","025fc13211ed47d2798269017af3ec869122a050d5431a6ad3c1997900e65c58","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","75ecef44f126e2ae018b4abbd85b6e8a2e2ba1638ebec56cc64274643ce3567b","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"249a2b90439cdfd51709539fbfa4dfe0791cbae6efce1e9b327ba8f8cd703f49","affectsGlobalScope":true,"impliedFormat":1},"2f60ac046e587e917d739f1edc77540eb0ec34f83090dae4ebd5f96c1c9578d4","a9b6b0f7b1e30359283b131ba6d1c51ee2d3601a2f12e1623141e6a1a60c92a5","aeee0090b38de0dd47ca9a79ad5c2d156e3e09d92306719b0b45a3e96098e564","7bac475dcdd9f7e4e9da934d32c305bc889c4ce3c8ac0ef45a93a8d670fff607","09416dd69576b03a3f485adf329a02f043e4a481e060ef5b208194e488d31fd9","8acf99b1c8682276a63ea5bb68433782715892726b97e4604a415e4e56bce41c",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true,"impliedFormat":1},"3b145a2351f5cf16abf999c8d5f4481c74dffdc54ec1e9a89992e2622e1226c5","a907bf91df26df2400858ef75f749498fb5cf00062bf90a737ac3949cc07978d","d270fd4b565eda11a0a737c181892316b7a1ace06c7988d0246219c3df11db06","4275d5f964e7fc7afc18538e26b3748c207dd772998346d17f409749aa1f3a63",{"version":"59a638a504490fecaacf0020b9814b6abee37edb66047eb1ab9f7c2274bf1da0","affectsGlobalScope":true,"impliedFormat":1},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","d1a78a3c5708807e8de3e399f91df4797c62e44b02195eefc2209b2e713e54ee","8c4c1a64db28930732033c31418f817dcb9d09d706766707ae6d38f23faf0c53","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","12a70315c8281e46d65696086dd25827408e967b305a22276ae2779fe519e0fe","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true,"impliedFormat":1},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","29d613c3964ea75b2b4e0d17098245c34529282e9cc72b7e4eeb2a7b12c27cb7",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true,"impliedFormat":1},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","a381f079c4804442f179d742fdb2e495fe28d67a47cac673485f75ae2e77aeca","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"bfe39beb986d2a2e512c091cbe924f1c415bc65de54de0e2f6a0dc6f84c183d9","affectsGlobalScope":true,"impliedFormat":1},"2af17363f8a062e3a8cd1b26030af0058b3f86e783f4fc6aa9f57247f240ebaa","06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","dfe08140492cdc135fb7fd9c4a652c05207b61a436906079b87da1d3111314bf","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","089e1f8603cbc35ab977c8dcc662eb754b82fca32ed1dfb16bd682726c2d5432","8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},"82fc37849846a3a0264047621d5beb6ce2ddeb2f83bdee2c79523af3c3282d97","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","8a19491eba2108d5c333c249699f40aff05ad312c04a17504573b27d91f0aede"],"options":{"composite":true,"declaration":true,"module":5,"noImplicitAny":true,"noImplicitThis":true,"outDir":"..","rootDir":"../../src","strictNullChecks":true,"target":2},"fileIdsList":[[86],[57,58,86,93,94],[42,86],[45,86],[46,51,86],[47,57,58,65,74,85,86],[47,48,57,65,86],[49,86],[50,51,58,66,86],[51,74,82,86],[52,54,57,65,86],[53,86],[54,55,86],[56,57,86],[57,86],[57,58,59,74,85,86],[57,58,59,74,77,86],[86,90],[60,65,74,85,86],[57,58,60,61,65,74,82,85,86],[60,62,74,82,85,86],[42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92],[57,63,86],[64,85,86],[54,57,65,74,86],[66,86],[67,86],[45,68,86],[69,84,86,90],[70,86],[71,86],[57,72,86],[72,73,86,88],[57,74,75,76,77,86],[74,76,86],[74,75,86],[77,86],[78,86],[57,80,81,86],[80,81,86],[51,65,74,82,86],[83,86],[65,84,86],[46,60,71,85,86],[51,86],[74,86,87],[86,88],[86,89],[46,51,57,59,68,74,85,86,88,90],[74,86,91],[86,93],[39,86]],"referencedMap":[[41,1],[95,2],[96,1],[94,1],[42,3],[43,3],[45,4],[46,5],[47,6],[48,7],[49,8],[50,9],[51,10],[52,11],[53,12],[54,13],[55,13],[56,14],[57,15],[58,16],[59,17],[44,18],[92,1],[60,19],[61,20],[62,21],[93,22],[63,23],[64,24],[65,25],[66,26],[67,27],[68,28],[69,29],[70,30],[71,31],[72,32],[73,33],[74,34],[76,35],[75,36],[77,37],[78,38],[79,1],[80,39],[81,40],[82,41],[83,42],[84,43],[85,44],[86,45],[87,46],[88,47],[89,48],[90,49],[91,50],[97,51],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[4,1],[21,1],[18,1],[19,1],[20,1],[22,1],[23,1],[24,1],[5,1],[25,1],[26,1],[27,1],[28,1],[6,1],[29,1],[30,1],[31,1],[32,1],[7,1],[37,1],[33,1],[34,1],[35,1],[36,1],[1,1],[38,1],[40,52],[39,1]],"exportedModulesMap":[[41,1],[95,2],[96,1],[94,1],[42,3],[43,3],[45,4],[46,5],[47,6],[48,7],[49,8],[50,9],[51,10],[52,11],[53,12],[54,13],[55,13],[56,14],[57,15],[58,16],[59,17],[44,18],[92,1],[60,19],[61,20],[62,21],[93,22],[63,23],[64,24],[65,25],[66,26],[67,27],[68,28],[69,29],[70,30],[71,31],[72,32],[73,33],[74,34],[76,35],[75,36],[77,37],[78,38],[79,1],[80,39],[81,40],[82,41],[83,42],[84,43],[85,44],[86,45],[87,46],[88,47],[89,48],[90,49],[91,50],[97,51],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[4,1],[21,1],[18,1],[19,1],[20,1],[22,1],[23,1],[24,1],[5,1],[25,1],[26,1],[27,1],[28,1],[6,1],[29,1],[30,1],[31,1],[32,1],[7,1],[37,1],[33,1],[34,1],[35,1],[36,1],[1,1],[38,1],[40,52],[39,1]],"semanticDiagnosticsPerFile":[41,95,96,94,42,43,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,44,92,60,61,62,93,63,64,65,66,67,68,69,70,71,72,73,74,76,75,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,97,9,8,2,10,11,12,13,14,15,16,17,3,4,21,18,19,20,22,23,24,5,25,26,27,28,6,29,30,31,32,7,37,33,34,35,36,1,38,40,39]},"version":"4.6.0-dev.20211126"}
|
package/lib/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import App from './app/index.js';
|
|
|
2
2
|
export { default as App } from './app/index.js';
|
|
3
3
|
import * as _Messages from './app/messages.gen.js';
|
|
4
4
|
export declare const Messages: typeof _Messages;
|
|
5
|
+
export { SanitizeLevel } from './app/sanitizer.js';
|
|
5
6
|
import type { Options as AppOptions } from './app/index.js';
|
|
6
7
|
import type { Options as ConsoleOptions } from './modules/console.js';
|
|
7
8
|
import type { Options as ExceptionOptions } from './modules/exception.js';
|
package/lib/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export { default as App } from './app/index.js';
|
|
|
3
3
|
import { UserAnonymousID, RawCustomEvent, CustomIssue } from './app/messages.gen.js';
|
|
4
4
|
import * as _Messages from './app/messages.gen.js';
|
|
5
5
|
export const Messages = _Messages;
|
|
6
|
+
export { SanitizeLevel } from './app/sanitizer.js';
|
|
6
7
|
import Connection from './modules/connection.js';
|
|
7
8
|
import Console from './modules/console.js';
|
|
8
9
|
import Exception, { getExceptionMessageFromEvent, getExceptionMessage, } from './modules/exception.js';
|
|
@@ -14,7 +15,7 @@ import Performance from './modules/performance.js';
|
|
|
14
15
|
import Scroll from './modules/scroll.js';
|
|
15
16
|
import Viewport from './modules/viewport.js';
|
|
16
17
|
import CSSRules from './modules/cssrules.js';
|
|
17
|
-
import
|
|
18
|
+
import ConstructedStyleSheets from './modules/constructedStyleSheets.js';
|
|
18
19
|
import { IN_BROWSER, deprecationWarn, DOCS_HOST } from './utils.js';
|
|
19
20
|
const DOCS_SETUP = '/installation/setup-or';
|
|
20
21
|
function processOptions(obj) {
|
|
@@ -93,7 +94,7 @@ export default class API {
|
|
|
93
94
|
if (app !== null) {
|
|
94
95
|
Viewport(app);
|
|
95
96
|
CSSRules(app);
|
|
96
|
-
|
|
97
|
+
ConstructedStyleSheets(app);
|
|
97
98
|
Connection(app);
|
|
98
99
|
Console(app, options);
|
|
99
100
|
Exception(app, options);
|
|
@@ -159,9 +160,7 @@ export default class API {
|
|
|
159
160
|
return;
|
|
160
161
|
}
|
|
161
162
|
this.app.stop();
|
|
162
|
-
|
|
163
|
-
this.app.session.reset();
|
|
164
|
-
return sessionHash;
|
|
163
|
+
return this.app.session.getSessionHash();
|
|
165
164
|
}
|
|
166
165
|
getSessionToken() {
|
|
167
166
|
if (this.app === null) {
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import { TechnicalInfo, AdoptedSSReplaceURLBased, AdoptedSSInsertRuleURLBased,
|
|
1
|
+
import { TechnicalInfo, AdoptedSSReplaceURLBased, AdoptedSSInsertRuleURLBased, AdoptedSSAddOwner, AdoptedSSRemoveOwner, } from '../app/messages.gen.js';
|
|
2
2
|
import { isRootNode } from '../app/guards.js';
|
|
3
3
|
function hasAdoptedSS(node) {
|
|
4
4
|
return (isRootNode(node) &&
|
|
5
5
|
// @ts-ignore
|
|
6
6
|
!!node.adoptedStyleSheets);
|
|
7
7
|
}
|
|
8
|
+
// TODO: incapsulate to be init-ed on-start and join with cssrules.ts under one folder
|
|
9
|
+
let _id = 0xf;
|
|
10
|
+
export function nextID() {
|
|
11
|
+
return _id++;
|
|
12
|
+
}
|
|
13
|
+
export const styleSheetIDMap = new Map();
|
|
8
14
|
export default function (app) {
|
|
9
15
|
if (app === null) {
|
|
10
16
|
return;
|
|
@@ -16,10 +22,9 @@ export default function (app) {
|
|
|
16
22
|
});
|
|
17
23
|
return;
|
|
18
24
|
}
|
|
19
|
-
let nextID = 0xf;
|
|
20
25
|
const styleSheetIDMap = new Map();
|
|
21
26
|
const adoptedStyleSheetsOwnings = new Map();
|
|
22
|
-
const
|
|
27
|
+
const sendAdoptedStyleSheetsUpdate = (root) => {
|
|
23
28
|
let nodeID = app.nodes.getID(root);
|
|
24
29
|
if (root === document) {
|
|
25
30
|
nodeID = 0; // main document doesn't have nodeID. ID count starts from the documentElement
|
|
@@ -37,7 +42,7 @@ export default function (app) {
|
|
|
37
42
|
let sheetID = styleSheetIDMap.get(s);
|
|
38
43
|
const init = !sheetID;
|
|
39
44
|
if (!sheetID) {
|
|
40
|
-
sheetID =
|
|
45
|
+
sheetID = nextID();
|
|
41
46
|
}
|
|
42
47
|
nowOwning.push(sheetID);
|
|
43
48
|
if (!pastOwning.includes(sheetID)) {
|
|
@@ -63,12 +68,20 @@ export default function (app) {
|
|
|
63
68
|
Object.defineProperty(prototype, 'adoptedStyleSheets', Object.assign(Object.assign({}, nativeAdoptedStyleSheetsDescriptor), { set: function (value) {
|
|
64
69
|
// @ts-ignore
|
|
65
70
|
const retVal = nativeAdoptedStyleSheetsDescriptor.set.call(this, value);
|
|
66
|
-
|
|
71
|
+
sendAdoptedStyleSheetsUpdate(this);
|
|
67
72
|
return retVal;
|
|
68
73
|
} }));
|
|
69
74
|
}
|
|
70
75
|
}
|
|
71
76
|
const patchContext = (context) => {
|
|
77
|
+
// @ts-ignore
|
|
78
|
+
if (context.__openreplay_adpss_patched__) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// @ts-ignore
|
|
83
|
+
context.__openreplay_adpss_patched__ = true;
|
|
84
|
+
}
|
|
72
85
|
patchAdoptedStyleSheets(context.Document.prototype);
|
|
73
86
|
patchAdoptedStyleSheets(context.ShadowRoot.prototype);
|
|
74
87
|
//@ts-ignore TODO: configure ts (use necessary lib)
|
|
@@ -91,20 +104,6 @@ export default function (app) {
|
|
|
91
104
|
}
|
|
92
105
|
return replaceSync.call(this, text);
|
|
93
106
|
};
|
|
94
|
-
context.CSSStyleSheet.prototype.insertRule = function (rule, index = 0) {
|
|
95
|
-
const sheetID = styleSheetIDMap.get(this);
|
|
96
|
-
if (sheetID) {
|
|
97
|
-
app.send(AdoptedSSInsertRuleURLBased(sheetID, rule, index, app.getBaseHref()));
|
|
98
|
-
}
|
|
99
|
-
return insertRule.call(this, rule, index);
|
|
100
|
-
};
|
|
101
|
-
context.CSSStyleSheet.prototype.deleteRule = function (index) {
|
|
102
|
-
const sheetID = styleSheetIDMap.get(this);
|
|
103
|
-
if (sheetID) {
|
|
104
|
-
app.send(AdoptedSSDeleteRule(sheetID, index));
|
|
105
|
-
}
|
|
106
|
-
return deleteRule.call(this, index);
|
|
107
|
-
};
|
|
108
107
|
};
|
|
109
108
|
patchContext(window);
|
|
110
109
|
app.observer.attachContextCallback(patchContext);
|
|
@@ -114,11 +113,11 @@ export default function (app) {
|
|
|
114
113
|
});
|
|
115
114
|
// So far main Document is not triggered with nodeCallbacks
|
|
116
115
|
app.attachStartCallback(() => {
|
|
117
|
-
|
|
116
|
+
sendAdoptedStyleSheetsUpdate(document);
|
|
118
117
|
});
|
|
119
118
|
app.nodes.attachNodeCallback((node) => {
|
|
120
119
|
if (hasAdoptedSS(node)) {
|
|
121
|
-
|
|
120
|
+
sendAdoptedStyleSheetsUpdate(node);
|
|
122
121
|
}
|
|
123
122
|
});
|
|
124
123
|
}
|