@highlight-run/rrweb 1.2.1 → 2.0.0-lambda.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.
- package/CHANGELOG.md +359 -19
- package/README.md +147 -34
- package/dist/assets/image-bitmap-data-url-worker-DwtK8A0z.js.map +1 -0
- package/dist/rrweb.cjs +17806 -0
- package/dist/rrweb.cjs.map +1 -0
- package/dist/rrweb.d.cts +509 -0
- package/dist/rrweb.d.ts +509 -0
- package/dist/rrweb.js +17807 -0
- package/dist/rrweb.js.map +1 -0
- package/dist/rrweb.umd.cjs +17810 -0
- package/dist/rrweb.umd.cjs.map +7 -0
- package/dist/rrweb.umd.min.cjs +90 -0
- package/dist/rrweb.umd.min.cjs.map +7 -0
- package/dist/{index.css → style.css} +23 -14
- package/dist/style.min.css +2 -0
- package/dist/style.min.css.map +7 -0
- package/package.json +67 -61
- package/rrweb-record/package.json +4 -0
- package/rrweb-replay/package.json +4 -0
- package/README.zh_CN.md +0 -122
- package/dist/entries/all.d.ts +0 -4
- package/dist/entries/record-pack.d.ts +0 -2
- package/dist/entries/replay-unpack.d.ts +0 -2
- package/dist/index.css.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.js +0 -3
- package/dist/index.js.LICENSE.txt +0 -14
- package/dist/index.js.map +0 -1
- package/dist/packer/base.d.ts +0 -7
- package/dist/packer/index.d.ts +0 -2
- package/dist/packer/pack.d.ts +0 -2
- package/dist/packer/unpack.d.ts +0 -2
- package/dist/plugins/console/record/error-stack-parser.d.ts +0 -37
- package/dist/plugins/console/record/index.d.ts +0 -41
- package/dist/plugins/console/record/stringify.d.ts +0 -2
- package/dist/plugins/console/replay/index.d.ts +0 -9
- package/dist/plugins/console-record.min.js +0 -16
- package/dist/plugins/console-record.min.js.map +0 -1
- package/dist/plugins/entries/all.d.ts +0 -4
- package/dist/plugins/entries/record-pack.d.ts +0 -2
- package/dist/plugins/entries/replay-unpack.d.ts +0 -2
- package/dist/plugins/index.d.ts +0 -9
- package/dist/plugins/packer/base.d.ts +0 -7
- package/dist/plugins/packer/index.d.ts +0 -2
- package/dist/plugins/packer/pack.d.ts +0 -2
- package/dist/plugins/packer/unpack.d.ts +0 -2
- package/dist/plugins/plugins/console/record/error-stack-parser.d.ts +0 -37
- package/dist/plugins/plugins/console/record/index.d.ts +0 -41
- package/dist/plugins/plugins/console/record/stringify.d.ts +0 -2
- package/dist/plugins/plugins/console/replay/index.d.ts +0 -9
- package/dist/plugins/plugins/sequential-id/record/index.d.ts +0 -6
- package/dist/plugins/plugins/sequential-id/replay/index.d.ts +0 -7
- package/dist/plugins/record/iframe-manager.d.ts +0 -13
- package/dist/plugins/record/index.d.ts +0 -9
- package/dist/plugins/record/mutation.d.ts +0 -45
- package/dist/plugins/record/observer.d.ts +0 -11
- package/dist/plugins/record/observers/canvas/2d.d.ts +0 -2
- package/dist/plugins/record/observers/canvas/canvas-manager.d.ts +0 -32
- package/dist/plugins/record/observers/canvas/canvas.d.ts +0 -2
- package/dist/plugins/record/observers/canvas/serialize-args.d.ts +0 -6
- package/dist/plugins/record/observers/canvas/webgl.d.ts +0 -2
- package/dist/plugins/record/shadow-dom-manager.d.ts +0 -34
- package/dist/plugins/replay/canvas/2d.d.ts +0 -9
- package/dist/plugins/replay/canvas/index.d.ts +0 -9
- package/dist/plugins/replay/canvas/webgl.d.ts +0 -11
- package/dist/plugins/replay/index.d.ts +0 -82
- package/dist/plugins/replay/machine.d.ts +0 -85
- package/dist/plugins/replay/smoothscroll.d.ts +0 -1
- package/dist/plugins/replay/styles/inject-style.d.ts +0 -2
- package/dist/plugins/replay/timer.d.ts +0 -19
- package/dist/plugins/replay/virtual-styles.d.ts +0 -43
- package/dist/plugins/rrdom/index.d.ts +0 -1
- package/dist/plugins/rrdom/tree-node.d.ts +0 -20
- package/dist/plugins/sequential-id/record/index.d.ts +0 -6
- package/dist/plugins/sequential-id/replay/index.d.ts +0 -7
- package/dist/plugins/snapshot/css.d.ts +0 -92
- package/dist/plugins/snapshot/index.d.ts +0 -5
- package/dist/plugins/snapshot/rebuild.d.ts +0 -19
- package/dist/plugins/snapshot/snapshot.d.ts +0 -49
- package/dist/plugins/snapshot/types.d.ts +0 -99
- package/dist/plugins/snapshot/utils.d.ts +0 -11
- package/dist/plugins/types.d.ts +0 -509
- package/dist/plugins/utils.d.ts +0 -71
- package/dist/record/iframe-manager.d.ts +0 -13
- package/dist/record/index.d.ts +0 -9
- package/dist/record/mutation.d.ts +0 -45
- package/dist/record/observer.d.ts +0 -11
- package/dist/record/observers/canvas/2d.d.ts +0 -2
- package/dist/record/observers/canvas/canvas-manager.d.ts +0 -32
- package/dist/record/observers/canvas/canvas.d.ts +0 -2
- package/dist/record/observers/canvas/serialize-args.d.ts +0 -6
- package/dist/record/observers/canvas/webgl.d.ts +0 -2
- package/dist/record/shadow-dom-manager.d.ts +0 -34
- package/dist/replay/canvas/2d.d.ts +0 -9
- package/dist/replay/canvas/index.d.ts +0 -9
- package/dist/replay/canvas/webgl.d.ts +0 -11
- package/dist/replay/index.d.ts +0 -82
- package/dist/replay/machine.d.ts +0 -85
- package/dist/replay/smoothscroll.d.ts +0 -1
- package/dist/replay/styles/inject-style.d.ts +0 -2
- package/dist/replay/timer.d.ts +0 -19
- package/dist/replay/virtual-styles.d.ts +0 -43
- package/dist/rrdom/index.d.ts +0 -1
- package/dist/rrdom/tree-node.d.ts +0 -20
- package/dist/rrweb.min.js +0 -30
- package/dist/rrweb.min.js.map +0 -1
- package/dist/snapshot/css.d.ts +0 -92
- package/dist/snapshot/index.d.ts +0 -5
- package/dist/snapshot/rebuild.d.ts +0 -19
- package/dist/snapshot/snapshot.d.ts +0 -49
- package/dist/snapshot/types.d.ts +0 -99
- package/dist/snapshot/utils.d.ts +0 -11
- package/dist/types.d.ts +0 -509
- package/dist/utils.d.ts +0 -71
|
@@ -9,14 +9,19 @@
|
|
|
9
9
|
background-size: contain;
|
|
10
10
|
background-position: center center;
|
|
11
11
|
background-repeat: no-repeat;
|
|
12
|
-
background-image: url('data:image/svg+xml;base64,
|
|
12
|
+
background-image: url('data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMwMHB4JyB3aWR0aD0nMzAwcHgnICBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSIgdmlld0JveD0iMCAwIDUwIDUwIiB4PSIwcHgiIHk9IjBweCI+PHRpdGxlPkRlc2lnbl90bnA8L3RpdGxlPjxwYXRoIGQ9Ik00OC43MSw0Mi45MUwzNC4wOCwyOC4yOSw0NC4zMywxOEExLDEsMCwwLDAsNDQsMTYuMzlMMi4zNSwxLjA2QTEsMSwwLDAsMCwxLjA2LDIuMzVMMTYuMzksNDRhMSwxLDAsMCwwLDEuNjUuMzZMMjguMjksMzQuMDgsNDIuOTEsNDguNzFhMSwxLDAsMCwwLDEuNDEsMGw0LjM4LTQuMzhBMSwxLDAsMCwwLDQ4LjcxLDQyLjkxWm0tNS4wOSwzLjY3TDI5LDMyYTEsMSwwLDAsMC0xLjQxLDBsLTkuODUsOS44NUwzLjY5LDMuNjlsMzguMTIsMTRMMzIsMjcuNThBMSwxLDAsMCwwLDMyLDI5TDQ2LjU5LDQzLjYyWiI+PC9wYXRoPjwvc3ZnPg==');
|
|
13
13
|
border-color: transparent; /* otherwise we transition from black when .touch-device class is added */
|
|
14
14
|
}
|
|
15
|
-
|
|
16
15
|
.replayer-mouse::after {
|
|
17
|
-
|
|
16
|
+
content: '';
|
|
17
|
+
display: inline-block;
|
|
18
|
+
width: 20px;
|
|
19
|
+
height: 20px;
|
|
20
|
+
background: rgb(73, 80, 246);
|
|
21
|
+
border-radius: 100%;
|
|
22
|
+
transform: translate(-50%, -50%);
|
|
23
|
+
opacity: 0.3;
|
|
18
24
|
}
|
|
19
|
-
|
|
20
25
|
.replayer-mouse.active::after {
|
|
21
26
|
animation: click 0.2s ease-in-out 1;
|
|
22
27
|
}
|
|
@@ -52,16 +57,11 @@
|
|
|
52
57
|
opacity: 0.3;
|
|
53
58
|
width: 20px;
|
|
54
59
|
height: 20px;
|
|
55
|
-
background: transparent;
|
|
56
|
-
}
|
|
57
|
-
75% {
|
|
58
|
-
width: 24px;
|
|
59
|
-
height: 24px;
|
|
60
|
-
opacity: 0.8;
|
|
61
|
-
background: #dc2626;
|
|
62
60
|
}
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
50% {
|
|
62
|
+
opacity: 0.5;
|
|
63
|
+
width: 10px;
|
|
64
|
+
height: 10px;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
|
|
@@ -78,5 +78,14 @@
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
.rr-player {
|
|
82
|
+
position: relative;
|
|
83
|
+
background: white;
|
|
84
|
+
float: left;
|
|
85
|
+
border-radius: 5px;
|
|
86
|
+
box-shadow: 0 24px 48px rgba(17, 16, 62, 0.12);
|
|
87
|
+
}
|
|
81
88
|
|
|
82
|
-
|
|
89
|
+
.rr-player__frame {
|
|
90
|
+
overflow: hidden;
|
|
91
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.replayer-wrapper{position:relative}.replayer-mouse{position:absolute;width:20px;height:20px;transition:left .05s linear,top .05s linear;background-size:contain;background-position:center center;background-repeat:no-repeat;background-image:url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMwMHB4JyB3aWR0aD0nMzAwcHgnICBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSIgdmlld0JveD0iMCAwIDUwIDUwIiB4PSIwcHgiIHk9IjBweCI+PHRpdGxlPkRlc2lnbl90bnA8L3RpdGxlPjxwYXRoIGQ9Ik00OC43MSw0Mi45MUwzNC4wOCwyOC4yOSw0NC4zMywxOEExLDEsMCwwLDAsNDQsMTYuMzlMMi4zNSwxLjA2QTEsMSwwLDAsMCwxLjA2LDIuMzVMMTYuMzksNDRhMSwxLDAsMCwwLDEuNjUuMzZMMjguMjksMzQuMDgsNDIuOTEsNDguNzFhMSwxLDAsMCwwLDEuNDEsMGw0LjM4LTQuMzhBMSwxLDAsMCwwLDQ4LjcxLDQyLjkxWm0tNS4wOSwzLjY3TDI5LDMyYTEsMSwwLDAsMC0xLjQxLDBsLTkuODUsOS44NUwzLjY5LDMuNjlsMzguMTIsMTRMMzIsMjcuNThBMSwxLDAsMCwwLDMyLDI5TDQ2LjU5LDQzLjYyWiI+PC9wYXRoPjwvc3ZnPg==);border-color:transparent}.replayer-mouse:after{content:"";display:inline-block;width:20px;height:20px;background:#4950f6;border-radius:100%;transform:translate(-50%,-50%);opacity:.3}.replayer-mouse.active:after{animation:click .2s ease-in-out 1}.replayer-mouse.touch-device{background-image:none;width:70px;height:70px;border-width:4px;border-style:solid;border-radius:100%;margin-left:-37px;margin-top:-37px;border-color:#4950f600;transition:left 0s linear,top 0s linear,border-color .2s ease-in-out}.replayer-mouse.touch-device.touch-active{border-color:#4950f6;transition:left .25s linear,top .25s linear,border-color .2s ease-in-out}.replayer-mouse.touch-device:after{opacity:0}.replayer-mouse.touch-device.active:after{animation:touch-click .2s ease-in-out 1}.replayer-mouse-tail{position:absolute;pointer-events:none}@keyframes click{0%{opacity:.3;width:20px;height:20px}50%{opacity:.5;width:10px;height:10px}}@keyframes touch-click{0%{opacity:0;width:20px;height:20px}50%{opacity:.5;width:10px;height:10px}}.rr-player{position:relative;background:#fff;float:left;border-radius:5px;box-shadow:0 24px 48px #11103e1f}.rr-player__frame{overflow:hidden}
|
|
2
|
+
/*# sourceMappingURL=style.min.css.map */
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["style.css"],
|
|
4
|
+
"sourcesContent": [".replayer-wrapper {\n position: relative;\n}\n.replayer-mouse {\n position: absolute;\n width: 20px;\n height: 20px;\n transition: left 0.05s linear, top 0.05s linear;\n background-size: contain;\n background-position: center center;\n background-repeat: no-repeat;\n background-image: url('data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMwMHB4JyB3aWR0aD0nMzAwcHgnICBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSIgdmlld0JveD0iMCAwIDUwIDUwIiB4PSIwcHgiIHk9IjBweCI+PHRpdGxlPkRlc2lnbl90bnA8L3RpdGxlPjxwYXRoIGQ9Ik00OC43MSw0Mi45MUwzNC4wOCwyOC4yOSw0NC4zMywxOEExLDEsMCwwLDAsNDQsMTYuMzlMMi4zNSwxLjA2QTEsMSwwLDAsMCwxLjA2LDIuMzVMMTYuMzksNDRhMSwxLDAsMCwwLDEuNjUuMzZMMjguMjksMzQuMDgsNDIuOTEsNDguNzFhMSwxLDAsMCwwLDEuNDEsMGw0LjM4LTQuMzhBMSwxLDAsMCwwLDQ4LjcxLDQyLjkxWm0tNS4wOSwzLjY3TDI5LDMyYTEsMSwwLDAsMC0xLjQxLDBsLTkuODUsOS44NUwzLjY5LDMuNjlsMzguMTIsMTRMMzIsMjcuNThBMSwxLDAsMCwwLDMyLDI5TDQ2LjU5LDQzLjYyWiI+PC9wYXRoPjwvc3ZnPg==');\n border-color: transparent; /* otherwise we transition from black when .touch-device class is added */\n}\n.replayer-mouse::after {\n content: '';\n display: inline-block;\n width: 20px;\n height: 20px;\n background: rgb(73, 80, 246);\n border-radius: 100%;\n transform: translate(-50%, -50%);\n opacity: 0.3;\n}\n.replayer-mouse.active::after {\n animation: click 0.2s ease-in-out 1;\n}\n.replayer-mouse.touch-device {\n background-image: none; /* there's no passive cursor on touch-only screens */\n width: 70px;\n height: 70px;\n border-width: 4px;\n border-style: solid;\n border-radius: 100%;\n margin-left: -37px;\n margin-top: -37px;\n border-color: rgba(73, 80, 246, 0);\n transition: left 0s linear, top 0s linear, border-color 0.2s ease-in-out;\n}\n.replayer-mouse.touch-device.touch-active {\n border-color: rgba(73, 80, 246, 1);\n transition: left 0.25s linear, top 0.25s linear, border-color 0.2s ease-in-out;\n}\n.replayer-mouse.touch-device::after {\n opacity: 0; /* there's no passive cursor on touch-only screens */\n}\n.replayer-mouse.touch-device.active::after {\n animation: touch-click 0.2s ease-in-out 1;\n}\n.replayer-mouse-tail {\n position: absolute;\n pointer-events: none;\n}\n\n@keyframes click {\n 0% {\n opacity: 0.3;\n width: 20px;\n height: 20px;\n }\n 50% {\n opacity: 0.5;\n width: 10px;\n height: 10px;\n }\n}\n\n@keyframes touch-click {\n 0% {\n opacity: 0;\n width: 20px;\n height: 20px;\n }\n 50% {\n opacity: 0.5;\n width: 10px;\n height: 10px;\n }\n}\n\n.rr-player {\n position: relative;\n background: white;\n float: left;\n border-radius: 5px;\n box-shadow: 0 24px 48px rgba(17, 16, 62, 0.12);\n}\n\n.rr-player__frame {\n overflow: hidden;\n}\n"],
|
|
5
|
+
"mappings": "AAAA,CAAC,iBACC,SAAU,QACZ,CACA,CAAC,eACC,SAAU,SACV,MAAO,KACP,OAAQ,KACR,WAAY,KAAK,KAAM,MAAM,CAAE,IAAI,KAAM,OACzC,gBAAiB,QACjB,oBAAqB,OAAO,OAC5B,kBAAmB,UACnB,iBAAkB,4pBAClB,aAAc,WAChB,CACA,CAXC,cAWc,OACb,QAAS,GACT,QAAS,aACT,MAAO,KACP,OAAQ,KACR,WAAY,QAnBd,cAoBiB,KACf,UAAW,UAAU,IAAI,CAAE,MAC3B,QAAS,EACX,CACA,CArBC,cAqBc,CAAC,MAAM,OACpB,UAAW,MAAM,IAAK,YAAY,CACpC,CACA,CAxBC,cAwBc,CAAC,aACd,iBAAkB,KAClB,MAAO,KACP,OAAQ,KACR,aAAc,IACd,aAAc,MAhChB,cAiCiB,KACf,YAAa,MACb,WAAY,MACZ,aAAc,UACd,WAAY,KAAK,GAAG,MAAM,CAAE,IAAI,GAAG,MAAM,CAAE,aAAa,IAAK,WAC/D,CACA,CApCC,cAoCc,CAZC,YAYY,CAAC,aAC3B,aAAc,QACd,WAAY,KAAK,KAAM,MAAM,CAAE,IAAI,KAAM,MAAM,CAAE,aAAa,IAAK,WACrE,CACA,CAxCC,cAwCc,CAhBC,YAgBY,OAC1B,QAAS,CACX,CACA,CA3CC,cA2Cc,CAnBC,YAmBY,CAtBZ,MAsBmB,OACjC,UAAW,YAAY,IAAK,YAAY,CAC1C,CACA,CAAC,oBACC,SAAU,SACV,eAAgB,IAClB,CAEA,WA7Ba,MA8BX,GACE,QAAS,GACT,MAAO,KACP,OAAQ,IACV,CACA,IACE,QAAS,GACT,MAAO,KACP,OAAQ,IACV,CACF,CAEA,WApBa,YAqBX,GACE,QAAS,EACT,MAAO,KACP,OAAQ,IACV,CACA,IACE,QAAS,GACT,MAAO,KACP,OAAQ,IACV,CACF,CAEA,CAAC,UACC,SAAU,SACV,WAAY,KACZ,MAAO,KAnFT,cAoFiB,IACf,WAAY,EAAE,KAAK,KAAK,SAC1B,CAEA,CAAC,iBACC,SAAU,MACZ",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -1,33 +1,58 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@highlight-run/rrweb",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-lambda.1",
|
|
4
4
|
"description": "record and replay the web",
|
|
5
5
|
"scripts": {
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
6
|
+
"prepare": "npm run prepack",
|
|
7
|
+
"prepack": "npm run build",
|
|
8
|
+
"retest": "cross-env PUPPETEER_HEADLESS=true yarn retest:headful",
|
|
9
|
+
"retest:headful": "vitest run --exclude test/benchmark",
|
|
10
|
+
"build-and-test": "yarn build && yarn retest",
|
|
11
|
+
"test:headless": "cross-env PUPPETEER_HEADLESS=true yarn build-and-test",
|
|
12
|
+
"test:headful": "cross-env PUPPETEER_HEADLESS=false yarn build-and-test",
|
|
13
|
+
"test": "yarn test:headless",
|
|
14
|
+
"test:watch": "yarn build && cross-env PUPPETEER_HEADLESS=true yarn vitest --exclude test/benchmark",
|
|
15
|
+
"test:update": "yarn test:headless --update",
|
|
16
|
+
"retest:update": "cross-env PUPPETEER_HEADLESS=true yarn retest --update",
|
|
17
|
+
"repl": "yarn build && node scripts/repl.js",
|
|
18
|
+
"live-stream": "yarn build && node scripts/stream.js",
|
|
19
|
+
"dev": "vite build --watch",
|
|
20
|
+
"build": "yarn turbo run prepublish",
|
|
21
|
+
"check-types": "tsc -noEmit",
|
|
22
|
+
"prepublish": "tsc -noEmit && vite build",
|
|
23
|
+
"lint": "yarn eslint src",
|
|
24
|
+
"benchmark": "vitest run --maxConcurrency 1 --no-file-parallelism test/benchmark"
|
|
17
25
|
},
|
|
26
|
+
"type": "module",
|
|
18
27
|
"repository": {
|
|
19
28
|
"type": "git",
|
|
20
|
-
"url": "git+ssh://git@github.com/
|
|
29
|
+
"url": "git+ssh://git@github.com/rrweb-io/rrweb.git"
|
|
21
30
|
},
|
|
22
31
|
"keywords": [
|
|
23
|
-
"rrweb"
|
|
32
|
+
"@highlight-run/rrweb"
|
|
24
33
|
],
|
|
25
|
-
"main": "dist/
|
|
26
|
-
"
|
|
27
|
-
"
|
|
34
|
+
"main": "./dist/rrweb.umd.cjs",
|
|
35
|
+
"module": "./dist/rrweb.js",
|
|
36
|
+
"unpkg": "./dist/rrweb.umd.cjs",
|
|
37
|
+
"typings": "dist/rrweb.d.ts",
|
|
38
|
+
"exports": {
|
|
39
|
+
".": {
|
|
40
|
+
"import": {
|
|
41
|
+
"types": "./dist/rrweb.d.ts",
|
|
42
|
+
"default": "./dist/rrweb.js"
|
|
43
|
+
},
|
|
44
|
+
"require": {
|
|
45
|
+
"types": "./dist/rrweb.d.cts",
|
|
46
|
+
"default": "./dist/rrweb.cjs"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"./dist/style.css": "./dist/style.css"
|
|
50
|
+
},
|
|
28
51
|
"files": [
|
|
29
|
-
"dist"
|
|
52
|
+
"dist",
|
|
53
|
+
"package.json"
|
|
30
54
|
],
|
|
55
|
+
"sideEffects": false,
|
|
31
56
|
"author": "yanzhen@smartx.com",
|
|
32
57
|
"license": "MIT",
|
|
33
58
|
"bugs": {
|
|
@@ -35,53 +60,34 @@
|
|
|
35
60
|
},
|
|
36
61
|
"homepage": "https://github.com/rrweb-io/rrweb#readme",
|
|
37
62
|
"devDependencies": {
|
|
38
|
-
"@
|
|
39
|
-
"@types/
|
|
40
|
-
"@types/
|
|
41
|
-
"@types/
|
|
42
|
-
"@types/
|
|
43
|
-
"
|
|
44
|
-
"@types/puppeteer": "^5.4.3",
|
|
45
|
-
"chai": "^4.2.0",
|
|
46
|
-
"cross-env": "^5.2.0",
|
|
47
|
-
"css-loader": "^5.0.1",
|
|
63
|
+
"@types/dom-mediacapture-transform": "0.1.4",
|
|
64
|
+
"@types/inquirer": "^8.2.1",
|
|
65
|
+
"@types/jest-image-snapshot": "^6.1.0",
|
|
66
|
+
"@types/node": "^18.15.11",
|
|
67
|
+
"@types/offscreencanvas": "^2019.6.4",
|
|
68
|
+
"construct-style-sheets-polyfill": "^3.1.0",
|
|
48
69
|
"fast-mhtml": "^1.1.9",
|
|
70
|
+
"identity-obj-proxy": "^3.0.0",
|
|
49
71
|
"ignore-styles": "^5.0.1",
|
|
50
|
-
"inquirer": "^
|
|
51
|
-
"jest-snapshot": "^
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"rollup-plugin-commonjs": "^9.2.0",
|
|
61
|
-
"rollup-plugin-node-resolve": "^3.4.0",
|
|
62
|
-
"rollup-plugin-postcss": "^3.1.1",
|
|
63
|
-
"rollup-plugin-rename-node-modules": "^1.1.0",
|
|
64
|
-
"rollup-plugin-terser": "^5.3.0",
|
|
65
|
-
"rollup-plugin-typescript2": "^0.31.2",
|
|
66
|
-
"rollup-plugin-web-worker-loader": "^1.6.1",
|
|
67
|
-
"style-loader": "^2.0.0",
|
|
68
|
-
"ts-loader": "^8.0.14",
|
|
69
|
-
"ts-node": "^7.0.1",
|
|
70
|
-
"tslib": "^1.9.3",
|
|
71
|
-
"tslint": "^4.5.1",
|
|
72
|
-
"typescript": "^3.9.5",
|
|
73
|
-
"webpack": "^5.10.1",
|
|
74
|
-
"webpack-bundle-analyzer": "^4.4.2",
|
|
75
|
-
"webpack-cli": "^4.2.0",
|
|
76
|
-
"webpack-dev-server": "^3.11.0",
|
|
77
|
-
"webpack-merge": "^5.7.0"
|
|
72
|
+
"inquirer": "^9.0.0",
|
|
73
|
+
"jest-image-snapshot": "^6.2.0",
|
|
74
|
+
"puppeteer": "^20.9.0",
|
|
75
|
+
"simple-peer-light": "^9.10.0",
|
|
76
|
+
"ts-node": "^10.9.1",
|
|
77
|
+
"tslib": "^2.3.1",
|
|
78
|
+
"turbo": "^2.0.5",
|
|
79
|
+
"typescript": "^5.4.5",
|
|
80
|
+
"vite": "^5.3.1",
|
|
81
|
+
"vite-plugin-dts": "^3.9.1"
|
|
78
82
|
},
|
|
79
83
|
"dependencies": {
|
|
80
|
-
"@
|
|
84
|
+
"@highlight-run/rrdom": "2.0.0-lambda.1",
|
|
85
|
+
"@highlight-run/rrweb-snapshot": "2.0.0-lambda.1",
|
|
86
|
+
"@highlight-run/rrweb-types": "2.0.0-lambda.1",
|
|
87
|
+
"@highlight-run/rrweb-utils": "2.0.0-lambda.1",
|
|
88
|
+
"@types/css-font-loading-module": "0.0.7",
|
|
81
89
|
"@xstate/fsm": "^1.4.0",
|
|
82
90
|
"base64-arraybuffer": "^1.0.1",
|
|
83
|
-
"
|
|
84
|
-
"identity-obj-proxy": "^3.0.0",
|
|
85
|
-
"mitt": "^1.1.3"
|
|
91
|
+
"mitt": "^3.0.0"
|
|
86
92
|
}
|
|
87
|
-
}
|
|
93
|
+
}
|
package/README.zh_CN.md
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<img width="100px" height="100px" src="https://www.rrweb.io/favicon.png">
|
|
3
|
-
</p>
|
|
4
|
-
<p align="center">
|
|
5
|
-
<a href="https://www.rrweb.io/" style="font-weight: bold">Try rrweb</a>
|
|
6
|
-
</p>
|
|
7
|
-
|
|
8
|
-
# rrweb
|
|
9
|
-
|
|
10
|
-
**[rrweb 社区新的征程](http://www.myriptide.com/rrweb-community-cn/)**
|
|
11
|
-
|
|
12
|
-
[](https://join.slack.com/t/rrweb/shared_invite/zt-siwoc6hx-uWay3s2wyG8t5GpZVb8rWg)
|
|
13
|
-

|
|
14
|
-

|
|
15
|
-
[](https://www.jsdelivr.com/package/npm/rrweb)
|
|
16
|
-
|
|
17
|
-
> 我已开通 Github Sponsor, 您可以通过赞助的形式帮助 rrweb 的开发。
|
|
18
|
-
|
|
19
|
-
rrweb 是 'record and replay the web' 的简写,旨在利用现代浏览器所提供的强大 API 录制并回放任意 web 界面中的用户操作。
|
|
20
|
-
|
|
21
|
-
## 指南
|
|
22
|
-
|
|
23
|
-
[**📚 rrweb 使用指南 📚**](./guide.zh_CN.md)
|
|
24
|
-
|
|
25
|
-
[**🍳 场景示例 🍳**](./docs/recipes/index.zh_CN.md)
|
|
26
|
-
|
|
27
|
-
## 项目结构
|
|
28
|
-
|
|
29
|
-
rrweb 主要由 3 部分组成:
|
|
30
|
-
|
|
31
|
-
- **[rrweb-snapshot](https://github.com/rrweb-io/rrweb-snapshot)**,包含 snapshot 和 rebuild 两个功能。snapshot 用于将 DOM 及其状态转化为可序列化的数据结构并添加唯一标识;rebuild 则是将 snapshot 记录的数据结构重建为对应的 DOM。
|
|
32
|
-
- **[rrweb](https://github.com/rrweb-io/rrweb)**,包含 record 和 replay 两个功能。record 用于记录 DOM 中的所有变更(mutation);replay 则是将记录的变更按照对应的时间一一重放。
|
|
33
|
-
- **[rrweb-player](https://github.com/rrweb-io/rrweb-player)**,为 rrweb 提供一套 UI 控件,提供基于 GUI 的暂停、快进、拖拽至任意时间点播放等功能。
|
|
34
|
-
|
|
35
|
-
## Roadmap
|
|
36
|
-
|
|
37
|
-
- rrdom: rrweb 数据专用的 DOM 实现 [#419](https://github.com/rrweb-io/rrweb/issues/419)
|
|
38
|
-
- storage engine: 对大规模 rrweb 数据进行去重
|
|
39
|
-
- 更多的 E2E 测试
|
|
40
|
-
- 在常见场景下对 mutation 数据进行压缩
|
|
41
|
-
- 基于新的插件 API 提供更多插件,包括:
|
|
42
|
-
- XHR 插件
|
|
43
|
-
- fetch 插件
|
|
44
|
-
- GraphQL 插件
|
|
45
|
-
- ...
|
|
46
|
-
|
|
47
|
-
## Internal Design
|
|
48
|
-
|
|
49
|
-
- [序列化](./docs/serialization.zh_CN.md)
|
|
50
|
-
- [增量快照](./docs/observer.zh_CN.md)
|
|
51
|
-
- [回放](./docs/replay.zh_CN.md)
|
|
52
|
-
- [沙盒](./docs/sandbox.zh_CN.md)
|
|
53
|
-
|
|
54
|
-
## Contribute Guide
|
|
55
|
-
|
|
56
|
-
为了保证录制和回放时可以对应到一致的数据结构,rrweb 采用 typescript 开发以提供更强的类型支持。
|
|
57
|
-
|
|
58
|
-
[Typescript 手册](https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html)
|
|
59
|
-
|
|
60
|
-
1. Fork 需要修改的 rrweb 组件仓库
|
|
61
|
-
2. `npm install` 安装所需依赖
|
|
62
|
-
3. 修改代码并通过测试
|
|
63
|
-
4. 提交代码,创建 pull request
|
|
64
|
-
|
|
65
|
-
除了添加集成测试和单元测试之外,rrweb 还提供了交互式的测试工具。
|
|
66
|
-
|
|
67
|
-
[使用 REPL 工具](./guide.zh_CN.md#REPL-工具)
|
|
68
|
-
|
|
69
|
-
## Core Team Members
|
|
70
|
-
|
|
71
|
-
<table>
|
|
72
|
-
<tr>
|
|
73
|
-
<td align="center">
|
|
74
|
-
<a href="https://github.com/Yuyz0112">
|
|
75
|
-
<img
|
|
76
|
-
src="https://avatars.githubusercontent.com/u/13651389?s=100"
|
|
77
|
-
width="100px;"
|
|
78
|
-
alt=""
|
|
79
|
-
/>
|
|
80
|
-
<br /><sub><b>Yuyz0112</b></sub>
|
|
81
|
-
</a>
|
|
82
|
-
</td>
|
|
83
|
-
<td align="center">
|
|
84
|
-
<a href="https://github.com/Mark-Fenng">
|
|
85
|
-
<img
|
|
86
|
-
src="https://avatars.githubusercontent.com/u/27533910?s=100"
|
|
87
|
-
width="100px;"
|
|
88
|
-
alt=""
|
|
89
|
-
/>
|
|
90
|
-
<br /><sub><b>Mark-Fenng</b></sub>
|
|
91
|
-
</a>
|
|
92
|
-
</td>
|
|
93
|
-
<td align="center">
|
|
94
|
-
<a href="https://github.com/eoghanmurray">
|
|
95
|
-
<img
|
|
96
|
-
src="https://avatars.githubusercontent.com/u/156780?s=100"
|
|
97
|
-
width="100px;"
|
|
98
|
-
alt=""
|
|
99
|
-
/>
|
|
100
|
-
<br /><sub><b>eoghanmurray</b></sub>
|
|
101
|
-
</a>
|
|
102
|
-
</td>
|
|
103
|
-
<td align="center">
|
|
104
|
-
<a href="https://github.com/Juice10">
|
|
105
|
-
<img
|
|
106
|
-
src="https://avatars.githubusercontent.com/u/4106?s=100"
|
|
107
|
-
width="100px;"
|
|
108
|
-
alt=""
|
|
109
|
-
/>
|
|
110
|
-
<br /><sub><b>Juice10</b></sub>
|
|
111
|
-
</a>
|
|
112
|
-
</td>
|
|
113
|
-
</tr>
|
|
114
|
-
</table>
|
|
115
|
-
|
|
116
|
-
## Who's using rrweb
|
|
117
|
-
|
|
118
|
-
<p align="center">
|
|
119
|
-
<a href="http://www.smartx.com/" target="_blank">
|
|
120
|
-
<img width="260px" src="https://www.rrweb.io/logos/smartx.png">
|
|
121
|
-
</a>
|
|
122
|
-
</p>
|
package/dist/entries/all.d.ts
DELETED
package/dist/index.css.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://highlightLib/./src/replay/styles/style.css"],"names":[],"mappings":"AAAA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,+CAA+C;EAC/C,wBAAwB;EACxB,kCAAkC;EAClC,4BAA4B;EAC5B,uzBAAuzB;EACvzB,yBAAyB,EAAE,yEAAyE;AACtG;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,mCAAmC;AACrC;AACA;EACE,sBAAsB,EAAE,oDAAoD;EAC5E,WAAW;EACX,YAAY;EACZ,iBAAiB;EACjB,mBAAmB;EACnB,mBAAmB;EACnB,kBAAkB;EAClB,iBAAiB;EACjB,kCAAkC;EAClC,wEAAwE;AAC1E;AACA;EACE,kCAAkC;EAClC,8EAA8E;AAChF;AACA;EACE,UAAU,EAAE,oDAAoD;AAClE;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,kBAAkB;EAClB,oBAAoB;AACtB;;AAEA;EACE;IACE,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,uBAAuB;EACzB;EACA;IACE,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,mBAAmB;EACrB;EACA;IACE,uBAAuB;EACzB;AACF;;AAEA;EACE;IACE,UAAU;IACV,WAAW;IACX,YAAY;EACd;EACA;IACE,YAAY;IACZ,WAAW;IACX,YAAY;EACd;AACF","file":"index.css","sourcesContent":[".replayer-wrapper {\n position: relative;\n}\n.replayer-mouse {\n position: absolute;\n width: 20px;\n height: 20px;\n transition: left 0.05s linear, top 0.05s linear;\n background-size: contain;\n background-position: center center;\n background-repeat: no-repeat;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iNyA1IDE4IDE4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyOCAyOCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgaGVpZ2h0PSIzMDBweCIgd2lkdGg9IjMwMHB4Ij4NCjxwb2x5Z29uIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iOC4yLDIwLjkgOC4yLDQuOSAxOS44LDE2LjUgMTMsMTYuNSAxMi42LDE2LjYgIi8+DQo8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBwb2ludHM9IjE3LjMsMjEuNiAxMy43LDIzLjEgOSwxMiAxMi43LDEwLjUgIi8+DQo8cmVjdCB4PSIxMi41IiB5PSIxMy42IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjkyMjEgLTAuMzg3MSAwLjM4NzEgMC45MjIxIC01Ljc2MDUgNi41OTA5KSIgd2lkdGg9IjIiIGhlaWdodD0iOCIvPg0KPHBvbHlnb24gcG9pbnRzPSI5LjIsNy4zIDkuMiwxOC41IDEyLjIsMTUuNiAxMi42LDE1LjUgMTcuNCwxNS41ICIvPg0KPC9zdmc+DQo=');\n border-color: transparent; /* otherwise we transition from black when .touch-device class is added */\n}\n\n.replayer-mouse::after {\n background: transparent;\n}\n\n.replayer-mouse.active::after {\n animation: click 0.2s ease-in-out 1;\n}\n.replayer-mouse.touch-device {\n background-image: none; /* there's no passive cursor on touch-only screens */\n width: 70px;\n height: 70px;\n border-width: 4px;\n border-style: solid;\n border-radius: 100%;\n margin-left: -37px;\n margin-top: -37px;\n border-color: rgba(73, 80, 246, 0);\n transition: left 0s linear, top 0s linear, border-color 0.2s ease-in-out;\n}\n.replayer-mouse.touch-device.touch-active {\n border-color: rgba(73, 80, 246, 1);\n transition: left 0.25s linear, top 0.25s linear, border-color 0.2s ease-in-out;\n}\n.replayer-mouse.touch-device::after {\n opacity: 0; /* there's no passive cursor on touch-only screens */\n}\n.replayer-mouse.touch-device.active::after {\n animation: touch-click 0.2s ease-in-out 1;\n}\n.replayer-mouse-tail {\n position: absolute;\n pointer-events: none;\n}\n\n@keyframes click {\n 0% {\n opacity: 0.3;\n width: 20px;\n height: 20px;\n background: transparent;\n }\n 75% {\n width: 24px;\n height: 24px;\n opacity: 0.8;\n background: #dc2626;\n }\n 100% {\n background: transparent;\n }\n}\n\n@keyframes touch-click {\n 0% {\n opacity: 0;\n width: 20px;\n height: 20px;\n }\n 50% {\n opacity: 0.5;\n width: 10px;\n height: 10px;\n }\n}\n"],"sourceRoot":""}
|
package/dist/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import record from './record';
|
|
2
|
-
import { Replayer } from './replay';
|
|
3
|
-
import { _mirror } from './utils';
|
|
4
|
-
import * as utils from './utils';
|
|
5
|
-
export { EventType, IncrementalSource, MouseInteractions, ReplayerEvents, HighlightConfiguration, } from './types';
|
|
6
|
-
declare const addCustomEvent: <T>(tag: string, payload: T) => void;
|
|
7
|
-
declare const freezePage: () => void;
|
|
8
|
-
export { record, addCustomEvent, freezePage, Replayer, _mirror as mirror, utils, };
|
|
9
|
-
export { getRecordSequentialIdPlugin } from './plugins/sequential-id/record';
|