@aixa-transformation/pptx-viewer 2.0.2
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 +369 -0
- package/LICENSE +202 -0
- package/NOTICE +18 -0
- package/README.md +249 -0
- package/dist/GLTFLoader-CV33YWNT.js +2613 -0
- package/dist/GLTFLoader-FQJ2I67K.mjs +2611 -0
- package/dist/Model3DScene-5ODZLKJM.mjs +49 -0
- package/dist/Model3DScene-VLHFNN5B.js +51 -0
- package/dist/OrbitControls-HI6CI76Z.mjs +3 -0
- package/dist/OrbitControls-XGY7XEC6.js +12 -0
- package/dist/SmartArt3DScene-3FL5JELA.mjs +333 -0
- package/dist/SmartArt3DScene-7IZ3IJYV.js +335 -0
- package/dist/SurfaceChart3DScene-C6GQQQB7.mjs +77 -0
- package/dist/SurfaceChart3DScene-KHMGQAGP.js +79 -0
- package/dist/chunk-2TOLRBFU.js +27629 -0
- package/dist/chunk-2X72MOPZ.mjs +2796 -0
- package/dist/chunk-6DZX6EAA.mjs +33 -0
- package/dist/chunk-AD2CLKY6.js +92338 -0
- package/dist/chunk-CUUYYYC5.js +2800 -0
- package/dist/chunk-DAKELFNP.js +915 -0
- package/dist/chunk-F2HFXS2Z.mjs +19063 -0
- package/dist/chunk-F3LO2NKI.mjs +913 -0
- package/dist/chunk-HNI6JYAI.js +34591 -0
- package/dist/chunk-IKBO6CZC.js +2 -0
- package/dist/chunk-KVM4DBEU.mjs +91768 -0
- package/dist/chunk-MOEXMRVK.js +19220 -0
- package/dist/chunk-QGM4M3NI.js +37 -0
- package/dist/chunk-SQY54X47.js +43506 -0
- package/dist/chunk-T5U6P2JH.mjs +1 -0
- package/dist/chunk-TB5ZWNMX.mjs +34577 -0
- package/dist/chunk-W5V6CEFL.mjs +43064 -0
- package/dist/chunk-XAVVR6OX.mjs +27204 -0
- package/dist/chunk-Y6FQDUJU.js +1160 -0
- package/dist/chunk-YI3G35EC.mjs +1076 -0
- package/dist/dist-LQJHTLHL.mjs +2 -0
- package/dist/dist-NVA3FEUV.js +2275 -0
- package/dist/i18n.d.ts +2 -0
- package/dist/i18n.js +19 -0
- package/dist/i18n.mjs +2 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.js +135 -0
- package/dist/index.mjs +6 -0
- package/dist/internals.d.ts +1 -0
- package/dist/internals.js +311 -0
- package/dist/internals.mjs +6 -0
- package/dist/pptx-viewer.css +2 -0
- package/dist/presentation.d.ts +1 -0
- package/dist/presentation.js +11 -0
- package/dist/presentation.mjs +2 -0
- package/dist/three.module-HOXVV2KF.mjs +2 -0
- package/dist/three.module-QSJWIYNI.js +1771 -0
- package/dist/viewer/index.d.ts +1 -0
- package/dist/viewer/index.js +76 -0
- package/dist/viewer/index.mjs +7 -0
- package/dist/y-webrtc-DFUKFWCA.mjs +4279 -0
- package/dist/y-webrtc-RRACJ6WX.js +4284 -0
- package/dist/y-websocket-T5R5YGVE.mjs +378 -0
- package/dist/y-websocket-WMSHYIGX.js +384 -0
- package/package.json +141 -0
|
@@ -0,0 +1,1160 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Y = require('yjs');
|
|
4
|
+
|
|
5
|
+
function _interopNamespace(e) {
|
|
6
|
+
if (e && e.__esModule) return e;
|
|
7
|
+
var n = Object.create(null);
|
|
8
|
+
if (e) {
|
|
9
|
+
Object.keys(e).forEach(function (k) {
|
|
10
|
+
if (k !== 'default') {
|
|
11
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
12
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return e[k]; }
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
n.default = e;
|
|
20
|
+
return Object.freeze(n);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
var Y__namespace = /*#__PURE__*/_interopNamespace(Y);
|
|
24
|
+
|
|
25
|
+
// ../../node_modules/lib0/map.js
|
|
26
|
+
var create = () => /* @__PURE__ */ new Map();
|
|
27
|
+
var setIfUndefined = (map3, key, createT) => {
|
|
28
|
+
let set = map3.get(key);
|
|
29
|
+
if (set === void 0) {
|
|
30
|
+
map3.set(key, set = createT());
|
|
31
|
+
}
|
|
32
|
+
return set;
|
|
33
|
+
};
|
|
34
|
+
var map = (m, f) => {
|
|
35
|
+
const res = [];
|
|
36
|
+
for (const [key, value] of m) {
|
|
37
|
+
res.push(f(value, key));
|
|
38
|
+
}
|
|
39
|
+
return res;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// ../../node_modules/lib0/set.js
|
|
43
|
+
var create2 = () => /* @__PURE__ */ new Set();
|
|
44
|
+
|
|
45
|
+
// ../../node_modules/lib0/array.js
|
|
46
|
+
var from = Array.from;
|
|
47
|
+
var every = (arr, f) => {
|
|
48
|
+
for (let i = 0; i < arr.length; i++) {
|
|
49
|
+
if (!f(arr[i], i, arr)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
};
|
|
55
|
+
var some = (arr, f) => {
|
|
56
|
+
for (let i = 0; i < arr.length; i++) {
|
|
57
|
+
if (f(arr[i], i, arr)) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
62
|
+
};
|
|
63
|
+
var unfold = (len, f) => {
|
|
64
|
+
const array = new Array(len);
|
|
65
|
+
for (let i = 0; i < len; i++) {
|
|
66
|
+
array[i] = f(i, array);
|
|
67
|
+
}
|
|
68
|
+
return array;
|
|
69
|
+
};
|
|
70
|
+
var isArray = Array.isArray;
|
|
71
|
+
|
|
72
|
+
// ../../node_modules/lib0/observable.js
|
|
73
|
+
var ObservableV2 = class {
|
|
74
|
+
constructor() {
|
|
75
|
+
this._observers = create();
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @template {keyof EVENTS & string} NAME
|
|
79
|
+
* @param {NAME} name
|
|
80
|
+
* @param {EVENTS[NAME]} f
|
|
81
|
+
*/
|
|
82
|
+
on(name, f) {
|
|
83
|
+
setIfUndefined(
|
|
84
|
+
this._observers,
|
|
85
|
+
/** @type {string} */
|
|
86
|
+
name,
|
|
87
|
+
create2
|
|
88
|
+
).add(f);
|
|
89
|
+
return f;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* @template {keyof EVENTS & string} NAME
|
|
93
|
+
* @param {NAME} name
|
|
94
|
+
* @param {EVENTS[NAME]} f
|
|
95
|
+
*/
|
|
96
|
+
once(name, f) {
|
|
97
|
+
const _f = (...args2) => {
|
|
98
|
+
this.off(
|
|
99
|
+
name,
|
|
100
|
+
/** @type {any} */
|
|
101
|
+
_f
|
|
102
|
+
);
|
|
103
|
+
f(...args2);
|
|
104
|
+
};
|
|
105
|
+
this.on(
|
|
106
|
+
name,
|
|
107
|
+
/** @type {any} */
|
|
108
|
+
_f
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* @template {keyof EVENTS & string} NAME
|
|
113
|
+
* @param {NAME} name
|
|
114
|
+
* @param {EVENTS[NAME]} f
|
|
115
|
+
*/
|
|
116
|
+
off(name, f) {
|
|
117
|
+
const observers = this._observers.get(name);
|
|
118
|
+
if (observers !== void 0) {
|
|
119
|
+
observers.delete(f);
|
|
120
|
+
if (observers.size === 0) {
|
|
121
|
+
this._observers.delete(name);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Emit a named event. All registered event listeners that listen to the
|
|
127
|
+
* specified name will receive the event.
|
|
128
|
+
*
|
|
129
|
+
* @todo This should catch exceptions
|
|
130
|
+
*
|
|
131
|
+
* @template {keyof EVENTS & string} NAME
|
|
132
|
+
* @param {NAME} name The event name.
|
|
133
|
+
* @param {Parameters<EVENTS[NAME]>} args The arguments that are applied to the event listener.
|
|
134
|
+
*/
|
|
135
|
+
emit(name, args2) {
|
|
136
|
+
return from((this._observers.get(name) || create()).values()).forEach((f) => f(...args2));
|
|
137
|
+
}
|
|
138
|
+
destroy() {
|
|
139
|
+
this._observers = create();
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
var Observable = class {
|
|
143
|
+
constructor() {
|
|
144
|
+
this._observers = create();
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* @param {N} name
|
|
148
|
+
* @param {function} f
|
|
149
|
+
*/
|
|
150
|
+
on(name, f) {
|
|
151
|
+
setIfUndefined(this._observers, name, create2).add(f);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* @param {N} name
|
|
155
|
+
* @param {function} f
|
|
156
|
+
*/
|
|
157
|
+
once(name, f) {
|
|
158
|
+
const _f = (...args2) => {
|
|
159
|
+
this.off(name, _f);
|
|
160
|
+
f(...args2);
|
|
161
|
+
};
|
|
162
|
+
this.on(name, _f);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* @param {N} name
|
|
166
|
+
* @param {function} f
|
|
167
|
+
*/
|
|
168
|
+
off(name, f) {
|
|
169
|
+
const observers = this._observers.get(name);
|
|
170
|
+
if (observers !== void 0) {
|
|
171
|
+
observers.delete(f);
|
|
172
|
+
if (observers.size === 0) {
|
|
173
|
+
this._observers.delete(name);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Emit a named event. All registered event listeners that listen to the
|
|
179
|
+
* specified name will receive the event.
|
|
180
|
+
*
|
|
181
|
+
* @todo This should catch exceptions
|
|
182
|
+
*
|
|
183
|
+
* @param {N} name The event name.
|
|
184
|
+
* @param {Array<any>} args The arguments that are applied to the event listener.
|
|
185
|
+
*/
|
|
186
|
+
emit(name, args2) {
|
|
187
|
+
return from((this._observers.get(name) || create()).values()).forEach((f) => f(...args2));
|
|
188
|
+
}
|
|
189
|
+
destroy() {
|
|
190
|
+
this._observers = create();
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
// ../../node_modules/lib0/math.js
|
|
195
|
+
var floor = Math.floor;
|
|
196
|
+
var abs = Math.abs;
|
|
197
|
+
var log10 = Math.log10;
|
|
198
|
+
var min = (a, b) => a < b ? a : b;
|
|
199
|
+
var max = (a, b) => a > b ? a : b;
|
|
200
|
+
var pow = Math.pow;
|
|
201
|
+
var isNegativeZero = (n) => n !== 0 ? n < 0 : 1 / n < 0;
|
|
202
|
+
|
|
203
|
+
// ../../node_modules/lib0/time.js
|
|
204
|
+
var getUnixTime = Date.now;
|
|
205
|
+
|
|
206
|
+
// ../../node_modules/lib0/error.js
|
|
207
|
+
var create3 = (s) => new Error(s);
|
|
208
|
+
var methodUnimplemented = () => {
|
|
209
|
+
throw create3("Method unimplemented");
|
|
210
|
+
};
|
|
211
|
+
var unexpectedCase = () => {
|
|
212
|
+
throw create3("Unexpected case");
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
// ../../node_modules/lib0/binary.js
|
|
216
|
+
var BIT7 = 64;
|
|
217
|
+
var BIT8 = 128;
|
|
218
|
+
var BITS6 = 63;
|
|
219
|
+
var BITS7 = 127;
|
|
220
|
+
var BITS31 = 2147483647;
|
|
221
|
+
|
|
222
|
+
// ../../node_modules/lib0/number.js
|
|
223
|
+
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
|
|
224
|
+
var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER;
|
|
225
|
+
var isInteger = Number.isInteger || ((num) => typeof num === "number" && isFinite(num) && floor(num) === num);
|
|
226
|
+
|
|
227
|
+
// ../../node_modules/lib0/string.js
|
|
228
|
+
var fromCharCode = String.fromCharCode;
|
|
229
|
+
var toLowerCase = (s) => s.toLowerCase();
|
|
230
|
+
var trimLeftRegex = /^\s*/g;
|
|
231
|
+
var trimLeft = (s) => s.replace(trimLeftRegex, "");
|
|
232
|
+
var fromCamelCaseRegex = /([A-Z])/g;
|
|
233
|
+
var fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, (match) => `${separator}${toLowerCase(match)}`));
|
|
234
|
+
var _encodeUtf8Polyfill = (str) => {
|
|
235
|
+
const encodedString = unescape(encodeURIComponent(str));
|
|
236
|
+
const len = encodedString.length;
|
|
237
|
+
const buf = new Uint8Array(len);
|
|
238
|
+
for (let i = 0; i < len; i++) {
|
|
239
|
+
buf[i] = /** @type {number} */
|
|
240
|
+
encodedString.codePointAt(i);
|
|
241
|
+
}
|
|
242
|
+
return buf;
|
|
243
|
+
};
|
|
244
|
+
var utf8TextEncoder = (
|
|
245
|
+
/** @type {TextEncoder} */
|
|
246
|
+
typeof TextEncoder !== "undefined" ? new TextEncoder() : null
|
|
247
|
+
);
|
|
248
|
+
var _encodeUtf8Native = (str) => utf8TextEncoder.encode(str);
|
|
249
|
+
var encodeUtf8 = utf8TextEncoder ? _encodeUtf8Native : _encodeUtf8Polyfill;
|
|
250
|
+
var utf8TextDecoder = typeof TextDecoder === "undefined" ? null : new TextDecoder("utf-8", { fatal: true, ignoreBOM: true });
|
|
251
|
+
if (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {
|
|
252
|
+
utf8TextDecoder = null;
|
|
253
|
+
}
|
|
254
|
+
var repeat = (source, n) => unfold(n, () => source).join("");
|
|
255
|
+
|
|
256
|
+
// ../../node_modules/lib0/encoding.js
|
|
257
|
+
var Encoder = class {
|
|
258
|
+
constructor() {
|
|
259
|
+
this.cpos = 0;
|
|
260
|
+
this.cbuf = new Uint8Array(100);
|
|
261
|
+
this.bufs = [];
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
var createEncoder = () => new Encoder();
|
|
265
|
+
var length = (encoder) => {
|
|
266
|
+
let len = encoder.cpos;
|
|
267
|
+
for (let i = 0; i < encoder.bufs.length; i++) {
|
|
268
|
+
len += encoder.bufs[i].length;
|
|
269
|
+
}
|
|
270
|
+
return len;
|
|
271
|
+
};
|
|
272
|
+
var toUint8Array = (encoder) => {
|
|
273
|
+
const uint8arr = new Uint8Array(length(encoder));
|
|
274
|
+
let curPos = 0;
|
|
275
|
+
for (let i = 0; i < encoder.bufs.length; i++) {
|
|
276
|
+
const d = encoder.bufs[i];
|
|
277
|
+
uint8arr.set(d, curPos);
|
|
278
|
+
curPos += d.length;
|
|
279
|
+
}
|
|
280
|
+
uint8arr.set(new Uint8Array(encoder.cbuf.buffer, 0, encoder.cpos), curPos);
|
|
281
|
+
return uint8arr;
|
|
282
|
+
};
|
|
283
|
+
var verifyLen = (encoder, len) => {
|
|
284
|
+
const bufferLen = encoder.cbuf.length;
|
|
285
|
+
if (bufferLen - encoder.cpos < len) {
|
|
286
|
+
encoder.bufs.push(new Uint8Array(encoder.cbuf.buffer, 0, encoder.cpos));
|
|
287
|
+
encoder.cbuf = new Uint8Array(max(bufferLen, len) * 2);
|
|
288
|
+
encoder.cpos = 0;
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
var write = (encoder, num) => {
|
|
292
|
+
const bufferLen = encoder.cbuf.length;
|
|
293
|
+
if (encoder.cpos === bufferLen) {
|
|
294
|
+
encoder.bufs.push(encoder.cbuf);
|
|
295
|
+
encoder.cbuf = new Uint8Array(bufferLen * 2);
|
|
296
|
+
encoder.cpos = 0;
|
|
297
|
+
}
|
|
298
|
+
encoder.cbuf[encoder.cpos++] = num;
|
|
299
|
+
};
|
|
300
|
+
var writeUint8 = write;
|
|
301
|
+
var writeVarUint = (encoder, num) => {
|
|
302
|
+
while (num > BITS7) {
|
|
303
|
+
write(encoder, BIT8 | BITS7 & num);
|
|
304
|
+
num = floor(num / 128);
|
|
305
|
+
}
|
|
306
|
+
write(encoder, BITS7 & num);
|
|
307
|
+
};
|
|
308
|
+
var writeVarInt = (encoder, num) => {
|
|
309
|
+
const isNegative = isNegativeZero(num);
|
|
310
|
+
if (isNegative) {
|
|
311
|
+
num = -num;
|
|
312
|
+
}
|
|
313
|
+
write(encoder, (num > BITS6 ? BIT8 : 0) | (isNegative ? BIT7 : 0) | BITS6 & num);
|
|
314
|
+
num = floor(num / 64);
|
|
315
|
+
while (num > 0) {
|
|
316
|
+
write(encoder, (num > BITS7 ? BIT8 : 0) | BITS7 & num);
|
|
317
|
+
num = floor(num / 128);
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
var _strBuffer = new Uint8Array(3e4);
|
|
321
|
+
var _maxStrBSize = _strBuffer.length / 3;
|
|
322
|
+
var _writeVarStringNative = (encoder, str) => {
|
|
323
|
+
if (str.length < _maxStrBSize) {
|
|
324
|
+
const written = utf8TextEncoder.encodeInto(str, _strBuffer).written || 0;
|
|
325
|
+
writeVarUint(encoder, written);
|
|
326
|
+
for (let i = 0; i < written; i++) {
|
|
327
|
+
write(encoder, _strBuffer[i]);
|
|
328
|
+
}
|
|
329
|
+
} else {
|
|
330
|
+
writeVarUint8Array(encoder, encodeUtf8(str));
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
var _writeVarStringPolyfill = (encoder, str) => {
|
|
334
|
+
const encodedString = unescape(encodeURIComponent(str));
|
|
335
|
+
const len = encodedString.length;
|
|
336
|
+
writeVarUint(encoder, len);
|
|
337
|
+
for (let i = 0; i < len; i++) {
|
|
338
|
+
write(
|
|
339
|
+
encoder,
|
|
340
|
+
/** @type {number} */
|
|
341
|
+
encodedString.codePointAt(i)
|
|
342
|
+
);
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
var writeVarString = utf8TextEncoder && /** @type {any} */
|
|
346
|
+
utf8TextEncoder.encodeInto ? _writeVarStringNative : _writeVarStringPolyfill;
|
|
347
|
+
var writeUint8Array = (encoder, uint8Array) => {
|
|
348
|
+
const bufferLen = encoder.cbuf.length;
|
|
349
|
+
const cpos = encoder.cpos;
|
|
350
|
+
const leftCopyLen = min(bufferLen - cpos, uint8Array.length);
|
|
351
|
+
const rightCopyLen = uint8Array.length - leftCopyLen;
|
|
352
|
+
encoder.cbuf.set(uint8Array.subarray(0, leftCopyLen), cpos);
|
|
353
|
+
encoder.cpos += leftCopyLen;
|
|
354
|
+
if (rightCopyLen > 0) {
|
|
355
|
+
encoder.bufs.push(encoder.cbuf);
|
|
356
|
+
encoder.cbuf = new Uint8Array(max(bufferLen * 2, rightCopyLen));
|
|
357
|
+
encoder.cbuf.set(uint8Array.subarray(leftCopyLen));
|
|
358
|
+
encoder.cpos = rightCopyLen;
|
|
359
|
+
}
|
|
360
|
+
};
|
|
361
|
+
var writeVarUint8Array = (encoder, uint8Array) => {
|
|
362
|
+
writeVarUint(encoder, uint8Array.byteLength);
|
|
363
|
+
writeUint8Array(encoder, uint8Array);
|
|
364
|
+
};
|
|
365
|
+
var writeOnDataView = (encoder, len) => {
|
|
366
|
+
verifyLen(encoder, len);
|
|
367
|
+
const dview = new DataView(encoder.cbuf.buffer, encoder.cpos, len);
|
|
368
|
+
encoder.cpos += len;
|
|
369
|
+
return dview;
|
|
370
|
+
};
|
|
371
|
+
var writeFloat32 = (encoder, num) => writeOnDataView(encoder, 4).setFloat32(0, num, false);
|
|
372
|
+
var writeFloat64 = (encoder, num) => writeOnDataView(encoder, 8).setFloat64(0, num, false);
|
|
373
|
+
var writeBigInt64 = (encoder, num) => (
|
|
374
|
+
/** @type {any} */
|
|
375
|
+
writeOnDataView(encoder, 8).setBigInt64(0, num, false)
|
|
376
|
+
);
|
|
377
|
+
var floatTestBed = new DataView(new ArrayBuffer(4));
|
|
378
|
+
var isFloat32 = (num) => {
|
|
379
|
+
floatTestBed.setFloat32(0, num);
|
|
380
|
+
return floatTestBed.getFloat32(0) === num;
|
|
381
|
+
};
|
|
382
|
+
var writeAny = (encoder, data) => {
|
|
383
|
+
switch (typeof data) {
|
|
384
|
+
case "string":
|
|
385
|
+
write(encoder, 119);
|
|
386
|
+
writeVarString(encoder, data);
|
|
387
|
+
break;
|
|
388
|
+
case "number":
|
|
389
|
+
if (isInteger(data) && abs(data) <= BITS31) {
|
|
390
|
+
write(encoder, 125);
|
|
391
|
+
writeVarInt(encoder, data);
|
|
392
|
+
} else if (isFloat32(data)) {
|
|
393
|
+
write(encoder, 124);
|
|
394
|
+
writeFloat32(encoder, data);
|
|
395
|
+
} else {
|
|
396
|
+
write(encoder, 123);
|
|
397
|
+
writeFloat64(encoder, data);
|
|
398
|
+
}
|
|
399
|
+
break;
|
|
400
|
+
case "bigint":
|
|
401
|
+
write(encoder, 122);
|
|
402
|
+
writeBigInt64(encoder, data);
|
|
403
|
+
break;
|
|
404
|
+
case "object":
|
|
405
|
+
if (data === null) {
|
|
406
|
+
write(encoder, 126);
|
|
407
|
+
} else if (isArray(data)) {
|
|
408
|
+
write(encoder, 117);
|
|
409
|
+
writeVarUint(encoder, data.length);
|
|
410
|
+
for (let i = 0; i < data.length; i++) {
|
|
411
|
+
writeAny(encoder, data[i]);
|
|
412
|
+
}
|
|
413
|
+
} else if (data instanceof Uint8Array) {
|
|
414
|
+
write(encoder, 116);
|
|
415
|
+
writeVarUint8Array(encoder, data);
|
|
416
|
+
} else {
|
|
417
|
+
write(encoder, 118);
|
|
418
|
+
const keys2 = Object.keys(data);
|
|
419
|
+
writeVarUint(encoder, keys2.length);
|
|
420
|
+
for (let i = 0; i < keys2.length; i++) {
|
|
421
|
+
const key = keys2[i];
|
|
422
|
+
writeVarString(encoder, key);
|
|
423
|
+
writeAny(encoder, data[key]);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
break;
|
|
427
|
+
case "boolean":
|
|
428
|
+
write(encoder, data ? 120 : 121);
|
|
429
|
+
break;
|
|
430
|
+
default:
|
|
431
|
+
write(encoder, 127);
|
|
432
|
+
}
|
|
433
|
+
};
|
|
434
|
+
|
|
435
|
+
// ../../node_modules/lib0/decoding.js
|
|
436
|
+
var errorUnexpectedEndOfArray = create3("Unexpected end of array");
|
|
437
|
+
var errorIntegerOutOfRange = create3("Integer out of Range");
|
|
438
|
+
var Decoder = class {
|
|
439
|
+
/**
|
|
440
|
+
* @param {Uint8Array<Buf>} uint8Array Binary data to decode
|
|
441
|
+
*/
|
|
442
|
+
constructor(uint8Array) {
|
|
443
|
+
this.arr = uint8Array;
|
|
444
|
+
this.pos = 0;
|
|
445
|
+
}
|
|
446
|
+
};
|
|
447
|
+
var createDecoder = (uint8Array) => new Decoder(uint8Array);
|
|
448
|
+
var readUint8Array = (decoder, len) => {
|
|
449
|
+
const view = new Uint8Array(decoder.arr.buffer, decoder.pos + decoder.arr.byteOffset, len);
|
|
450
|
+
decoder.pos += len;
|
|
451
|
+
return view;
|
|
452
|
+
};
|
|
453
|
+
var readVarUint8Array = (decoder) => readUint8Array(decoder, readVarUint(decoder));
|
|
454
|
+
var readUint8 = (decoder) => decoder.arr[decoder.pos++];
|
|
455
|
+
var readVarUint = (decoder) => {
|
|
456
|
+
let num = 0;
|
|
457
|
+
let mult = 1;
|
|
458
|
+
const len = decoder.arr.length;
|
|
459
|
+
while (decoder.pos < len) {
|
|
460
|
+
const r = decoder.arr[decoder.pos++];
|
|
461
|
+
num = num + (r & BITS7) * mult;
|
|
462
|
+
mult *= 128;
|
|
463
|
+
if (r < BIT8) {
|
|
464
|
+
return num;
|
|
465
|
+
}
|
|
466
|
+
if (num > MAX_SAFE_INTEGER) {
|
|
467
|
+
throw errorIntegerOutOfRange;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
throw errorUnexpectedEndOfArray;
|
|
471
|
+
};
|
|
472
|
+
var readVarInt = (decoder) => {
|
|
473
|
+
let r = decoder.arr[decoder.pos++];
|
|
474
|
+
let num = r & BITS6;
|
|
475
|
+
let mult = 64;
|
|
476
|
+
const sign = (r & BIT7) > 0 ? -1 : 1;
|
|
477
|
+
if ((r & BIT8) === 0) {
|
|
478
|
+
return sign * num;
|
|
479
|
+
}
|
|
480
|
+
const len = decoder.arr.length;
|
|
481
|
+
while (decoder.pos < len) {
|
|
482
|
+
r = decoder.arr[decoder.pos++];
|
|
483
|
+
num = num + (r & BITS7) * mult;
|
|
484
|
+
mult *= 128;
|
|
485
|
+
if (r < BIT8) {
|
|
486
|
+
return sign * num;
|
|
487
|
+
}
|
|
488
|
+
if (num > MAX_SAFE_INTEGER) {
|
|
489
|
+
throw errorIntegerOutOfRange;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
throw errorUnexpectedEndOfArray;
|
|
493
|
+
};
|
|
494
|
+
var _readVarStringPolyfill = (decoder) => {
|
|
495
|
+
let remainingLen = readVarUint(decoder);
|
|
496
|
+
if (remainingLen === 0) {
|
|
497
|
+
return "";
|
|
498
|
+
} else {
|
|
499
|
+
let encodedString = String.fromCodePoint(readUint8(decoder));
|
|
500
|
+
if (--remainingLen < 100) {
|
|
501
|
+
while (remainingLen--) {
|
|
502
|
+
encodedString += String.fromCodePoint(readUint8(decoder));
|
|
503
|
+
}
|
|
504
|
+
} else {
|
|
505
|
+
while (remainingLen > 0) {
|
|
506
|
+
const nextLen = remainingLen < 1e4 ? remainingLen : 1e4;
|
|
507
|
+
const bytes = decoder.arr.subarray(decoder.pos, decoder.pos + nextLen);
|
|
508
|
+
decoder.pos += nextLen;
|
|
509
|
+
encodedString += String.fromCodePoint.apply(
|
|
510
|
+
null,
|
|
511
|
+
/** @type {any} */
|
|
512
|
+
bytes
|
|
513
|
+
);
|
|
514
|
+
remainingLen -= nextLen;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
return decodeURIComponent(escape(encodedString));
|
|
518
|
+
}
|
|
519
|
+
};
|
|
520
|
+
var _readVarStringNative = (decoder) => (
|
|
521
|
+
/** @type any */
|
|
522
|
+
utf8TextDecoder.decode(readVarUint8Array(decoder))
|
|
523
|
+
);
|
|
524
|
+
var readVarString = utf8TextDecoder ? _readVarStringNative : _readVarStringPolyfill;
|
|
525
|
+
var readFromDataView = (decoder, len) => {
|
|
526
|
+
const dv = new DataView(decoder.arr.buffer, decoder.arr.byteOffset + decoder.pos, len);
|
|
527
|
+
decoder.pos += len;
|
|
528
|
+
return dv;
|
|
529
|
+
};
|
|
530
|
+
var readFloat32 = (decoder) => readFromDataView(decoder, 4).getFloat32(0, false);
|
|
531
|
+
var readFloat64 = (decoder) => readFromDataView(decoder, 8).getFloat64(0, false);
|
|
532
|
+
var readBigInt64 = (decoder) => (
|
|
533
|
+
/** @type {any} */
|
|
534
|
+
readFromDataView(decoder, 8).getBigInt64(0, false)
|
|
535
|
+
);
|
|
536
|
+
var readAnyLookupTable = [
|
|
537
|
+
(decoder) => void 0,
|
|
538
|
+
// CASE 127: undefined
|
|
539
|
+
(decoder) => null,
|
|
540
|
+
// CASE 126: null
|
|
541
|
+
readVarInt,
|
|
542
|
+
// CASE 125: integer
|
|
543
|
+
readFloat32,
|
|
544
|
+
// CASE 124: float32
|
|
545
|
+
readFloat64,
|
|
546
|
+
// CASE 123: float64
|
|
547
|
+
readBigInt64,
|
|
548
|
+
// CASE 122: bigint
|
|
549
|
+
(decoder) => false,
|
|
550
|
+
// CASE 121: boolean (false)
|
|
551
|
+
(decoder) => true,
|
|
552
|
+
// CASE 120: boolean (true)
|
|
553
|
+
readVarString,
|
|
554
|
+
// CASE 119: string
|
|
555
|
+
(decoder) => {
|
|
556
|
+
const len = readVarUint(decoder);
|
|
557
|
+
const obj = {};
|
|
558
|
+
for (let i = 0; i < len; i++) {
|
|
559
|
+
const key = readVarString(decoder);
|
|
560
|
+
obj[key] = readAny(decoder);
|
|
561
|
+
}
|
|
562
|
+
return obj;
|
|
563
|
+
},
|
|
564
|
+
(decoder) => {
|
|
565
|
+
const len = readVarUint(decoder);
|
|
566
|
+
const arr = [];
|
|
567
|
+
for (let i = 0; i < len; i++) {
|
|
568
|
+
arr.push(readAny(decoder));
|
|
569
|
+
}
|
|
570
|
+
return arr;
|
|
571
|
+
},
|
|
572
|
+
readVarUint8Array
|
|
573
|
+
// CASE 116: Uint8Array
|
|
574
|
+
];
|
|
575
|
+
var readAny = (decoder) => readAnyLookupTable[127 - readUint8(decoder)](decoder);
|
|
576
|
+
|
|
577
|
+
// ../../node_modules/lib0/conditions.js
|
|
578
|
+
var undefinedToNull = (v) => v === void 0 ? null : v;
|
|
579
|
+
|
|
580
|
+
// ../../node_modules/lib0/storage.js
|
|
581
|
+
var VarStoragePolyfill = class {
|
|
582
|
+
constructor() {
|
|
583
|
+
this.map = /* @__PURE__ */ new Map();
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* @param {string} key
|
|
587
|
+
* @param {any} newValue
|
|
588
|
+
*/
|
|
589
|
+
setItem(key, newValue) {
|
|
590
|
+
this.map.set(key, newValue);
|
|
591
|
+
}
|
|
592
|
+
/**
|
|
593
|
+
* @param {string} key
|
|
594
|
+
*/
|
|
595
|
+
getItem(key) {
|
|
596
|
+
return this.map.get(key);
|
|
597
|
+
}
|
|
598
|
+
};
|
|
599
|
+
var _localStorage = new VarStoragePolyfill();
|
|
600
|
+
var usePolyfill = true;
|
|
601
|
+
try {
|
|
602
|
+
if (typeof localStorage !== "undefined" && localStorage) {
|
|
603
|
+
_localStorage = localStorage;
|
|
604
|
+
usePolyfill = false;
|
|
605
|
+
}
|
|
606
|
+
} catch (e) {
|
|
607
|
+
}
|
|
608
|
+
var varStorage = _localStorage;
|
|
609
|
+
var onChange = (eventHandler) => usePolyfill || addEventListener(
|
|
610
|
+
"storage",
|
|
611
|
+
/** @type {any} */
|
|
612
|
+
eventHandler
|
|
613
|
+
);
|
|
614
|
+
var offChange = (eventHandler) => usePolyfill || removeEventListener(
|
|
615
|
+
"storage",
|
|
616
|
+
/** @type {any} */
|
|
617
|
+
eventHandler
|
|
618
|
+
);
|
|
619
|
+
|
|
620
|
+
// ../../node_modules/lib0/trait/equality.js
|
|
621
|
+
var EqualityTraitSymbol = /* @__PURE__ */ Symbol("Equality");
|
|
622
|
+
var equals = (a, b) => a === b || !!a?.[EqualityTraitSymbol]?.(b) || false;
|
|
623
|
+
|
|
624
|
+
// ../../node_modules/lib0/object.js
|
|
625
|
+
var isObject = (o) => typeof o === "object";
|
|
626
|
+
var keys = Object.keys;
|
|
627
|
+
var map2 = (obj, f) => {
|
|
628
|
+
const results = [];
|
|
629
|
+
for (const key in obj) {
|
|
630
|
+
results.push(f(obj[key], key));
|
|
631
|
+
}
|
|
632
|
+
return results;
|
|
633
|
+
};
|
|
634
|
+
var size = (obj) => keys(obj).length;
|
|
635
|
+
var every2 = (obj, f) => {
|
|
636
|
+
for (const key in obj) {
|
|
637
|
+
if (!f(obj[key], key)) {
|
|
638
|
+
return false;
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
return true;
|
|
642
|
+
};
|
|
643
|
+
var hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
|
|
644
|
+
|
|
645
|
+
// ../../node_modules/lib0/function.js
|
|
646
|
+
var nop = () => {
|
|
647
|
+
};
|
|
648
|
+
var equalityDeep = (a, b) => {
|
|
649
|
+
if (a === b) {
|
|
650
|
+
return true;
|
|
651
|
+
}
|
|
652
|
+
if (a == null || b == null || a.constructor !== b.constructor && (a.constructor || Object) !== (b.constructor || Object)) {
|
|
653
|
+
return false;
|
|
654
|
+
}
|
|
655
|
+
if (a[EqualityTraitSymbol] != null) {
|
|
656
|
+
return a[EqualityTraitSymbol](b);
|
|
657
|
+
}
|
|
658
|
+
switch (a.constructor) {
|
|
659
|
+
case ArrayBuffer:
|
|
660
|
+
a = new Uint8Array(a);
|
|
661
|
+
b = new Uint8Array(b);
|
|
662
|
+
// eslint-disable-next-line no-fallthrough
|
|
663
|
+
case Uint8Array: {
|
|
664
|
+
if (a.byteLength !== b.byteLength) {
|
|
665
|
+
return false;
|
|
666
|
+
}
|
|
667
|
+
for (let i = 0; i < a.length; i++) {
|
|
668
|
+
if (a[i] !== b[i]) {
|
|
669
|
+
return false;
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
break;
|
|
673
|
+
}
|
|
674
|
+
case Set: {
|
|
675
|
+
if (a.size !== b.size) {
|
|
676
|
+
return false;
|
|
677
|
+
}
|
|
678
|
+
for (const value of a) {
|
|
679
|
+
if (!b.has(value)) {
|
|
680
|
+
return false;
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
break;
|
|
684
|
+
}
|
|
685
|
+
case Map: {
|
|
686
|
+
if (a.size !== b.size) {
|
|
687
|
+
return false;
|
|
688
|
+
}
|
|
689
|
+
for (const key of a.keys()) {
|
|
690
|
+
if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {
|
|
691
|
+
return false;
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
break;
|
|
695
|
+
}
|
|
696
|
+
case void 0:
|
|
697
|
+
case Object:
|
|
698
|
+
if (size(a) !== size(b)) {
|
|
699
|
+
return false;
|
|
700
|
+
}
|
|
701
|
+
for (const key in a) {
|
|
702
|
+
if (!hasProperty(a, key) || !equalityDeep(a[key], b[key])) {
|
|
703
|
+
return false;
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
break;
|
|
707
|
+
case Array:
|
|
708
|
+
if (a.length !== b.length) {
|
|
709
|
+
return false;
|
|
710
|
+
}
|
|
711
|
+
for (let i = 0; i < a.length; i++) {
|
|
712
|
+
if (!equalityDeep(a[i], b[i])) {
|
|
713
|
+
return false;
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
break;
|
|
717
|
+
default:
|
|
718
|
+
return false;
|
|
719
|
+
}
|
|
720
|
+
return true;
|
|
721
|
+
};
|
|
722
|
+
var isOneOf = (value, options) => options.includes(value);
|
|
723
|
+
|
|
724
|
+
// ../../node_modules/lib0/environment.js
|
|
725
|
+
var isNode = typeof process !== "undefined" && process.release && /node|io\.js/.test(process.release.name) && Object.prototype.toString.call(typeof process !== "undefined" ? process : 0) === "[object process]";
|
|
726
|
+
var isBrowser = typeof window !== "undefined" && typeof document !== "undefined" && !isNode;
|
|
727
|
+
var params;
|
|
728
|
+
var computeParams = () => {
|
|
729
|
+
if (params === void 0) {
|
|
730
|
+
if (isNode) {
|
|
731
|
+
params = create();
|
|
732
|
+
const pargs = process.argv;
|
|
733
|
+
let currParamName = null;
|
|
734
|
+
for (let i = 0; i < pargs.length; i++) {
|
|
735
|
+
const parg = pargs[i];
|
|
736
|
+
if (parg[0] === "-") {
|
|
737
|
+
if (currParamName !== null) {
|
|
738
|
+
params.set(currParamName, "");
|
|
739
|
+
}
|
|
740
|
+
currParamName = parg;
|
|
741
|
+
} else {
|
|
742
|
+
if (currParamName !== null) {
|
|
743
|
+
params.set(currParamName, parg);
|
|
744
|
+
currParamName = null;
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
if (currParamName !== null) {
|
|
749
|
+
params.set(currParamName, "");
|
|
750
|
+
}
|
|
751
|
+
} else if (typeof location === "object") {
|
|
752
|
+
params = create();
|
|
753
|
+
(location.search || "?").slice(1).split("&").forEach((kv) => {
|
|
754
|
+
if (kv.length !== 0) {
|
|
755
|
+
const [key, value] = kv.split("=");
|
|
756
|
+
params.set(`--${fromCamelCase(key, "-")}`, value);
|
|
757
|
+
params.set(`-${fromCamelCase(key, "-")}`, value);
|
|
758
|
+
}
|
|
759
|
+
});
|
|
760
|
+
} else {
|
|
761
|
+
params = create();
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
return params;
|
|
765
|
+
};
|
|
766
|
+
var hasParam = (name) => computeParams().has(name);
|
|
767
|
+
var getVariable = (name) => isNode ? undefinedToNull(process.env[name.toUpperCase().replaceAll("-", "_")]) : undefinedToNull(varStorage.getItem(name));
|
|
768
|
+
var hasConf = (name) => hasParam("--" + name) || getVariable(name) !== null;
|
|
769
|
+
var production = hasConf("production");
|
|
770
|
+
var forceColor = isNode && isOneOf(process.env.FORCE_COLOR, ["true", "1", "2"]);
|
|
771
|
+
var supportsColor = forceColor || !hasParam("--no-colors") && // @todo deprecate --no-colors
|
|
772
|
+
!hasConf("no-color") && (!isNode || process.stdout.isTTY) && (!isNode || hasParam("--color") || getVariable("COLORTERM") !== null || (getVariable("TERM") || "").includes("color"));
|
|
773
|
+
|
|
774
|
+
// ../../node_modules/lib0/buffer.js
|
|
775
|
+
var createUint8ArrayFromLen = (len) => new Uint8Array(len);
|
|
776
|
+
var createUint8ArrayViewFromArrayBuffer = (buffer, byteOffset, length2) => new Uint8Array(buffer, byteOffset, length2);
|
|
777
|
+
var createUint8ArrayFromArrayBuffer = (buffer) => new Uint8Array(buffer);
|
|
778
|
+
var toBase64Browser = (bytes) => {
|
|
779
|
+
let s = "";
|
|
780
|
+
for (let i = 0; i < bytes.byteLength; i++) {
|
|
781
|
+
s += fromCharCode(bytes[i]);
|
|
782
|
+
}
|
|
783
|
+
return btoa(s);
|
|
784
|
+
};
|
|
785
|
+
var toBase64Node = (bytes) => Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength).toString("base64");
|
|
786
|
+
var fromBase64Browser = (s) => {
|
|
787
|
+
const a = atob(s);
|
|
788
|
+
const bytes = createUint8ArrayFromLen(a.length);
|
|
789
|
+
for (let i = 0; i < a.length; i++) {
|
|
790
|
+
bytes[i] = a.charCodeAt(i);
|
|
791
|
+
}
|
|
792
|
+
return bytes;
|
|
793
|
+
};
|
|
794
|
+
var fromBase64Node = (s) => {
|
|
795
|
+
const buf = Buffer.from(s, "base64");
|
|
796
|
+
return createUint8ArrayViewFromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
797
|
+
};
|
|
798
|
+
var toBase64 = isBrowser ? toBase64Browser : toBase64Node;
|
|
799
|
+
var fromBase64 = isBrowser ? fromBase64Browser : fromBase64Node;
|
|
800
|
+
|
|
801
|
+
// ../../node_modules/lib0/broadcastchannel.js
|
|
802
|
+
var channels = /* @__PURE__ */ new Map();
|
|
803
|
+
var LocalStoragePolyfill = class {
|
|
804
|
+
/**
|
|
805
|
+
* @param {string} room
|
|
806
|
+
*/
|
|
807
|
+
constructor(room) {
|
|
808
|
+
this.room = room;
|
|
809
|
+
this.onmessage = null;
|
|
810
|
+
this._onChange = (e) => e.key === room && this.onmessage !== null && this.onmessage({ data: fromBase64(e.newValue || "") });
|
|
811
|
+
onChange(this._onChange);
|
|
812
|
+
}
|
|
813
|
+
/**
|
|
814
|
+
* @param {ArrayBuffer} buf
|
|
815
|
+
*/
|
|
816
|
+
postMessage(buf) {
|
|
817
|
+
varStorage.setItem(this.room, toBase64(createUint8ArrayFromArrayBuffer(buf)));
|
|
818
|
+
}
|
|
819
|
+
close() {
|
|
820
|
+
offChange(this._onChange);
|
|
821
|
+
}
|
|
822
|
+
};
|
|
823
|
+
var BC = typeof BroadcastChannel === "undefined" ? LocalStoragePolyfill : BroadcastChannel;
|
|
824
|
+
var getChannel = (room) => setIfUndefined(channels, room, () => {
|
|
825
|
+
const subs = create2();
|
|
826
|
+
const bc = new BC(room);
|
|
827
|
+
bc.onmessage = (e) => subs.forEach((sub) => sub(e.data, "broadcastchannel"));
|
|
828
|
+
return {
|
|
829
|
+
bc,
|
|
830
|
+
subs
|
|
831
|
+
};
|
|
832
|
+
});
|
|
833
|
+
var subscribe = (room, f) => {
|
|
834
|
+
getChannel(room).subs.add(f);
|
|
835
|
+
return f;
|
|
836
|
+
};
|
|
837
|
+
var unsubscribe = (room, f) => {
|
|
838
|
+
const channel = getChannel(room);
|
|
839
|
+
const unsubscribed = channel.subs.delete(f);
|
|
840
|
+
if (unsubscribed && channel.subs.size === 0) {
|
|
841
|
+
channel.bc.close();
|
|
842
|
+
channels.delete(room);
|
|
843
|
+
}
|
|
844
|
+
return unsubscribed;
|
|
845
|
+
};
|
|
846
|
+
var publish = (room, data, origin = null) => {
|
|
847
|
+
const c = getChannel(room);
|
|
848
|
+
c.bc.postMessage(data);
|
|
849
|
+
c.subs.forEach((sub) => sub(data, origin));
|
|
850
|
+
};
|
|
851
|
+
var messageYjsSyncStep1 = 0;
|
|
852
|
+
var messageYjsSyncStep2 = 1;
|
|
853
|
+
var messageYjsUpdate = 2;
|
|
854
|
+
var writeSyncStep1 = (encoder, doc) => {
|
|
855
|
+
writeVarUint(encoder, messageYjsSyncStep1);
|
|
856
|
+
const sv = Y__namespace.encodeStateVector(doc);
|
|
857
|
+
writeVarUint8Array(encoder, sv);
|
|
858
|
+
};
|
|
859
|
+
var writeSyncStep2 = (encoder, doc, encodedStateVector) => {
|
|
860
|
+
writeVarUint(encoder, messageYjsSyncStep2);
|
|
861
|
+
writeVarUint8Array(encoder, Y__namespace.encodeStateAsUpdate(doc, encodedStateVector));
|
|
862
|
+
};
|
|
863
|
+
var readSyncStep1 = (decoder, encoder, doc) => writeSyncStep2(encoder, doc, readVarUint8Array(decoder));
|
|
864
|
+
var readSyncStep2 = (decoder, doc, transactionOrigin, errorHandler) => {
|
|
865
|
+
try {
|
|
866
|
+
Y__namespace.applyUpdate(doc, readVarUint8Array(decoder), transactionOrigin);
|
|
867
|
+
} catch (error) {
|
|
868
|
+
if (errorHandler != null) errorHandler(
|
|
869
|
+
/** @type {Error} */
|
|
870
|
+
error
|
|
871
|
+
);
|
|
872
|
+
console.error("Caught error while handling a Yjs update", error);
|
|
873
|
+
}
|
|
874
|
+
};
|
|
875
|
+
var writeUpdate = (encoder, update) => {
|
|
876
|
+
writeVarUint(encoder, messageYjsUpdate);
|
|
877
|
+
writeVarUint8Array(encoder, update);
|
|
878
|
+
};
|
|
879
|
+
var readUpdate = readSyncStep2;
|
|
880
|
+
var readSyncMessage = (decoder, encoder, doc, transactionOrigin, errorHandler) => {
|
|
881
|
+
const messageType = readVarUint(decoder);
|
|
882
|
+
switch (messageType) {
|
|
883
|
+
case messageYjsSyncStep1:
|
|
884
|
+
readSyncStep1(decoder, encoder, doc);
|
|
885
|
+
break;
|
|
886
|
+
case messageYjsSyncStep2:
|
|
887
|
+
readSyncStep2(decoder, doc, transactionOrigin, errorHandler);
|
|
888
|
+
break;
|
|
889
|
+
case messageYjsUpdate:
|
|
890
|
+
readUpdate(decoder, doc, transactionOrigin, errorHandler);
|
|
891
|
+
break;
|
|
892
|
+
default:
|
|
893
|
+
throw new Error("Unknown message type");
|
|
894
|
+
}
|
|
895
|
+
return messageType;
|
|
896
|
+
};
|
|
897
|
+
var outdatedTimeout = 3e4;
|
|
898
|
+
var Awareness = class extends Observable {
|
|
899
|
+
/**
|
|
900
|
+
* @param {Y.Doc} doc
|
|
901
|
+
*/
|
|
902
|
+
constructor(doc) {
|
|
903
|
+
super();
|
|
904
|
+
this.doc = doc;
|
|
905
|
+
this.clientID = doc.clientID;
|
|
906
|
+
this.states = /* @__PURE__ */ new Map();
|
|
907
|
+
this.meta = /* @__PURE__ */ new Map();
|
|
908
|
+
this._checkInterval = /** @type {any} */
|
|
909
|
+
setInterval(() => {
|
|
910
|
+
const now = getUnixTime();
|
|
911
|
+
if (this.getLocalState() !== null && outdatedTimeout / 2 <= now - /** @type {{lastUpdated:number}} */
|
|
912
|
+
this.meta.get(this.clientID).lastUpdated) {
|
|
913
|
+
this.setLocalState(this.getLocalState());
|
|
914
|
+
}
|
|
915
|
+
const remove = [];
|
|
916
|
+
this.meta.forEach((meta, clientid) => {
|
|
917
|
+
if (clientid !== this.clientID && outdatedTimeout <= now - meta.lastUpdated && this.states.has(clientid)) {
|
|
918
|
+
remove.push(clientid);
|
|
919
|
+
}
|
|
920
|
+
});
|
|
921
|
+
if (remove.length > 0) {
|
|
922
|
+
removeAwarenessStates(this, remove, "timeout");
|
|
923
|
+
}
|
|
924
|
+
}, floor(outdatedTimeout / 10));
|
|
925
|
+
doc.on("destroy", () => {
|
|
926
|
+
this.destroy();
|
|
927
|
+
});
|
|
928
|
+
this.setLocalState({});
|
|
929
|
+
}
|
|
930
|
+
destroy() {
|
|
931
|
+
this.emit("destroy", [this]);
|
|
932
|
+
this.setLocalState(null);
|
|
933
|
+
super.destroy();
|
|
934
|
+
clearInterval(this._checkInterval);
|
|
935
|
+
}
|
|
936
|
+
/**
|
|
937
|
+
* @return {Object<string,any>|null}
|
|
938
|
+
*/
|
|
939
|
+
getLocalState() {
|
|
940
|
+
return this.states.get(this.clientID) || null;
|
|
941
|
+
}
|
|
942
|
+
/**
|
|
943
|
+
* @param {Object<string,any>|null} state
|
|
944
|
+
*/
|
|
945
|
+
setLocalState(state) {
|
|
946
|
+
const clientID = this.clientID;
|
|
947
|
+
const currLocalMeta = this.meta.get(clientID);
|
|
948
|
+
const clock = currLocalMeta === void 0 ? 0 : currLocalMeta.clock + 1;
|
|
949
|
+
const prevState = this.states.get(clientID);
|
|
950
|
+
if (state === null) {
|
|
951
|
+
this.states.delete(clientID);
|
|
952
|
+
} else {
|
|
953
|
+
this.states.set(clientID, state);
|
|
954
|
+
}
|
|
955
|
+
this.meta.set(clientID, {
|
|
956
|
+
clock,
|
|
957
|
+
lastUpdated: getUnixTime()
|
|
958
|
+
});
|
|
959
|
+
const added = [];
|
|
960
|
+
const updated = [];
|
|
961
|
+
const filteredUpdated = [];
|
|
962
|
+
const removed = [];
|
|
963
|
+
if (state === null) {
|
|
964
|
+
removed.push(clientID);
|
|
965
|
+
} else if (prevState == null) {
|
|
966
|
+
if (state != null) {
|
|
967
|
+
added.push(clientID);
|
|
968
|
+
}
|
|
969
|
+
} else {
|
|
970
|
+
updated.push(clientID);
|
|
971
|
+
if (!equalityDeep(prevState, state)) {
|
|
972
|
+
filteredUpdated.push(clientID);
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {
|
|
976
|
+
this.emit("change", [{ added, updated: filteredUpdated, removed }, "local"]);
|
|
977
|
+
}
|
|
978
|
+
this.emit("update", [{ added, updated, removed }, "local"]);
|
|
979
|
+
}
|
|
980
|
+
/**
|
|
981
|
+
* @param {string} field
|
|
982
|
+
* @param {any} value
|
|
983
|
+
*/
|
|
984
|
+
setLocalStateField(field, value) {
|
|
985
|
+
const state = this.getLocalState();
|
|
986
|
+
if (state !== null) {
|
|
987
|
+
this.setLocalState({
|
|
988
|
+
...state,
|
|
989
|
+
[field]: value
|
|
990
|
+
});
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
/**
|
|
994
|
+
* @return {Map<number,Object<string,any>>}
|
|
995
|
+
*/
|
|
996
|
+
getStates() {
|
|
997
|
+
return this.states;
|
|
998
|
+
}
|
|
999
|
+
};
|
|
1000
|
+
var removeAwarenessStates = (awareness, clients, origin) => {
|
|
1001
|
+
const removed = [];
|
|
1002
|
+
for (let i = 0; i < clients.length; i++) {
|
|
1003
|
+
const clientID = clients[i];
|
|
1004
|
+
if (awareness.states.has(clientID)) {
|
|
1005
|
+
awareness.states.delete(clientID);
|
|
1006
|
+
if (clientID === awareness.clientID) {
|
|
1007
|
+
const curMeta = (
|
|
1008
|
+
/** @type {MetaClientState} */
|
|
1009
|
+
awareness.meta.get(clientID)
|
|
1010
|
+
);
|
|
1011
|
+
awareness.meta.set(clientID, {
|
|
1012
|
+
clock: curMeta.clock + 1,
|
|
1013
|
+
lastUpdated: getUnixTime()
|
|
1014
|
+
});
|
|
1015
|
+
}
|
|
1016
|
+
removed.push(clientID);
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
if (removed.length > 0) {
|
|
1020
|
+
awareness.emit("change", [{ added: [], updated: [], removed }, origin]);
|
|
1021
|
+
awareness.emit("update", [{ added: [], updated: [], removed }, origin]);
|
|
1022
|
+
}
|
|
1023
|
+
};
|
|
1024
|
+
var encodeAwarenessUpdate = (awareness, clients, states = awareness.states) => {
|
|
1025
|
+
const len = clients.length;
|
|
1026
|
+
const encoder = createEncoder();
|
|
1027
|
+
writeVarUint(encoder, len);
|
|
1028
|
+
for (let i = 0; i < len; i++) {
|
|
1029
|
+
const clientID = clients[i];
|
|
1030
|
+
const state = states.get(clientID) || null;
|
|
1031
|
+
const clock = (
|
|
1032
|
+
/** @type {MetaClientState} */
|
|
1033
|
+
awareness.meta.get(clientID).clock
|
|
1034
|
+
);
|
|
1035
|
+
writeVarUint(encoder, clientID);
|
|
1036
|
+
writeVarUint(encoder, clock);
|
|
1037
|
+
writeVarString(encoder, JSON.stringify(state));
|
|
1038
|
+
}
|
|
1039
|
+
return toUint8Array(encoder);
|
|
1040
|
+
};
|
|
1041
|
+
var applyAwarenessUpdate = (awareness, update, origin) => {
|
|
1042
|
+
const decoder = createDecoder(update);
|
|
1043
|
+
const timestamp = getUnixTime();
|
|
1044
|
+
const added = [];
|
|
1045
|
+
const updated = [];
|
|
1046
|
+
const filteredUpdated = [];
|
|
1047
|
+
const removed = [];
|
|
1048
|
+
const len = readVarUint(decoder);
|
|
1049
|
+
for (let i = 0; i < len; i++) {
|
|
1050
|
+
const clientID = readVarUint(decoder);
|
|
1051
|
+
let clock = readVarUint(decoder);
|
|
1052
|
+
const state = JSON.parse(readVarString(decoder));
|
|
1053
|
+
const clientMeta = awareness.meta.get(clientID);
|
|
1054
|
+
const prevState = awareness.states.get(clientID);
|
|
1055
|
+
const currClock = clientMeta === void 0 ? 0 : clientMeta.clock;
|
|
1056
|
+
if (currClock < clock || currClock === clock && state === null && awareness.states.has(clientID)) {
|
|
1057
|
+
if (state === null) {
|
|
1058
|
+
if (clientID === awareness.clientID && awareness.getLocalState() != null) {
|
|
1059
|
+
clock++;
|
|
1060
|
+
} else {
|
|
1061
|
+
awareness.states.delete(clientID);
|
|
1062
|
+
}
|
|
1063
|
+
} else {
|
|
1064
|
+
awareness.states.set(clientID, state);
|
|
1065
|
+
}
|
|
1066
|
+
awareness.meta.set(clientID, {
|
|
1067
|
+
clock,
|
|
1068
|
+
lastUpdated: timestamp
|
|
1069
|
+
});
|
|
1070
|
+
if (clientMeta === void 0 && state !== null) {
|
|
1071
|
+
added.push(clientID);
|
|
1072
|
+
} else if (clientMeta !== void 0 && state === null) {
|
|
1073
|
+
removed.push(clientID);
|
|
1074
|
+
} else if (state !== null) {
|
|
1075
|
+
if (!equalityDeep(state, prevState)) {
|
|
1076
|
+
filteredUpdated.push(clientID);
|
|
1077
|
+
}
|
|
1078
|
+
updated.push(clientID);
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {
|
|
1083
|
+
awareness.emit("change", [{
|
|
1084
|
+
added,
|
|
1085
|
+
updated: filteredUpdated,
|
|
1086
|
+
removed
|
|
1087
|
+
}, origin]);
|
|
1088
|
+
}
|
|
1089
|
+
if (added.length > 0 || updated.length > 0 || removed.length > 0) {
|
|
1090
|
+
awareness.emit("update", [{
|
|
1091
|
+
added,
|
|
1092
|
+
updated,
|
|
1093
|
+
removed
|
|
1094
|
+
}, origin]);
|
|
1095
|
+
}
|
|
1096
|
+
};
|
|
1097
|
+
|
|
1098
|
+
exports.Awareness = Awareness;
|
|
1099
|
+
exports.EqualityTraitSymbol = EqualityTraitSymbol;
|
|
1100
|
+
exports.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER;
|
|
1101
|
+
exports.MIN_SAFE_INTEGER = MIN_SAFE_INTEGER;
|
|
1102
|
+
exports.Observable = Observable;
|
|
1103
|
+
exports.ObservableV2 = ObservableV2;
|
|
1104
|
+
exports.applyAwarenessUpdate = applyAwarenessUpdate;
|
|
1105
|
+
exports.create = create;
|
|
1106
|
+
exports.create2 = create2;
|
|
1107
|
+
exports.create3 = create3;
|
|
1108
|
+
exports.createDecoder = createDecoder;
|
|
1109
|
+
exports.createEncoder = createEncoder;
|
|
1110
|
+
exports.encodeAwarenessUpdate = encodeAwarenessUpdate;
|
|
1111
|
+
exports.encodeUtf8 = encodeUtf8;
|
|
1112
|
+
exports.equalityDeep = equalityDeep;
|
|
1113
|
+
exports.equals = equals;
|
|
1114
|
+
exports.every = every;
|
|
1115
|
+
exports.every2 = every2;
|
|
1116
|
+
exports.floor = floor;
|
|
1117
|
+
exports.fromBase64 = fromBase64;
|
|
1118
|
+
exports.fromCharCode = fromCharCode;
|
|
1119
|
+
exports.getUnixTime = getUnixTime;
|
|
1120
|
+
exports.getVariable = getVariable;
|
|
1121
|
+
exports.hasProperty = hasProperty;
|
|
1122
|
+
exports.isArray = isArray;
|
|
1123
|
+
exports.isNode = isNode;
|
|
1124
|
+
exports.isObject = isObject;
|
|
1125
|
+
exports.length = length;
|
|
1126
|
+
exports.log10 = log10;
|
|
1127
|
+
exports.map = map;
|
|
1128
|
+
exports.map2 = map2;
|
|
1129
|
+
exports.messageYjsSyncStep1 = messageYjsSyncStep1;
|
|
1130
|
+
exports.messageYjsSyncStep2 = messageYjsSyncStep2;
|
|
1131
|
+
exports.methodUnimplemented = methodUnimplemented;
|
|
1132
|
+
exports.min = min;
|
|
1133
|
+
exports.nop = nop;
|
|
1134
|
+
exports.pow = pow;
|
|
1135
|
+
exports.production = production;
|
|
1136
|
+
exports.publish = publish;
|
|
1137
|
+
exports.readAny = readAny;
|
|
1138
|
+
exports.readSyncMessage = readSyncMessage;
|
|
1139
|
+
exports.readUint8 = readUint8;
|
|
1140
|
+
exports.readVarString = readVarString;
|
|
1141
|
+
exports.readVarUint = readVarUint;
|
|
1142
|
+
exports.readVarUint8Array = readVarUint8Array;
|
|
1143
|
+
exports.removeAwarenessStates = removeAwarenessStates;
|
|
1144
|
+
exports.repeat = repeat;
|
|
1145
|
+
exports.setIfUndefined = setIfUndefined;
|
|
1146
|
+
exports.some = some;
|
|
1147
|
+
exports.subscribe = subscribe;
|
|
1148
|
+
exports.supportsColor = supportsColor;
|
|
1149
|
+
exports.toBase64 = toBase64;
|
|
1150
|
+
exports.toUint8Array = toUint8Array;
|
|
1151
|
+
exports.unexpectedCase = unexpectedCase;
|
|
1152
|
+
exports.unsubscribe = unsubscribe;
|
|
1153
|
+
exports.writeAny = writeAny;
|
|
1154
|
+
exports.writeSyncStep1 = writeSyncStep1;
|
|
1155
|
+
exports.writeSyncStep2 = writeSyncStep2;
|
|
1156
|
+
exports.writeUint8 = writeUint8;
|
|
1157
|
+
exports.writeUpdate = writeUpdate;
|
|
1158
|
+
exports.writeVarString = writeVarString;
|
|
1159
|
+
exports.writeVarUint = writeVarUint;
|
|
1160
|
+
exports.writeVarUint8Array = writeVarUint8Array;
|