@highlight-run/rrweb 1.2.1 → 2.0.4

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 (191) hide show
  1. package/dist/plugins/console-record.js +454 -0
  2. package/dist/plugins/console-record.min.js +12 -15
  3. package/dist/plugins/console-record.min.js.map +1 -1
  4. package/dist/plugins/console-replay.js +164 -0
  5. package/dist/plugins/console-replay.min.js +5 -0
  6. package/dist/plugins/console-replay.min.js.map +1 -0
  7. package/dist/plugins/sequential-id-record.js +30 -0
  8. package/dist/plugins/sequential-id-record.min.js +2 -0
  9. package/dist/plugins/sequential-id-record.min.js.map +1 -0
  10. package/dist/plugins/sequential-id-replay.js +33 -0
  11. package/dist/plugins/sequential-id-replay.min.js +2 -0
  12. package/dist/plugins/sequential-id-replay.min.js.map +1 -0
  13. package/dist/record/rrweb-record-pack.js +664 -0
  14. package/dist/record/rrweb-record-pack.min.js +4 -0
  15. package/dist/record/rrweb-record-pack.min.js.map +1 -0
  16. package/dist/record/rrweb-record.js +3202 -0
  17. package/dist/record/rrweb-record.min.js +5 -0
  18. package/dist/record/rrweb-record.min.js.map +1 -0
  19. package/dist/replay/rrweb-replay-unpack.js +4926 -0
  20. package/dist/replay/rrweb-replay-unpack.min.js +18 -0
  21. package/dist/replay/rrweb-replay-unpack.min.js.map +1 -0
  22. package/dist/replay/rrweb-replay.js +4518 -0
  23. package/dist/replay/rrweb-replay.min.js +18 -0
  24. package/dist/replay/rrweb-replay.min.js.map +1 -0
  25. package/dist/rrweb-all.js +8889 -0
  26. package/dist/rrweb-all.min.js +29 -0
  27. package/dist/rrweb-all.min.js.map +1 -0
  28. package/dist/rrweb.js +7558 -0
  29. package/dist/rrweb.min.js +6 -17
  30. package/dist/rrweb.min.js.map +1 -1
  31. package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +12 -0
  32. package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +7 -0
  33. package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +31 -0
  34. package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +11 -0
  35. package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +18 -0
  36. package/es/rrweb/_virtual/image-bitmap-data-url-worker.js +6 -0
  37. package/es/rrweb/ext/@xstate/fsm/es/index.js +17 -0
  38. package/es/rrweb/ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js +49 -0
  39. package/es/rrweb/ext/fflate/esm/browser.js +777 -0
  40. package/es/rrweb/ext/mitt/dist/mitt.es.js +63 -0
  41. package/es/rrweb/ext/tslib/tslib.es6.js +38 -0
  42. package/es/rrweb/packages/rrdom/es/virtual-dom.js +1099 -0
  43. package/es/rrweb/packages/rrweb/src/entries/all.js +13 -0
  44. package/es/rrweb/packages/rrweb/src/index.js +14 -0
  45. package/es/rrweb/packages/rrweb/src/packer/base.js +3 -0
  46. package/es/rrweb/packages/rrweb/src/packer/pack.js +9 -0
  47. package/es/rrweb/packages/rrweb/src/packer/unpack.js +29 -0
  48. package/es/rrweb/packages/rrweb/src/plugins/console/record/error-stack-parser.js +178 -0
  49. package/es/rrweb/packages/rrweb/src/plugins/console/record/index.js +115 -0
  50. package/es/rrweb/packages/rrweb/src/plugins/console/record/stringify.js +128 -0
  51. package/es/rrweb/packages/rrweb/src/plugins/console/replay/index.js +94 -0
  52. package/es/rrweb/packages/rrweb/src/plugins/sequential-id/record/index.js +22 -0
  53. package/es/rrweb/packages/rrweb/src/plugins/sequential-id/replay/index.js +28 -0
  54. package/es/rrweb/packages/rrweb/src/record/iframe-manager.js +31 -0
  55. package/es/rrweb/packages/rrweb/src/record/index.js +356 -0
  56. package/es/rrweb/packages/rrweb/src/record/mutation.js +491 -0
  57. package/es/rrweb/packages/rrweb/src/record/observer.js +590 -0
  58. package/es/rrweb/packages/rrweb/src/record/observers/canvas/2d.js +49 -0
  59. package/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js +172 -0
  60. package/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas.js +25 -0
  61. package/es/rrweb/packages/rrweb/src/record/observers/canvas/serialize-args.js +123 -0
  62. package/es/rrweb/packages/rrweb/src/record/observers/canvas/webgl.js +59 -0
  63. package/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.js +43 -0
  64. package/es/rrweb/packages/rrweb/src/record/stylesheet-manager.js +31 -0
  65. package/es/rrweb/packages/rrweb/src/replay/canvas/2d.js +29 -0
  66. package/es/rrweb/packages/rrweb/src/replay/canvas/deserialize-args.js +67 -0
  67. package/es/rrweb/packages/rrweb/src/replay/canvas/index.js +43 -0
  68. package/es/rrweb/packages/rrweb/src/replay/canvas/webgl.js +62 -0
  69. package/es/rrweb/packages/rrweb/src/replay/index.js +1555 -0
  70. package/es/rrweb/packages/rrweb/src/replay/machine.js +281 -0
  71. package/es/rrweb/packages/rrweb/src/replay/smoothscroll.js +219 -0
  72. package/es/rrweb/packages/rrweb/src/replay/styles/inject-style.js +8 -0
  73. package/es/rrweb/packages/rrweb/src/replay/timer.js +92 -0
  74. package/es/rrweb/packages/rrweb/src/types.js +75 -0
  75. package/es/rrweb/packages/rrweb/src/utils.js +315 -0
  76. package/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js +1821 -0
  77. package/lib/plugins/console-record.js +492 -0
  78. package/lib/plugins/console-replay.js +218 -0
  79. package/lib/plugins/sequential-id-record.js +27 -0
  80. package/lib/plugins/sequential-id-replay.js +32 -0
  81. package/lib/record/rrweb-record-pack.js +787 -0
  82. package/lib/record/rrweb-record.js +3363 -0
  83. package/lib/replay/rrweb-replay-unpack.js +5075 -0
  84. package/lib/replay/rrweb-replay.js +4665 -0
  85. package/lib/rrweb-all.js +9181 -0
  86. package/lib/rrweb.js +7814 -0
  87. package/package.json +41 -42
  88. package/typings/entries/all.d.ts +6 -0
  89. package/{dist → typings}/entries/record-pack.d.ts +0 -0
  90. package/{dist → typings}/entries/replay-unpack.d.ts +0 -0
  91. package/{dist → typings}/index.d.ts +1 -2
  92. package/{dist → typings}/packer/base.d.ts +1 -1
  93. package/{dist → typings}/packer/index.d.ts +0 -0
  94. package/{dist → typings}/packer/pack.d.ts +0 -0
  95. package/{dist → typings}/packer/unpack.d.ts +0 -0
  96. package/{dist → typings}/plugins/console/record/error-stack-parser.d.ts +0 -0
  97. package/{dist → typings}/plugins/console/record/index.d.ts +4 -3
  98. package/{dist → typings}/plugins/console/record/stringify.d.ts +1 -1
  99. package/{dist → typings}/plugins/console/replay/index.d.ts +2 -2
  100. package/{dist → typings}/plugins/sequential-id/record/index.d.ts +1 -1
  101. package/{dist → typings}/plugins/sequential-id/replay/index.d.ts +1 -1
  102. package/{dist → typings}/record/iframe-manager.d.ts +3 -3
  103. package/{dist/plugins → typings}/record/index.d.ts +9 -9
  104. package/{dist → typings}/record/mutation.d.ts +6 -8
  105. package/typings/record/observer.d.ts +7 -0
  106. package/{dist/plugins → typings}/record/observers/canvas/2d.d.ts +3 -2
  107. package/{dist → typings}/record/observers/canvas/canvas-manager.d.ts +5 -2
  108. package/{dist/plugins → typings}/record/observers/canvas/canvas.d.ts +2 -2
  109. package/typings/record/observers/canvas/serialize-args.d.ts +6 -0
  110. package/{dist/plugins → typings}/record/observers/canvas/webgl.d.ts +3 -2
  111. package/typings/record/observers/canvas/webgl2.d.ts +2 -0
  112. package/typings/record/shadow-dom-manager.d.ts +22 -0
  113. package/typings/record/stylesheet-manager.d.ts +12 -0
  114. package/typings/record/workers/image-bitmap-data-url-worker.d.ts +5 -0
  115. package/{dist → typings}/replay/canvas/2d.d.ts +3 -3
  116. package/typings/replay/canvas/deserialize-args.d.ts +7 -0
  117. package/{dist/plugins → typings}/replay/canvas/index.d.ts +10 -9
  118. package/typings/replay/canvas/webgl.d.ts +9 -0
  119. package/{dist → typings}/replay/index.d.ts +7 -9
  120. package/{dist → typings}/replay/machine.d.ts +0 -0
  121. package/{dist → typings}/replay/smoothscroll.d.ts +0 -0
  122. package/{dist → typings}/replay/styles/inject-style.d.ts +0 -0
  123. package/{dist → typings}/replay/timer.d.ts +0 -0
  124. package/{dist → typings}/rrdom/index.d.ts +0 -0
  125. package/{dist → typings}/rrdom/tree-node.d.ts +0 -0
  126. package/{dist/plugins → typings}/types.d.ts +536 -509
  127. package/typings/utils.d.ts +43 -0
  128. package/CHANGELOG.md +0 -26
  129. package/README.md +0 -124
  130. package/README.zh_CN.md +0 -122
  131. package/dist/entries/all.d.ts +0 -4
  132. package/dist/index.css +0 -82
  133. package/dist/index.css.map +0 -1
  134. package/dist/index.js +0 -3
  135. package/dist/index.js.LICENSE.txt +0 -14
  136. package/dist/index.js.map +0 -1
  137. package/dist/plugins/entries/all.d.ts +0 -4
  138. package/dist/plugins/entries/record-pack.d.ts +0 -2
  139. package/dist/plugins/entries/replay-unpack.d.ts +0 -2
  140. package/dist/plugins/index.d.ts +0 -9
  141. package/dist/plugins/packer/base.d.ts +0 -7
  142. package/dist/plugins/packer/index.d.ts +0 -2
  143. package/dist/plugins/packer/pack.d.ts +0 -2
  144. package/dist/plugins/packer/unpack.d.ts +0 -2
  145. package/dist/plugins/plugins/console/record/error-stack-parser.d.ts +0 -37
  146. package/dist/plugins/plugins/console/record/index.d.ts +0 -41
  147. package/dist/plugins/plugins/console/record/stringify.d.ts +0 -2
  148. package/dist/plugins/plugins/console/replay/index.d.ts +0 -9
  149. package/dist/plugins/plugins/sequential-id/record/index.d.ts +0 -6
  150. package/dist/plugins/plugins/sequential-id/replay/index.d.ts +0 -7
  151. package/dist/plugins/record/iframe-manager.d.ts +0 -13
  152. package/dist/plugins/record/mutation.d.ts +0 -45
  153. package/dist/plugins/record/observer.d.ts +0 -11
  154. package/dist/plugins/record/observers/canvas/canvas-manager.d.ts +0 -32
  155. package/dist/plugins/record/observers/canvas/serialize-args.d.ts +0 -6
  156. package/dist/plugins/record/shadow-dom-manager.d.ts +0 -34
  157. package/dist/plugins/replay/canvas/2d.d.ts +0 -9
  158. package/dist/plugins/replay/canvas/webgl.d.ts +0 -11
  159. package/dist/plugins/replay/index.d.ts +0 -82
  160. package/dist/plugins/replay/machine.d.ts +0 -85
  161. package/dist/plugins/replay/smoothscroll.d.ts +0 -1
  162. package/dist/plugins/replay/styles/inject-style.d.ts +0 -2
  163. package/dist/plugins/replay/timer.d.ts +0 -19
  164. package/dist/plugins/replay/virtual-styles.d.ts +0 -43
  165. package/dist/plugins/rrdom/index.d.ts +0 -1
  166. package/dist/plugins/rrdom/tree-node.d.ts +0 -20
  167. package/dist/plugins/snapshot/css.d.ts +0 -92
  168. package/dist/plugins/snapshot/index.d.ts +0 -5
  169. package/dist/plugins/snapshot/rebuild.d.ts +0 -19
  170. package/dist/plugins/snapshot/snapshot.d.ts +0 -49
  171. package/dist/plugins/snapshot/types.d.ts +0 -99
  172. package/dist/plugins/snapshot/utils.d.ts +0 -11
  173. package/dist/plugins/utils.d.ts +0 -71
  174. package/dist/record/index.d.ts +0 -9
  175. package/dist/record/observer.d.ts +0 -11
  176. package/dist/record/observers/canvas/2d.d.ts +0 -2
  177. package/dist/record/observers/canvas/canvas.d.ts +0 -2
  178. package/dist/record/observers/canvas/serialize-args.d.ts +0 -6
  179. package/dist/record/observers/canvas/webgl.d.ts +0 -2
  180. package/dist/record/shadow-dom-manager.d.ts +0 -34
  181. package/dist/replay/canvas/index.d.ts +0 -9
  182. package/dist/replay/canvas/webgl.d.ts +0 -11
  183. package/dist/replay/virtual-styles.d.ts +0 -43
  184. package/dist/snapshot/css.d.ts +0 -92
  185. package/dist/snapshot/index.d.ts +0 -5
  186. package/dist/snapshot/rebuild.d.ts +0 -19
  187. package/dist/snapshot/snapshot.d.ts +0 -49
  188. package/dist/snapshot/types.d.ts +0 -99
  189. package/dist/snapshot/utils.d.ts +0 -11
  190. package/dist/types.d.ts +0 -509
  191. package/dist/utils.d.ts +0 -71
@@ -0,0 +1,787 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var NodeType;
6
+ (function (NodeType) {
7
+ NodeType[NodeType["Document"] = 0] = "Document";
8
+ NodeType[NodeType["DocumentType"] = 1] = "DocumentType";
9
+ NodeType[NodeType["Element"] = 2] = "Element";
10
+ NodeType[NodeType["Text"] = 3] = "Text";
11
+ NodeType[NodeType["CDATA"] = 4] = "CDATA";
12
+ NodeType[NodeType["Comment"] = 5] = "Comment";
13
+ })(NodeType || (NodeType = {}));
14
+
15
+ const DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +
16
+ '\r\n' +
17
+ 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +
18
+ '\r\n' +
19
+ 'or you can use record.mirror to access the mirror instance during recording.';
20
+ let _mirror = {
21
+ map: {},
22
+ getId() {
23
+ console.error(DEPARTED_MIRROR_ACCESS_WARNING);
24
+ return -1;
25
+ },
26
+ getNode() {
27
+ console.error(DEPARTED_MIRROR_ACCESS_WARNING);
28
+ return null;
29
+ },
30
+ removeNodeFromMap() {
31
+ console.error(DEPARTED_MIRROR_ACCESS_WARNING);
32
+ },
33
+ has() {
34
+ console.error(DEPARTED_MIRROR_ACCESS_WARNING);
35
+ return false;
36
+ },
37
+ reset() {
38
+ console.error(DEPARTED_MIRROR_ACCESS_WARNING);
39
+ },
40
+ };
41
+ if (typeof window !== 'undefined' && window.Proxy && window.Reflect) {
42
+ _mirror = new Proxy(_mirror, {
43
+ get(target, prop, receiver) {
44
+ if (prop === 'map') {
45
+ console.error(DEPARTED_MIRROR_ACCESS_WARNING);
46
+ }
47
+ return Reflect.get(target, prop, receiver);
48
+ },
49
+ });
50
+ }
51
+
52
+ var EventType;
53
+ (function (EventType) {
54
+ EventType[EventType["DomContentLoaded"] = 0] = "DomContentLoaded";
55
+ EventType[EventType["Load"] = 1] = "Load";
56
+ EventType[EventType["FullSnapshot"] = 2] = "FullSnapshot";
57
+ EventType[EventType["IncrementalSnapshot"] = 3] = "IncrementalSnapshot";
58
+ EventType[EventType["Meta"] = 4] = "Meta";
59
+ EventType[EventType["Custom"] = 5] = "Custom";
60
+ EventType[EventType["Plugin"] = 6] = "Plugin";
61
+ })(EventType || (EventType = {}));
62
+ var IncrementalSource;
63
+ (function (IncrementalSource) {
64
+ IncrementalSource[IncrementalSource["Mutation"] = 0] = "Mutation";
65
+ IncrementalSource[IncrementalSource["MouseMove"] = 1] = "MouseMove";
66
+ IncrementalSource[IncrementalSource["MouseInteraction"] = 2] = "MouseInteraction";
67
+ IncrementalSource[IncrementalSource["Scroll"] = 3] = "Scroll";
68
+ IncrementalSource[IncrementalSource["ViewportResize"] = 4] = "ViewportResize";
69
+ IncrementalSource[IncrementalSource["Input"] = 5] = "Input";
70
+ IncrementalSource[IncrementalSource["TouchMove"] = 6] = "TouchMove";
71
+ IncrementalSource[IncrementalSource["MediaInteraction"] = 7] = "MediaInteraction";
72
+ IncrementalSource[IncrementalSource["StyleSheetRule"] = 8] = "StyleSheetRule";
73
+ IncrementalSource[IncrementalSource["CanvasMutation"] = 9] = "CanvasMutation";
74
+ IncrementalSource[IncrementalSource["Font"] = 10] = "Font";
75
+ IncrementalSource[IncrementalSource["Log"] = 11] = "Log";
76
+ IncrementalSource[IncrementalSource["Drag"] = 12] = "Drag";
77
+ IncrementalSource[IncrementalSource["StyleDeclaration"] = 13] = "StyleDeclaration";
78
+ })(IncrementalSource || (IncrementalSource = {}));
79
+ var MouseInteractions;
80
+ (function (MouseInteractions) {
81
+ MouseInteractions[MouseInteractions["MouseUp"] = 0] = "MouseUp";
82
+ MouseInteractions[MouseInteractions["MouseDown"] = 1] = "MouseDown";
83
+ MouseInteractions[MouseInteractions["Click"] = 2] = "Click";
84
+ MouseInteractions[MouseInteractions["ContextMenu"] = 3] = "ContextMenu";
85
+ MouseInteractions[MouseInteractions["DblClick"] = 4] = "DblClick";
86
+ MouseInteractions[MouseInteractions["Focus"] = 5] = "Focus";
87
+ MouseInteractions[MouseInteractions["Blur"] = 6] = "Blur";
88
+ MouseInteractions[MouseInteractions["TouchStart"] = 7] = "TouchStart";
89
+ MouseInteractions[MouseInteractions["TouchMove_Departed"] = 8] = "TouchMove_Departed";
90
+ MouseInteractions[MouseInteractions["TouchEnd"] = 9] = "TouchEnd";
91
+ MouseInteractions[MouseInteractions["TouchCancel"] = 10] = "TouchCancel";
92
+ })(MouseInteractions || (MouseInteractions = {}));
93
+ var CanvasContext;
94
+ (function (CanvasContext) {
95
+ CanvasContext[CanvasContext["2D"] = 0] = "2D";
96
+ CanvasContext[CanvasContext["WebGL"] = 1] = "WebGL";
97
+ CanvasContext[CanvasContext["WebGL2"] = 2] = "WebGL2";
98
+ })(CanvasContext || (CanvasContext = {}));
99
+ var MediaInteractions;
100
+ (function (MediaInteractions) {
101
+ MediaInteractions[MediaInteractions["Play"] = 0] = "Play";
102
+ MediaInteractions[MediaInteractions["Pause"] = 1] = "Pause";
103
+ MediaInteractions[MediaInteractions["Seeked"] = 2] = "Seeked";
104
+ MediaInteractions[MediaInteractions["VolumeChange"] = 3] = "VolumeChange";
105
+ })(MediaInteractions || (MediaInteractions = {}));
106
+ var ReplayerEvents;
107
+ (function (ReplayerEvents) {
108
+ ReplayerEvents["Start"] = "start";
109
+ ReplayerEvents["Pause"] = "pause";
110
+ ReplayerEvents["Resume"] = "resume";
111
+ ReplayerEvents["Resize"] = "resize";
112
+ ReplayerEvents["Finish"] = "finish";
113
+ ReplayerEvents["FullsnapshotRebuilded"] = "fullsnapshot-rebuilded";
114
+ ReplayerEvents["LoadStylesheetStart"] = "load-stylesheet-start";
115
+ ReplayerEvents["LoadStylesheetEnd"] = "load-stylesheet-end";
116
+ ReplayerEvents["SkipStart"] = "skip-start";
117
+ ReplayerEvents["SkipEnd"] = "skip-end";
118
+ ReplayerEvents["MouseInteraction"] = "mouse-interaction";
119
+ ReplayerEvents["EventCast"] = "event-cast";
120
+ ReplayerEvents["CustomEvent"] = "custom-event";
121
+ ReplayerEvents["Flush"] = "flush";
122
+ ReplayerEvents["StateChange"] = "state-change";
123
+ ReplayerEvents["PlayBack"] = "play-back";
124
+ })(ReplayerEvents || (ReplayerEvents = {}));
125
+
126
+ /*
127
+ * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>
128
+ * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>
129
+ * Released under MIT License
130
+ */
131
+ var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
132
+ // Use a lookup table to find the index.
133
+ var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);
134
+ for (var i$1 = 0; i$1 < chars.length; i$1++) {
135
+ lookup[chars.charCodeAt(i$1)] = i$1;
136
+ }
137
+
138
+ var WorkerClass = null;
139
+
140
+ try {
141
+ var WorkerThreads =
142
+ typeof module !== 'undefined' && typeof module.require === 'function' && module.require('worker_threads') ||
143
+ typeof __non_webpack_require__ === 'function' && __non_webpack_require__('worker_threads') ||
144
+ typeof require === 'function' && require('worker_threads');
145
+ WorkerClass = WorkerThreads.Worker;
146
+ } catch(e) {} // eslint-disable-line
147
+
148
+ function decodeBase64$1(base64, enableUnicode) {
149
+ return Buffer.from(base64, 'base64').toString(enableUnicode ? 'utf16' : 'utf8');
150
+ }
151
+
152
+ function createBase64WorkerFactory$2(base64, sourcemapArg, enableUnicodeArg) {
153
+ var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;
154
+ var enableUnicode = enableUnicodeArg === undefined ? false : enableUnicodeArg;
155
+ var source = decodeBase64$1(base64, enableUnicode);
156
+ var start = source.indexOf('\n', 10) + 1;
157
+ var body = source.substring(start) + (sourcemap ? '\/\/# sourceMappingURL=' + sourcemap : '');
158
+ return function WorkerFactory(options) {
159
+ return new WorkerClass(body, Object.assign({}, options, { eval: true }));
160
+ };
161
+ }
162
+
163
+ function decodeBase64(base64, enableUnicode) {
164
+ var binaryString = atob(base64);
165
+ if (enableUnicode) {
166
+ var binaryView = new Uint8Array(binaryString.length);
167
+ for (var i = 0, n = binaryString.length; i < n; ++i) {
168
+ binaryView[i] = binaryString.charCodeAt(i);
169
+ }
170
+ return String.fromCharCode.apply(null, new Uint16Array(binaryView.buffer));
171
+ }
172
+ return binaryString;
173
+ }
174
+
175
+ function createURL(base64, sourcemapArg, enableUnicodeArg) {
176
+ var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;
177
+ var enableUnicode = enableUnicodeArg === undefined ? false : enableUnicodeArg;
178
+ var source = decodeBase64(base64, enableUnicode);
179
+ var start = source.indexOf('\n', 10) + 1;
180
+ var body = source.substring(start) + (sourcemap ? '\/\/# sourceMappingURL=' + sourcemap : '');
181
+ var blob = new Blob([body], { type: 'application/javascript' });
182
+ return URL.createObjectURL(blob);
183
+ }
184
+
185
+ function createBase64WorkerFactory$1(base64, sourcemapArg, enableUnicodeArg) {
186
+ var url;
187
+ return function WorkerFactory(options) {
188
+ url = url || createURL(base64, sourcemapArg, enableUnicodeArg);
189
+ return new Worker(url, options);
190
+ };
191
+ }
192
+
193
+ var kIsNodeJS = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';
194
+
195
+ function isNodeJS() {
196
+ return kIsNodeJS;
197
+ }
198
+
199
+ function createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {
200
+ if (isNodeJS()) {
201
+ return createBase64WorkerFactory$2(base64, sourcemapArg, enableUnicodeArg);
202
+ }
203
+ return createBase64WorkerFactory$1(base64, sourcemapArg, enableUnicodeArg);
204
+ }
205
+
206
+ createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKCkgewogICAgJ3VzZSBzdHJpY3QnOwoKICAgIC8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KDQogICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55DQogICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLg0KDQogICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEgNCiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkNCiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsDQogICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NDQogICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1INCiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SDQogICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4NCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLw0KDQogICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikgew0KICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0NCiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7DQogICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9DQogICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9DQogICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfQ0KICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpOw0KICAgICAgICB9KTsNCiAgICB9CgogICAgLyoKICAgICAqIGJhc2U2NC1hcnJheWJ1ZmZlciAxLjAuMSA8aHR0cHM6Ly9naXRodWIuY29tL25pa2xhc3ZoL2Jhc2U2NC1hcnJheWJ1ZmZlcj4KICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBOaWtsYXMgdm9uIEhlcnR6ZW4gPGh0dHBzOi8vaGVydHplbi5jb20+CiAgICAgKiBSZWxlYXNlZCB1bmRlciBNSVQgTGljZW5zZQogICAgICovCiAgICB2YXIgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7CiAgICAvLyBVc2UgYSBsb29rdXAgdGFibGUgdG8gZmluZCB0aGUgaW5kZXguCiAgICB2YXIgbG9va3VwID0gdHlwZW9mIFVpbnQ4QXJyYXkgPT09ICd1bmRlZmluZWQnID8gW10gOiBuZXcgVWludDhBcnJheSgyNTYpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgewogICAgICAgIGxvb2t1cFtjaGFycy5jaGFyQ29kZUF0KGkpXSA9IGk7CiAgICB9CiAgICB2YXIgZW5jb2RlID0gZnVuY3Rpb24gKGFycmF5YnVmZmVyKSB7CiAgICAgICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlidWZmZXIpLCBpLCBsZW4gPSBieXRlcy5sZW5ndGgsIGJhc2U2NCA9ICcnOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gMykgewogICAgICAgICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaV0gPj4gMl07CiAgICAgICAgICAgIGJhc2U2NCArPSBjaGFyc1soKGJ5dGVzW2ldICYgMykgPDwgNCkgfCAoYnl0ZXNbaSArIDFdID4+IDQpXTsKICAgICAgICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaSArIDFdICYgMTUpIDw8IDIpIHwgKGJ5dGVzW2kgKyAyXSA+PiA2KV07CiAgICAgICAgICAgIGJhc2U2NCArPSBjaGFyc1tieXRlc1tpICsgMl0gJiA2M107CiAgICAgICAgfQogICAgICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgJz0nOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgJz09JzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGJhc2U2NDsKICAgIH07CgogICAgY29uc3QgbGFzdEJsb2JNYXAgPSBuZXcgTWFwKCk7DQogICAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gbmV3IE1hcCgpOw0KICAgIGZ1bmN0aW9uIGdldFRyYW5zcGFyZW50QmxvYkZvcih3aWR0aCwgaGVpZ2h0KSB7DQogICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7DQogICAgICAgICAgICBjb25zdCBpZCA9IGAke3dpZHRofS0ke2hlaWdodH1gOw0KICAgICAgICAgICAgaWYgKHRyYW5zcGFyZW50QmxvYk1hcC5oYXMoaWQpKQ0KICAgICAgICAgICAgICAgIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsNCiAgICAgICAgICAgIGNvbnN0IG9mZnNjcmVlbiA9IG5ldyBPZmZzY3JlZW5DYW52YXMod2lkdGgsIGhlaWdodCk7DQogICAgICAgICAgICBvZmZzY3JlZW4uZ2V0Q29udGV4dCgnMmQnKTsNCiAgICAgICAgICAgIGNvbnN0IGJsb2IgPSB5aWVsZCBvZmZzY3JlZW4uY29udmVydFRvQmxvYigpOw0KICAgICAgICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSB5aWVsZCBibG9iLmFycmF5QnVmZmVyKCk7DQogICAgICAgICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOw0KICAgICAgICAgICAgdHJhbnNwYXJlbnRCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsNCiAgICAgICAgICAgIHJldHVybiBiYXNlNjQ7DQogICAgICAgIH0pOw0KICAgIH0NCiAgICBjb25zdCB3b3JrZXIgPSBzZWxmOw0KICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgew0KICAgICAgICAgICAgaWYgKCEoJ09mZnNjcmVlbkNhbnZhcycgaW4gZ2xvYmFsVGhpcykpDQogICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtlci5wb3N0TWVzc2FnZSh7IGlkOiBlLmRhdGEuaWQgfSk7DQogICAgICAgICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQgfSA9IGUuZGF0YTsNCiAgICAgICAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKHdpZHRoLCBoZWlnaHQpOw0KICAgICAgICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsNCiAgICAgICAgICAgIGNvbnN0IGN0eCA9IG9mZnNjcmVlbi5nZXRDb250ZXh0KCcyZCcpOw0KICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOw0KICAgICAgICAgICAgYml0bWFwLmNsb3NlKCk7DQogICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgb2Zmc2NyZWVuLmNvbnZlcnRUb0Jsb2IoKTsNCiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBibG9iLnR5cGU7DQogICAgICAgICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IHlpZWxkIGJsb2IuYXJyYXlCdWZmZXIoKTsNCiAgICAgICAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7DQogICAgICAgICAgICBpZiAoIWxhc3RCbG9iTWFwLmhhcyhpZCkgJiYgKHlpZWxkIHRyYW5zcGFyZW50QmFzZTY0KSA9PT0gYmFzZTY0KSB7DQogICAgICAgICAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOw0KICAgICAgICAgICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChsYXN0QmxvYk1hcC5nZXQoaWQpID09PSBiYXNlNjQpDQogICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtlci5wb3N0TWVzc2FnZSh7IGlkIH0pOw0KICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHsNCiAgICAgICAgICAgICAgICBpZCwNCiAgICAgICAgICAgICAgICB0eXBlLA0KICAgICAgICAgICAgICAgIGJhc2U2NCwNCiAgICAgICAgICAgICAgICB3aWR0aCwNCiAgICAgICAgICAgICAgICBoZWlnaHQsDQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIGxhc3RCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsNCiAgICAgICAgfSk7DQogICAgfTsKCn0pKCk7Cgo=', null, false);
207
+ /* eslint-enable */
208
+
209
+ // DEFLATE is a complex format; to read this code, you should probably check the RFC first:
210
+
211
+ // aliases for shorter compressed code (most minifers don't do this)
212
+ var u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;
213
+ // fixed length extra bits
214
+ var fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);
215
+ // fixed distance extra bits
216
+ // see fleb note
217
+ var fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);
218
+ // code length index map
219
+ var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
220
+ // get base, reverse index map from extra bits
221
+ var freb = function (eb, start) {
222
+ var b = new u16(31);
223
+ for (var i = 0; i < 31; ++i) {
224
+ b[i] = start += 1 << eb[i - 1];
225
+ }
226
+ // numbers here are at max 18 bits
227
+ var r = new u32(b[30]);
228
+ for (var i = 1; i < 30; ++i) {
229
+ for (var j = b[i]; j < b[i + 1]; ++j) {
230
+ r[j] = ((j - b[i]) << 5) | i;
231
+ }
232
+ }
233
+ return [b, r];
234
+ };
235
+ var _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];
236
+ // we can ignore the fact that the other numbers are wrong; they never happen anyway
237
+ fl[28] = 258, revfl[258] = 28;
238
+ var _b = freb(fdeb, 0), revfd = _b[1];
239
+ // map of value to reverse (assuming 16 bits)
240
+ var rev = new u16(32768);
241
+ for (var i = 0; i < 32768; ++i) {
242
+ // reverse table algorithm from SO
243
+ var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);
244
+ x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);
245
+ x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);
246
+ rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;
247
+ }
248
+ // create huffman tree from u8 "map": index -> code length for code index
249
+ // mb (max bits) must be at most 15
250
+ // TODO: optimize/split up?
251
+ var hMap = (function (cd, mb, r) {
252
+ var s = cd.length;
253
+ // index
254
+ var i = 0;
255
+ // u16 "map": index -> # of codes with bit length = index
256
+ var l = new u16(mb);
257
+ // length of cd must be 288 (total # of codes)
258
+ for (; i < s; ++i)
259
+ ++l[cd[i] - 1];
260
+ // u16 "map": index -> minimum code for bit length = index
261
+ var le = new u16(mb);
262
+ for (i = 0; i < mb; ++i) {
263
+ le[i] = (le[i - 1] + l[i - 1]) << 1;
264
+ }
265
+ var co;
266
+ if (r) {
267
+ // u16 "map": index -> number of actual bits, symbol for code
268
+ co = new u16(1 << mb);
269
+ // bits to remove for reverser
270
+ var rvb = 15 - mb;
271
+ for (i = 0; i < s; ++i) {
272
+ // ignore 0 lengths
273
+ if (cd[i]) {
274
+ // num encoding both symbol and bits read
275
+ var sv = (i << 4) | cd[i];
276
+ // free bits
277
+ var r_1 = mb - cd[i];
278
+ // start value
279
+ var v = le[cd[i] - 1]++ << r_1;
280
+ // m is end value
281
+ for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {
282
+ // every 16 bit value starting with the code yields the same result
283
+ co[rev[v] >>> rvb] = sv;
284
+ }
285
+ }
286
+ }
287
+ }
288
+ else {
289
+ co = new u16(s);
290
+ for (i = 0; i < s; ++i)
291
+ co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);
292
+ }
293
+ return co;
294
+ });
295
+ // fixed length tree
296
+ var flt = new u8(288);
297
+ for (var i = 0; i < 144; ++i)
298
+ flt[i] = 8;
299
+ for (var i = 144; i < 256; ++i)
300
+ flt[i] = 9;
301
+ for (var i = 256; i < 280; ++i)
302
+ flt[i] = 7;
303
+ for (var i = 280; i < 288; ++i)
304
+ flt[i] = 8;
305
+ // fixed distance tree
306
+ var fdt = new u8(32);
307
+ for (var i = 0; i < 32; ++i)
308
+ fdt[i] = 5;
309
+ // fixed length map
310
+ var flm = /*#__PURE__*/ hMap(flt, 9, 0);
311
+ // fixed distance map
312
+ var fdm = /*#__PURE__*/ hMap(fdt, 5, 0);
313
+ // get end of byte
314
+ var shft = function (p) { return ((p / 8) >> 0) + (p & 7 && 1); };
315
+ // typed array slice - allows garbage collector to free original reference,
316
+ // while being more compatible than .slice
317
+ var slc = function (v, s, e) {
318
+ if (s == null || s < 0)
319
+ s = 0;
320
+ if (e == null || e > v.length)
321
+ e = v.length;
322
+ // can't use .constructor in case user-supplied
323
+ var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);
324
+ n.set(v.subarray(s, e));
325
+ return n;
326
+ };
327
+ // starting at p, write the minimum number of bits that can hold v to d
328
+ var wbits = function (d, p, v) {
329
+ v <<= p & 7;
330
+ var o = (p / 8) >> 0;
331
+ d[o] |= v;
332
+ d[o + 1] |= v >>> 8;
333
+ };
334
+ // starting at p, write the minimum number of bits (>8) that can hold v to d
335
+ var wbits16 = function (d, p, v) {
336
+ v <<= p & 7;
337
+ var o = (p / 8) >> 0;
338
+ d[o] |= v;
339
+ d[o + 1] |= v >>> 8;
340
+ d[o + 2] |= v >>> 16;
341
+ };
342
+ // creates code lengths from a frequency table
343
+ var hTree = function (d, mb) {
344
+ // Need extra info to make a tree
345
+ var t = [];
346
+ for (var i = 0; i < d.length; ++i) {
347
+ if (d[i])
348
+ t.push({ s: i, f: d[i] });
349
+ }
350
+ var s = t.length;
351
+ var t2 = t.slice();
352
+ if (!s)
353
+ return [new u8(0), 0];
354
+ if (s == 1) {
355
+ var v = new u8(t[0].s + 1);
356
+ v[t[0].s] = 1;
357
+ return [v, 1];
358
+ }
359
+ t.sort(function (a, b) { return a.f - b.f; });
360
+ // after i2 reaches last ind, will be stopped
361
+ // freq must be greater than largest possible number of symbols
362
+ t.push({ s: -1, f: 25001 });
363
+ var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;
364
+ t[0] = { s: -1, f: l.f + r.f, l: l, r: r };
365
+ // efficient algorithm from UZIP.js
366
+ // i0 is lookbehind, i2 is lookahead - after processing two low-freq
367
+ // symbols that combined have high freq, will start processing i2 (high-freq,
368
+ // non-composite) symbols instead
369
+ // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/
370
+ while (i1 != s - 1) {
371
+ l = t[t[i0].f < t[i2].f ? i0++ : i2++];
372
+ r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];
373
+ t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };
374
+ }
375
+ var maxSym = t2[0].s;
376
+ for (var i = 1; i < s; ++i) {
377
+ if (t2[i].s > maxSym)
378
+ maxSym = t2[i].s;
379
+ }
380
+ // code lengths
381
+ var tr = new u16(maxSym + 1);
382
+ // max bits in tree
383
+ var mbt = ln(t[i1 - 1], tr, 0);
384
+ if (mbt > mb) {
385
+ // more algorithms from UZIP.js
386
+ // TODO: find out how this code works (debt)
387
+ // ind debt
388
+ var i = 0, dt = 0;
389
+ // left cost
390
+ var lft = mbt - mb, cst = 1 << lft;
391
+ t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });
392
+ for (; i < s; ++i) {
393
+ var i2_1 = t2[i].s;
394
+ if (tr[i2_1] > mb) {
395
+ dt += cst - (1 << (mbt - tr[i2_1]));
396
+ tr[i2_1] = mb;
397
+ }
398
+ else
399
+ break;
400
+ }
401
+ dt >>>= lft;
402
+ while (dt > 0) {
403
+ var i2_2 = t2[i].s;
404
+ if (tr[i2_2] < mb)
405
+ dt -= 1 << (mb - tr[i2_2]++ - 1);
406
+ else
407
+ ++i;
408
+ }
409
+ for (; i >= 0 && dt; --i) {
410
+ var i2_3 = t2[i].s;
411
+ if (tr[i2_3] == mb) {
412
+ --tr[i2_3];
413
+ ++dt;
414
+ }
415
+ }
416
+ mbt = mb;
417
+ }
418
+ return [new u8(tr), mbt];
419
+ };
420
+ // get the max length and assign length codes
421
+ var ln = function (n, l, d) {
422
+ return n.s == -1
423
+ ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))
424
+ : (l[n.s] = d);
425
+ };
426
+ // length codes generation
427
+ var lc = function (c) {
428
+ var s = c.length;
429
+ // Note that the semicolon was intentional
430
+ while (s && !c[--s])
431
+ ;
432
+ var cl = new u16(++s);
433
+ // ind num streak
434
+ var cli = 0, cln = c[0], cls = 1;
435
+ var w = function (v) { cl[cli++] = v; };
436
+ for (var i = 1; i <= s; ++i) {
437
+ if (c[i] == cln && i != s)
438
+ ++cls;
439
+ else {
440
+ if (!cln && cls > 2) {
441
+ for (; cls > 138; cls -= 138)
442
+ w(32754);
443
+ if (cls > 2) {
444
+ w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);
445
+ cls = 0;
446
+ }
447
+ }
448
+ else if (cls > 3) {
449
+ w(cln), --cls;
450
+ for (; cls > 6; cls -= 6)
451
+ w(8304);
452
+ if (cls > 2)
453
+ w(((cls - 3) << 5) | 8208), cls = 0;
454
+ }
455
+ while (cls--)
456
+ w(cln);
457
+ cls = 1;
458
+ cln = c[i];
459
+ }
460
+ }
461
+ return [cl.subarray(0, cli), s];
462
+ };
463
+ // calculate the length of output from tree, code lengths
464
+ var clen = function (cf, cl) {
465
+ var l = 0;
466
+ for (var i = 0; i < cl.length; ++i)
467
+ l += cf[i] * cl[i];
468
+ return l;
469
+ };
470
+ // writes a fixed block
471
+ // returns the new bit pos
472
+ var wfblk = function (out, pos, dat) {
473
+ // no need to write 00 as type: TypedArray defaults to 0
474
+ var s = dat.length;
475
+ var o = shft(pos + 2);
476
+ out[o] = s & 255;
477
+ out[o + 1] = s >>> 8;
478
+ out[o + 2] = out[o] ^ 255;
479
+ out[o + 3] = out[o + 1] ^ 255;
480
+ for (var i = 0; i < s; ++i)
481
+ out[o + i + 4] = dat[i];
482
+ return (o + 4 + s) * 8;
483
+ };
484
+ // writes a block
485
+ var wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {
486
+ wbits(out, p++, final);
487
+ ++lf[256];
488
+ var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];
489
+ var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];
490
+ var _c = lc(dlt), lclt = _c[0], nlc = _c[1];
491
+ var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];
492
+ var lcfreq = new u16(19);
493
+ for (var i = 0; i < lclt.length; ++i)
494
+ lcfreq[lclt[i] & 31]++;
495
+ for (var i = 0; i < lcdt.length; ++i)
496
+ lcfreq[lcdt[i] & 31]++;
497
+ var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];
498
+ var nlcc = 19;
499
+ for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)
500
+ ;
501
+ var flen = (bl + 5) << 3;
502
+ var ftlen = clen(lf, flt) + clen(df, fdt) + eb;
503
+ var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);
504
+ if (flen <= ftlen && flen <= dtlen)
505
+ return wfblk(out, p, dat.subarray(bs, bs + bl));
506
+ var lm, ll, dm, dl;
507
+ wbits(out, p, 1 + (dtlen < ftlen)), p += 2;
508
+ if (dtlen < ftlen) {
509
+ lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;
510
+ var llm = hMap(lct, mlcb, 0);
511
+ wbits(out, p, nlc - 257);
512
+ wbits(out, p + 5, ndc - 1);
513
+ wbits(out, p + 10, nlcc - 4);
514
+ p += 14;
515
+ for (var i = 0; i < nlcc; ++i)
516
+ wbits(out, p + 3 * i, lct[clim[i]]);
517
+ p += 3 * nlcc;
518
+ var lcts = [lclt, lcdt];
519
+ for (var it = 0; it < 2; ++it) {
520
+ var clct = lcts[it];
521
+ for (var i = 0; i < clct.length; ++i) {
522
+ var len = clct[i] & 31;
523
+ wbits(out, p, llm[len]), p += lct[len];
524
+ if (len > 15)
525
+ wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;
526
+ }
527
+ }
528
+ }
529
+ else {
530
+ lm = flm, ll = flt, dm = fdm, dl = fdt;
531
+ }
532
+ for (var i = 0; i < li; ++i) {
533
+ if (syms[i] > 255) {
534
+ var len = (syms[i] >>> 18) & 31;
535
+ wbits16(out, p, lm[len + 257]), p += ll[len + 257];
536
+ if (len > 7)
537
+ wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];
538
+ var dst = syms[i] & 31;
539
+ wbits16(out, p, dm[dst]), p += dl[dst];
540
+ if (dst > 3)
541
+ wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];
542
+ }
543
+ else {
544
+ wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];
545
+ }
546
+ }
547
+ wbits16(out, p, lm[256]);
548
+ return p + ll[256];
549
+ };
550
+ // deflate options (nice << 13) | chain
551
+ var deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);
552
+ // empty
553
+ var et = /*#__PURE__*/ new u8(0);
554
+ // compresses data into a raw DEFLATE buffer
555
+ var dflt = function (dat, lvl, plvl, pre, post, lst) {
556
+ var s = dat.length;
557
+ var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post);
558
+ // writing to this writes to the output buffer
559
+ var w = o.subarray(pre, o.length - post);
560
+ var pos = 0;
561
+ if (!lvl || s < 8) {
562
+ for (var i = 0; i <= s; i += 65535) {
563
+ // end
564
+ var e = i + 65535;
565
+ if (e < s) {
566
+ // write full block
567
+ pos = wfblk(w, pos, dat.subarray(i, e));
568
+ }
569
+ else {
570
+ // write final block
571
+ w[i] = lst;
572
+ pos = wfblk(w, pos, dat.subarray(i, s));
573
+ }
574
+ }
575
+ }
576
+ else {
577
+ var opt = deo[lvl - 1];
578
+ var n = opt >>> 13, c = opt & 8191;
579
+ var msk_1 = (1 << plvl) - 1;
580
+ // prev 2-byte val map curr 2-byte val map
581
+ var prev = new u16(32768), head = new u16(msk_1 + 1);
582
+ var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;
583
+ var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };
584
+ // 24576 is an arbitrary number of maximum symbols per block
585
+ // 424 buffer for last block
586
+ var syms = new u32(25000);
587
+ // length/literal freq distance freq
588
+ var lf = new u16(288), df = new u16(32);
589
+ // l/lcnt exbits index l/lind waitdx bitpos
590
+ var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;
591
+ for (; i < s; ++i) {
592
+ // hash value
593
+ var hv = hsh(i);
594
+ // index mod 32768
595
+ var imod = i & 32767;
596
+ // previous index with this value
597
+ var pimod = head[hv];
598
+ prev[imod] = pimod;
599
+ head[hv] = imod;
600
+ // We always should modify head and prev, but only add symbols if
601
+ // this data is not yet processed ("wait" for wait index)
602
+ if (wi <= i) {
603
+ // bytes remaining
604
+ var rem = s - i;
605
+ if ((lc_1 > 7000 || li > 24576) && rem > 423) {
606
+ pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);
607
+ li = lc_1 = eb = 0, bs = i;
608
+ for (var j = 0; j < 286; ++j)
609
+ lf[j] = 0;
610
+ for (var j = 0; j < 30; ++j)
611
+ df[j] = 0;
612
+ }
613
+ // len dist chain
614
+ var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;
615
+ if (rem > 2 && hv == hsh(i - dif)) {
616
+ var maxn = Math.min(n, rem) - 1;
617
+ var maxd = Math.min(32767, i);
618
+ // max possible length
619
+ // not capped at dif because decompressors implement "rolling" index population
620
+ var ml = Math.min(258, rem);
621
+ while (dif <= maxd && --ch_1 && imod != pimod) {
622
+ if (dat[i + l] == dat[i + l - dif]) {
623
+ var nl = 0;
624
+ for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)
625
+ ;
626
+ if (nl > l) {
627
+ l = nl, d = dif;
628
+ // break out early when we reach "nice" (we are satisfied enough)
629
+ if (nl > maxn)
630
+ break;
631
+ // now, find the rarest 2-byte sequence within this
632
+ // length of literals and search for that instead.
633
+ // Much faster than just using the start
634
+ var mmd = Math.min(dif, nl - 2);
635
+ var md = 0;
636
+ for (var j = 0; j < mmd; ++j) {
637
+ var ti = (i - dif + j + 32768) & 32767;
638
+ var pti = prev[ti];
639
+ var cd = (ti - pti + 32768) & 32767;
640
+ if (cd > md)
641
+ md = cd, pimod = ti;
642
+ }
643
+ }
644
+ }
645
+ // check the previous match
646
+ imod = pimod, pimod = prev[imod];
647
+ dif += (imod - pimod + 32768) & 32767;
648
+ }
649
+ }
650
+ // d will be nonzero only when a match was found
651
+ if (d) {
652
+ // store both dist and len data in one Uint32
653
+ // Make sure this is recognized as a len/dist with 28th bit (2^28)
654
+ syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];
655
+ var lin = revfl[l] & 31, din = revfd[d] & 31;
656
+ eb += fleb[lin] + fdeb[din];
657
+ ++lf[257 + lin];
658
+ ++df[din];
659
+ wi = i + l;
660
+ ++lc_1;
661
+ }
662
+ else {
663
+ syms[li++] = dat[i];
664
+ ++lf[dat[i]];
665
+ }
666
+ }
667
+ }
668
+ pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);
669
+ // this is the easiest way to avoid needing to maintain state
670
+ if (!lst)
671
+ pos = wfblk(w, pos, et);
672
+ }
673
+ return slc(o, 0, pre + shft(pos) + post);
674
+ };
675
+ // Alder32
676
+ var adler = function () {
677
+ var a = 1, b = 0;
678
+ return {
679
+ p: function (d) {
680
+ // closures have awful performance
681
+ var n = a, m = b;
682
+ var l = d.length;
683
+ for (var i = 0; i != l;) {
684
+ var e = Math.min(i + 5552, l);
685
+ for (; i < e; ++i)
686
+ n += d[i], m += n;
687
+ n %= 65521, m %= 65521;
688
+ }
689
+ a = n, b = m;
690
+ },
691
+ d: function () { return ((a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8)) + ((a & 255) << 23) * 2; }
692
+ };
693
+ };
694
+ // deflate with opts
695
+ var dopt = function (dat, opt, pre, post, st) {
696
+ return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);
697
+ };
698
+ // write bytes
699
+ var wbytes = function (d, b, v) {
700
+ for (; v; ++b)
701
+ d[b] = v, v >>>= 8;
702
+ };
703
+ // zlib header
704
+ var zlh = function (c, o) {
705
+ var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;
706
+ c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);
707
+ };
708
+ /**
709
+ * Compress data with Zlib
710
+ * @param data The data to compress
711
+ * @param opts The compression options
712
+ * @returns The zlib-compressed version of the data
713
+ */
714
+ function zlibSync(data, opts) {
715
+ if (opts === void 0) { opts = {}; }
716
+ var a = adler();
717
+ a.p(data);
718
+ var d = dopt(data, opts, 2, 4);
719
+ return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;
720
+ }
721
+ /**
722
+ * Converts a string into a Uint8Array for use with compression/decompression methods
723
+ * @param str The string to encode
724
+ * @param latin1 Whether or not to interpret the data as Latin-1. This should
725
+ * not need to be true unless decoding a binary string.
726
+ * @returns The string encoded in UTF-8/Latin-1 binary
727
+ */
728
+ function strToU8(str, latin1) {
729
+ var l = str.length;
730
+ if (!latin1 && typeof TextEncoder != 'undefined')
731
+ return new TextEncoder().encode(str);
732
+ var ar = new u8(str.length + (str.length >>> 1));
733
+ var ai = 0;
734
+ var w = function (v) { ar[ai++] = v; };
735
+ for (var i = 0; i < l; ++i) {
736
+ if (ai + 5 > ar.length) {
737
+ var n = new u8(ai + 8 + ((l - i) << 1));
738
+ n.set(ar);
739
+ ar = n;
740
+ }
741
+ var c = str.charCodeAt(i);
742
+ if (c < 128 || latin1)
743
+ w(c);
744
+ else if (c < 2048)
745
+ w(192 | (c >>> 6)), w(128 | (c & 63));
746
+ else if (c > 55295 && c < 57344)
747
+ c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),
748
+ w(240 | (c >>> 18)), w(128 | ((c >>> 12) & 63)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));
749
+ else
750
+ w(224 | (c >>> 12)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));
751
+ }
752
+ return slc(ar, 0, ai);
753
+ }
754
+ /**
755
+ * Converts a Uint8Array to a string
756
+ * @param dat The data to decode to string
757
+ * @param latin1 Whether or not to interpret the data as Latin-1. This should
758
+ * not need to be true unless encoding to binary string.
759
+ * @returns The original UTF-8/Latin-1 string
760
+ */
761
+ function strFromU8(dat, latin1) {
762
+ var r = '';
763
+ if (!latin1 && typeof TextDecoder != 'undefined')
764
+ return new TextDecoder().decode(dat);
765
+ for (var i = 0; i < dat.length;) {
766
+ var c = dat[i++];
767
+ if (c < 128 || latin1)
768
+ r += String.fromCharCode(c);
769
+ else if (c < 224)
770
+ r += String.fromCharCode((c & 31) << 6 | (dat[i++] & 63));
771
+ else if (c < 240)
772
+ r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63));
773
+ else
774
+ c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63)) - 65536,
775
+ r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));
776
+ }
777
+ return r;
778
+ }
779
+
780
+ const MARK = 'v1';
781
+
782
+ const pack = (event) => {
783
+ const _e = Object.assign(Object.assign({}, event), { v: MARK });
784
+ return strFromU8(zlibSync(strToU8(JSON.stringify(_e))), true);
785
+ };
786
+
787
+ exports.pack = pack;