@1agh/maude 0.19.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +7 -0
  2. package/cli/bin/maude.mjs +5 -1
  3. package/cli/commands/design-link.test.mjs +207 -0
  4. package/cli/commands/design.mjs +42 -12
  5. package/cli/commands/doctor.mjs +350 -0
  6. package/cli/commands/doctor.test.mjs +185 -0
  7. package/cli/commands/help.mjs +24 -0
  8. package/cli/commands/hub.mjs +231 -0
  9. package/cli/commands/hub.test.mjs +87 -0
  10. package/cli/lib/config-lint.mjs +141 -0
  11. package/cli/lib/config-lint.test.mjs +117 -0
  12. package/cli/lib/design-link.mjs +216 -0
  13. package/cli/lib/hubs-config.mjs +123 -0
  14. package/cli/lib/hubs-config.test.mjs +100 -0
  15. package/cli/lib/preflight.mjs +232 -0
  16. package/cli/lib/stack-detect.mjs +344 -0
  17. package/cli/lib/stack-detect.test.mjs +121 -0
  18. package/package.json +17 -9
  19. package/plugins/design/dependencies.json +147 -0
  20. package/plugins/design/dependencies.schema.json +107 -0
  21. package/plugins/design/dev-server/ai-banner.tsx +188 -0
  22. package/plugins/design/dev-server/annotations-context-toolbar.tsx +115 -41
  23. package/plugins/design/dev-server/annotations-layer.tsx +256 -107
  24. package/plugins/design/dev-server/api.ts +17 -1
  25. package/plugins/design/dev-server/artboard-marquee.tsx +10 -6
  26. package/plugins/design/dev-server/bin/asset-sweep.sh +180 -0
  27. package/plugins/design/dev-server/bin/preflight.sh +32 -0
  28. package/plugins/design/dev-server/bin/runtime-health.sh +169 -0
  29. package/plugins/design/dev-server/bin/visual-sanity.sh +221 -0
  30. package/plugins/design/dev-server/canvas-lib.tsx +534 -32
  31. package/plugins/design/dev-server/canvas-shell.tsx +479 -29
  32. package/plugins/design/dev-server/client/app.jsx +72 -0
  33. package/plugins/design/dev-server/client/hmr.mjs +28 -0
  34. package/plugins/design/dev-server/collab/ai-activity.ts +127 -0
  35. package/plugins/design/dev-server/collab/git-lifecycle.ts +124 -0
  36. package/plugins/design/dev-server/collab/index.ts +47 -0
  37. package/plugins/design/dev-server/collab/persistence.ts +123 -0
  38. package/plugins/design/dev-server/collab/protocol.ts +108 -0
  39. package/plugins/design/dev-server/collab/registry.ts +110 -0
  40. package/plugins/design/dev-server/collab/room.ts +215 -0
  41. package/plugins/design/dev-server/commands/annotation-strokes-command.ts +127 -0
  42. package/plugins/design/dev-server/commands/equal-spacing-command.ts +28 -0
  43. package/plugins/design/dev-server/commands/move-artboards-command.ts +158 -0
  44. package/plugins/design/dev-server/comments-overlay.tsx +41 -4
  45. package/plugins/design/dev-server/contextual-toolbar.tsx +241 -0
  46. package/plugins/design/dev-server/cursors-overlay.tsx +296 -0
  47. package/plugins/design/dev-server/dist/client.bundle.js +75 -3
  48. package/plugins/design/dev-server/dist/runtime/motion.js +165 -0
  49. package/plugins/design/dev-server/dist/runtime/motion_react.js +409 -0
  50. package/plugins/design/dev-server/dist/runtime/y-protocols_awareness.js +587 -0
  51. package/plugins/design/dev-server/dist/runtime/y-protocols_sync.js +257 -0
  52. package/plugins/design/dev-server/dist/runtime/yjs.js +7107 -0
  53. package/plugins/design/dev-server/equal-spacing-detector.ts +98 -0
  54. package/plugins/design/dev-server/equal-spacing-handles.tsx +289 -0
  55. package/plugins/design/dev-server/export-dialog.tsx +1 -1
  56. package/plugins/design/dev-server/handoff.ts +24 -0
  57. package/plugins/design/dev-server/hmr-broadcast.ts +15 -2
  58. package/plugins/design/dev-server/http.ts +91 -1
  59. package/plugins/design/dev-server/input-router.tsx +52 -2
  60. package/plugins/design/dev-server/marquee-overlay.tsx +282 -0
  61. package/plugins/design/dev-server/participants-chrome.tsx +261 -0
  62. package/plugins/design/dev-server/runtime-bundle.ts +15 -0
  63. package/plugins/design/dev-server/server.ts +78 -11
  64. package/plugins/design/dev-server/test/ai-activity.test.ts +113 -0
  65. package/plugins/design/dev-server/test/annotation-strokes-command.test.ts +149 -0
  66. package/plugins/design/dev-server/test/annotations-layer.test.ts +44 -0
  67. package/plugins/design/dev-server/test/canvas-lib-motion.test.ts +131 -0
  68. package/plugins/design/dev-server/test/collab-annotations-bridge.test.ts +55 -0
  69. package/plugins/design/dev-server/test/collab-bridge.test.ts +81 -0
  70. package/plugins/design/dev-server/test/collab-loopback.test.ts +63 -0
  71. package/plugins/design/dev-server/test/collab-protocol.test.ts +146 -0
  72. package/plugins/design/dev-server/test/collab-room.test.ts +182 -0
  73. package/plugins/design/dev-server/test/collab-stress.test.ts +121 -0
  74. package/plugins/design/dev-server/test/equal-spacing-detector.test.ts +93 -0
  75. package/plugins/design/dev-server/test/git-lifecycle.test.ts +101 -0
  76. package/plugins/design/dev-server/test/input-router.test.ts +87 -1
  77. package/plugins/design/dev-server/test/marquee-overlay.test.ts +94 -0
  78. package/plugins/design/dev-server/test/move-artboards-command.test.ts +108 -0
  79. package/plugins/design/dev-server/test/participants-chrome.test.ts +30 -0
  80. package/plugins/design/dev-server/test/undo-stack.test.ts +211 -0
  81. package/plugins/design/dev-server/test/use-collab.test.ts +71 -0
  82. package/plugins/design/dev-server/test/use-cursor-modifiers.test.ts +59 -0
  83. package/plugins/design/dev-server/test/use-keyboard-discipline.test.ts +27 -0
  84. package/plugins/design/dev-server/test/use-undo-stack.test.tsx +193 -0
  85. package/plugins/design/dev-server/tool-palette.tsx +7 -7
  86. package/plugins/design/dev-server/undo-hud.tsx +95 -0
  87. package/plugins/design/dev-server/undo-stack.ts +240 -0
  88. package/plugins/design/dev-server/use-annotation-resize.tsx +1 -1
  89. package/plugins/design/dev-server/use-artboard-drag.tsx +6 -3
  90. package/plugins/design/dev-server/use-collab.tsx +478 -0
  91. package/plugins/design/dev-server/use-cursor-modifiers.tsx +122 -0
  92. package/plugins/design/dev-server/use-keyboard-discipline.tsx +125 -0
  93. package/plugins/design/dev-server/use-undo-stack.tsx +355 -0
  94. package/plugins/design/dev-server/ws.ts +123 -7
  95. package/plugins/design/templates/_shell.html +51 -6
  96. package/plugins/design/templates/design-system-inspiration/SUB-AGENT-PROMPTS.md +245 -0
  97. package/plugins/design/templates/design-system-inspiration/_MAPPING.md +2 -2
  98. package/plugins/design/templates/design-system-inspiration/core/preview/_components.css.tpl +129 -0
  99. package/plugins/design/templates/design-system-inspiration/core/preview/_motion-readme.md.tpl +63 -0
  100. package/plugins/design/templates/design-system-inspiration/core/preview/motion.css.tpl +106 -0
  101. package/plugins/design/templates/design-system-inspiration/core/preview/motion.tsx.tpl +208 -0
  102. package/plugins/flow/.claude-plugin/config.schema.json +12 -0
  103. package/plugins/flow/dependencies.json +143 -0
  104. package/plugins/flow/dependencies.schema.json +107 -0
  105. /package/plugins/design/templates/design-system-inspiration/core/preview/{motion.html → .archive/motion.html} +0 -0
@@ -0,0 +1,587 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __returnValue = (v) => v;
3
+ function __exportSetter(name, newValue) {
4
+ this[name] = __returnValue.bind(null, newValue);
5
+ }
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true,
11
+ configurable: true,
12
+ set: __exportSetter.bind(all, name)
13
+ });
14
+ };
15
+
16
+ // ../../../node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.30/node_modules/y-protocols/awareness.js
17
+ var exports_awareness = {};
18
+ __export(exports_awareness, {
19
+ removeAwarenessStates: () => removeAwarenessStates,
20
+ outdatedTimeout: () => outdatedTimeout,
21
+ modifyAwarenessUpdate: () => modifyAwarenessUpdate,
22
+ encodeAwarenessUpdate: () => encodeAwarenessUpdate,
23
+ applyAwarenessUpdate: () => applyAwarenessUpdate,
24
+ Awareness: () => Awareness
25
+ });
26
+
27
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/math.js
28
+ var floor = Math.floor;
29
+ var min = (a, b) => a < b ? a : b;
30
+ var max = (a, b) => a > b ? a : b;
31
+
32
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/binary.js
33
+ var BIT8 = 128;
34
+ var BIT18 = 1 << 17;
35
+ var BIT19 = 1 << 18;
36
+ var BIT20 = 1 << 19;
37
+ var BIT21 = 1 << 20;
38
+ var BIT22 = 1 << 21;
39
+ var BIT23 = 1 << 22;
40
+ var BIT24 = 1 << 23;
41
+ var BIT25 = 1 << 24;
42
+ var BIT26 = 1 << 25;
43
+ var BIT27 = 1 << 26;
44
+ var BIT28 = 1 << 27;
45
+ var BIT29 = 1 << 28;
46
+ var BIT30 = 1 << 29;
47
+ var BIT31 = 1 << 30;
48
+ var BIT32 = 1 << 31;
49
+ var BITS7 = 127;
50
+ var BITS17 = BIT18 - 1;
51
+ var BITS18 = BIT19 - 1;
52
+ var BITS19 = BIT20 - 1;
53
+ var BITS20 = BIT21 - 1;
54
+ var BITS21 = BIT22 - 1;
55
+ var BITS22 = BIT23 - 1;
56
+ var BITS23 = BIT24 - 1;
57
+ var BITS24 = BIT25 - 1;
58
+ var BITS25 = BIT26 - 1;
59
+ var BITS26 = BIT27 - 1;
60
+ var BITS27 = BIT28 - 1;
61
+ var BITS28 = BIT29 - 1;
62
+ var BITS29 = BIT30 - 1;
63
+ var BITS30 = BIT31 - 1;
64
+
65
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/number.js
66
+ var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
67
+ var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER;
68
+ var LOWEST_INT32 = 1 << 31;
69
+
70
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/set.js
71
+ var create = () => new Set;
72
+
73
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/array.js
74
+ var from2 = Array.from;
75
+
76
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/string.js
77
+ var fromCharCode = String.fromCharCode;
78
+ var fromCodePoint = String.fromCodePoint;
79
+ var MAX_UTF16_CHARACTER = fromCharCode(65535);
80
+ var _encodeUtf8Polyfill = (str) => {
81
+ const encodedString = unescape(encodeURIComponent(str));
82
+ const len = encodedString.length;
83
+ const buf = new Uint8Array(len);
84
+ for (let i = 0;i < len; i++) {
85
+ buf[i] = encodedString.codePointAt(i);
86
+ }
87
+ return buf;
88
+ };
89
+ var utf8TextEncoder = typeof TextEncoder !== "undefined" ? new TextEncoder : null;
90
+ var _encodeUtf8Native = (str) => utf8TextEncoder.encode(str);
91
+ var encodeUtf8 = utf8TextEncoder ? _encodeUtf8Native : _encodeUtf8Polyfill;
92
+ var utf8TextDecoder = typeof TextDecoder === "undefined" ? null : new TextDecoder("utf-8", { fatal: true, ignoreBOM: true });
93
+ if (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array).length === 1) {
94
+ utf8TextDecoder = null;
95
+ }
96
+
97
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/encoding.js
98
+ class Encoder {
99
+ constructor() {
100
+ this.cpos = 0;
101
+ this.cbuf = new Uint8Array(100);
102
+ this.bufs = [];
103
+ }
104
+ }
105
+ var createEncoder = () => new Encoder;
106
+ var length = (encoder) => {
107
+ let len = encoder.cpos;
108
+ for (let i = 0;i < encoder.bufs.length; i++) {
109
+ len += encoder.bufs[i].length;
110
+ }
111
+ return len;
112
+ };
113
+ var toUint8Array = (encoder) => {
114
+ const uint8arr = new Uint8Array(length(encoder));
115
+ let curPos = 0;
116
+ for (let i = 0;i < encoder.bufs.length; i++) {
117
+ const d = encoder.bufs[i];
118
+ uint8arr.set(d, curPos);
119
+ curPos += d.length;
120
+ }
121
+ uint8arr.set(new Uint8Array(encoder.cbuf.buffer, 0, encoder.cpos), curPos);
122
+ return uint8arr;
123
+ };
124
+ var write = (encoder, num) => {
125
+ const bufferLen = encoder.cbuf.length;
126
+ if (encoder.cpos === bufferLen) {
127
+ encoder.bufs.push(encoder.cbuf);
128
+ encoder.cbuf = new Uint8Array(bufferLen * 2);
129
+ encoder.cpos = 0;
130
+ }
131
+ encoder.cbuf[encoder.cpos++] = num;
132
+ };
133
+ var writeVarUint = (encoder, num) => {
134
+ while (num > BITS7) {
135
+ write(encoder, BIT8 | BITS7 & num);
136
+ num = floor(num / 128);
137
+ }
138
+ write(encoder, BITS7 & num);
139
+ };
140
+ var _strBuffer = new Uint8Array(30000);
141
+ var _maxStrBSize = _strBuffer.length / 3;
142
+ var _writeVarStringNative = (encoder, str) => {
143
+ if (str.length < _maxStrBSize) {
144
+ const written = utf8TextEncoder.encodeInto(str, _strBuffer).written || 0;
145
+ writeVarUint(encoder, written);
146
+ for (let i = 0;i < written; i++) {
147
+ write(encoder, _strBuffer[i]);
148
+ }
149
+ } else {
150
+ writeVarUint8Array(encoder, encodeUtf8(str));
151
+ }
152
+ };
153
+ var _writeVarStringPolyfill = (encoder, str) => {
154
+ const encodedString = unescape(encodeURIComponent(str));
155
+ const len = encodedString.length;
156
+ writeVarUint(encoder, len);
157
+ for (let i = 0;i < len; i++) {
158
+ write(encoder, encodedString.codePointAt(i));
159
+ }
160
+ };
161
+ var writeVarString = utf8TextEncoder && utf8TextEncoder.encodeInto ? _writeVarStringNative : _writeVarStringPolyfill;
162
+ var writeUint8Array = (encoder, uint8Array) => {
163
+ const bufferLen = encoder.cbuf.length;
164
+ const cpos = encoder.cpos;
165
+ const leftCopyLen = min(bufferLen - cpos, uint8Array.length);
166
+ const rightCopyLen = uint8Array.length - leftCopyLen;
167
+ encoder.cbuf.set(uint8Array.subarray(0, leftCopyLen), cpos);
168
+ encoder.cpos += leftCopyLen;
169
+ if (rightCopyLen > 0) {
170
+ encoder.bufs.push(encoder.cbuf);
171
+ encoder.cbuf = new Uint8Array(max(bufferLen * 2, rightCopyLen));
172
+ encoder.cbuf.set(uint8Array.subarray(leftCopyLen));
173
+ encoder.cpos = rightCopyLen;
174
+ }
175
+ };
176
+ var writeVarUint8Array = (encoder, uint8Array) => {
177
+ writeVarUint(encoder, uint8Array.byteLength);
178
+ writeUint8Array(encoder, uint8Array);
179
+ };
180
+ var floatTestBed = new DataView(new ArrayBuffer(4));
181
+
182
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/error.js
183
+ var create2 = (s) => new Error(s);
184
+
185
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/decoding.js
186
+ var errorUnexpectedEndOfArray = create2("Unexpected end of array");
187
+ var errorIntegerOutOfRange = create2("Integer out of Range");
188
+
189
+ class Decoder {
190
+ constructor(uint8Array) {
191
+ this.arr = uint8Array;
192
+ this.pos = 0;
193
+ }
194
+ }
195
+ var createDecoder = (uint8Array) => new Decoder(uint8Array);
196
+ var readUint8Array = (decoder, len) => {
197
+ const view = new Uint8Array(decoder.arr.buffer, decoder.pos + decoder.arr.byteOffset, len);
198
+ decoder.pos += len;
199
+ return view;
200
+ };
201
+ var readVarUint8Array = (decoder) => readUint8Array(decoder, readVarUint(decoder));
202
+ var readUint8 = (decoder) => decoder.arr[decoder.pos++];
203
+ var readVarUint = (decoder) => {
204
+ let num = 0;
205
+ let mult = 1;
206
+ const len = decoder.arr.length;
207
+ while (decoder.pos < len) {
208
+ const r = decoder.arr[decoder.pos++];
209
+ num = num + (r & BITS7) * mult;
210
+ mult *= 128;
211
+ if (r < BIT8) {
212
+ return num;
213
+ }
214
+ if (num > MAX_SAFE_INTEGER) {
215
+ throw errorIntegerOutOfRange;
216
+ }
217
+ }
218
+ throw errorUnexpectedEndOfArray;
219
+ };
220
+ var _readVarStringPolyfill = (decoder) => {
221
+ let remainingLen = readVarUint(decoder);
222
+ if (remainingLen === 0) {
223
+ return "";
224
+ } else {
225
+ let encodedString = String.fromCodePoint(readUint8(decoder));
226
+ if (--remainingLen < 100) {
227
+ while (remainingLen--) {
228
+ encodedString += String.fromCodePoint(readUint8(decoder));
229
+ }
230
+ } else {
231
+ while (remainingLen > 0) {
232
+ const nextLen = remainingLen < 1e4 ? remainingLen : 1e4;
233
+ const bytes = decoder.arr.subarray(decoder.pos, decoder.pos + nextLen);
234
+ decoder.pos += nextLen;
235
+ encodedString += String.fromCodePoint.apply(null, bytes);
236
+ remainingLen -= nextLen;
237
+ }
238
+ }
239
+ return decodeURIComponent(escape(encodedString));
240
+ }
241
+ };
242
+ var _readVarStringNative = (decoder) => utf8TextDecoder.decode(readVarUint8Array(decoder));
243
+ var readVarString = utf8TextDecoder ? _readVarStringNative : _readVarStringPolyfill;
244
+
245
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/time.js
246
+ var getUnixTime = Date.now;
247
+
248
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/map.js
249
+ var create3 = () => new Map;
250
+ var setIfUndefined = (map, key, createT) => {
251
+ let set = map.get(key);
252
+ if (set === undefined) {
253
+ map.set(key, set = createT());
254
+ }
255
+ return set;
256
+ };
257
+
258
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/observable.js
259
+ class Observable {
260
+ constructor() {
261
+ this._observers = create3();
262
+ }
263
+ on(name, f) {
264
+ setIfUndefined(this._observers, name, create).add(f);
265
+ }
266
+ once(name, f) {
267
+ const _f = (...args) => {
268
+ this.off(name, _f);
269
+ f(...args);
270
+ };
271
+ this.on(name, _f);
272
+ }
273
+ off(name, f) {
274
+ const observers = this._observers.get(name);
275
+ if (observers !== undefined) {
276
+ observers.delete(f);
277
+ if (observers.size === 0) {
278
+ this._observers.delete(name);
279
+ }
280
+ }
281
+ }
282
+ emit(name, args) {
283
+ return from2((this._observers.get(name) || create3()).values()).forEach((f) => f(...args));
284
+ }
285
+ destroy() {
286
+ this._observers = create3();
287
+ }
288
+ }
289
+
290
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/trait/equality.js
291
+ var EqualityTraitSymbol = Symbol("Equality");
292
+
293
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/object.js
294
+ var keys = Object.keys;
295
+ var size = (obj) => keys(obj).length;
296
+ var hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
297
+
298
+ // ../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/function.js
299
+ var equalityDeep = (a, b) => {
300
+ if (a === b) {
301
+ return true;
302
+ }
303
+ if (a == null || b == null || a.constructor !== b.constructor && (a.constructor || Object) !== (b.constructor || Object)) {
304
+ return false;
305
+ }
306
+ if (a[EqualityTraitSymbol] != null) {
307
+ return a[EqualityTraitSymbol](b);
308
+ }
309
+ switch (a.constructor) {
310
+ case ArrayBuffer:
311
+ a = new Uint8Array(a);
312
+ b = new Uint8Array(b);
313
+ case Uint8Array: {
314
+ if (a.byteLength !== b.byteLength) {
315
+ return false;
316
+ }
317
+ for (let i = 0;i < a.length; i++) {
318
+ if (a[i] !== b[i]) {
319
+ return false;
320
+ }
321
+ }
322
+ break;
323
+ }
324
+ case Set: {
325
+ if (a.size !== b.size) {
326
+ return false;
327
+ }
328
+ for (const value of a) {
329
+ if (!b.has(value)) {
330
+ return false;
331
+ }
332
+ }
333
+ break;
334
+ }
335
+ case Map: {
336
+ if (a.size !== b.size) {
337
+ return false;
338
+ }
339
+ for (const key of a.keys()) {
340
+ if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {
341
+ return false;
342
+ }
343
+ }
344
+ break;
345
+ }
346
+ case undefined:
347
+ case Object:
348
+ if (size(a) !== size(b)) {
349
+ return false;
350
+ }
351
+ for (const key in a) {
352
+ if (!hasProperty(a, key) || !equalityDeep(a[key], b[key])) {
353
+ return false;
354
+ }
355
+ }
356
+ break;
357
+ case Array:
358
+ if (a.length !== b.length) {
359
+ return false;
360
+ }
361
+ for (let i = 0;i < a.length; i++) {
362
+ if (!equalityDeep(a[i], b[i])) {
363
+ return false;
364
+ }
365
+ }
366
+ break;
367
+ default:
368
+ return false;
369
+ }
370
+ return true;
371
+ };
372
+
373
+ // ../../../node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.30/node_modules/y-protocols/awareness.js
374
+ import * as Y from "yjs";
375
+ var outdatedTimeout = 30000;
376
+
377
+ class Awareness extends Observable {
378
+ constructor(doc) {
379
+ super();
380
+ this.doc = doc;
381
+ this.clientID = doc.clientID;
382
+ this.states = new Map;
383
+ this.meta = new Map;
384
+ this._checkInterval = setInterval(() => {
385
+ const now = getUnixTime();
386
+ if (this.getLocalState() !== null && outdatedTimeout / 2 <= now - this.meta.get(this.clientID).lastUpdated) {
387
+ this.setLocalState(this.getLocalState());
388
+ }
389
+ const remove = [];
390
+ this.meta.forEach((meta, clientid) => {
391
+ if (clientid !== this.clientID && outdatedTimeout <= now - meta.lastUpdated && this.states.has(clientid)) {
392
+ remove.push(clientid);
393
+ }
394
+ });
395
+ if (remove.length > 0) {
396
+ removeAwarenessStates(this, remove, "timeout");
397
+ }
398
+ }, floor(outdatedTimeout / 10));
399
+ doc.on("destroy", () => {
400
+ this.destroy();
401
+ });
402
+ this.setLocalState({});
403
+ }
404
+ destroy() {
405
+ this.emit("destroy", [this]);
406
+ this.setLocalState(null);
407
+ super.destroy();
408
+ clearInterval(this._checkInterval);
409
+ }
410
+ getLocalState() {
411
+ return this.states.get(this.clientID) || null;
412
+ }
413
+ setLocalState(state) {
414
+ const clientID = this.clientID;
415
+ const currLocalMeta = this.meta.get(clientID);
416
+ const clock = currLocalMeta === undefined ? 0 : currLocalMeta.clock + 1;
417
+ const prevState = this.states.get(clientID);
418
+ if (state === null) {
419
+ this.states.delete(clientID);
420
+ } else {
421
+ this.states.set(clientID, state);
422
+ }
423
+ this.meta.set(clientID, {
424
+ clock,
425
+ lastUpdated: getUnixTime()
426
+ });
427
+ const added = [];
428
+ const updated = [];
429
+ const filteredUpdated = [];
430
+ const removed = [];
431
+ if (state === null) {
432
+ removed.push(clientID);
433
+ } else if (prevState == null) {
434
+ if (state != null) {
435
+ added.push(clientID);
436
+ }
437
+ } else {
438
+ updated.push(clientID);
439
+ if (!equalityDeep(prevState, state)) {
440
+ filteredUpdated.push(clientID);
441
+ }
442
+ }
443
+ if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {
444
+ this.emit("change", [{ added, updated: filteredUpdated, removed }, "local"]);
445
+ }
446
+ this.emit("update", [{ added, updated, removed }, "local"]);
447
+ }
448
+ setLocalStateField(field, value) {
449
+ const state = this.getLocalState();
450
+ if (state !== null) {
451
+ this.setLocalState({
452
+ ...state,
453
+ [field]: value
454
+ });
455
+ }
456
+ }
457
+ getStates() {
458
+ return this.states;
459
+ }
460
+ }
461
+ var removeAwarenessStates = (awareness, clients, origin) => {
462
+ const removed = [];
463
+ for (let i = 0;i < clients.length; i++) {
464
+ const clientID = clients[i];
465
+ if (awareness.states.has(clientID)) {
466
+ awareness.states.delete(clientID);
467
+ if (clientID === awareness.clientID) {
468
+ const curMeta = awareness.meta.get(clientID);
469
+ awareness.meta.set(clientID, {
470
+ clock: curMeta.clock + 1,
471
+ lastUpdated: getUnixTime()
472
+ });
473
+ }
474
+ removed.push(clientID);
475
+ }
476
+ }
477
+ if (removed.length > 0) {
478
+ awareness.emit("change", [{ added: [], updated: [], removed }, origin]);
479
+ awareness.emit("update", [{ added: [], updated: [], removed }, origin]);
480
+ }
481
+ };
482
+ var encodeAwarenessUpdate = (awareness, clients, states = awareness.states) => {
483
+ const len = clients.length;
484
+ const encoder = createEncoder();
485
+ writeVarUint(encoder, len);
486
+ for (let i = 0;i < len; i++) {
487
+ const clientID = clients[i];
488
+ const state = states.get(clientID) || null;
489
+ const clock = awareness.meta.get(clientID).clock;
490
+ writeVarUint(encoder, clientID);
491
+ writeVarUint(encoder, clock);
492
+ writeVarString(encoder, JSON.stringify(state));
493
+ }
494
+ return toUint8Array(encoder);
495
+ };
496
+ var modifyAwarenessUpdate = (update, modify) => {
497
+ const decoder = createDecoder(update);
498
+ const encoder = createEncoder();
499
+ const len = readVarUint(decoder);
500
+ writeVarUint(encoder, len);
501
+ for (let i = 0;i < len; i++) {
502
+ const clientID = readVarUint(decoder);
503
+ const clock = readVarUint(decoder);
504
+ const state = JSON.parse(readVarString(decoder));
505
+ const modifiedState = modify(state);
506
+ writeVarUint(encoder, clientID);
507
+ writeVarUint(encoder, clock);
508
+ writeVarString(encoder, JSON.stringify(modifiedState));
509
+ }
510
+ return toUint8Array(encoder);
511
+ };
512
+ var applyAwarenessUpdate = (awareness, update, origin) => {
513
+ const decoder = createDecoder(update);
514
+ const timestamp = getUnixTime();
515
+ const added = [];
516
+ const updated = [];
517
+ const filteredUpdated = [];
518
+ const removed = [];
519
+ const len = readVarUint(decoder);
520
+ for (let i = 0;i < len; i++) {
521
+ const clientID = readVarUint(decoder);
522
+ let clock = readVarUint(decoder);
523
+ const state = JSON.parse(readVarString(decoder));
524
+ const clientMeta = awareness.meta.get(clientID);
525
+ const prevState = awareness.states.get(clientID);
526
+ const currClock = clientMeta === undefined ? 0 : clientMeta.clock;
527
+ if (currClock < clock || currClock === clock && state === null && awareness.states.has(clientID)) {
528
+ if (state === null) {
529
+ if (clientID === awareness.clientID && awareness.getLocalState() != null) {
530
+ clock++;
531
+ } else {
532
+ awareness.states.delete(clientID);
533
+ }
534
+ } else {
535
+ awareness.states.set(clientID, state);
536
+ }
537
+ awareness.meta.set(clientID, {
538
+ clock,
539
+ lastUpdated: timestamp
540
+ });
541
+ if (clientMeta === undefined && state !== null) {
542
+ added.push(clientID);
543
+ } else if (clientMeta !== undefined && state === null) {
544
+ removed.push(clientID);
545
+ } else if (state !== null) {
546
+ if (!equalityDeep(state, prevState)) {
547
+ filteredUpdated.push(clientID);
548
+ }
549
+ updated.push(clientID);
550
+ }
551
+ }
552
+ }
553
+ if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {
554
+ awareness.emit("change", [{
555
+ added,
556
+ updated: filteredUpdated,
557
+ removed
558
+ }, origin]);
559
+ }
560
+ if (added.length > 0 || updated.length > 0 || removed.length > 0) {
561
+ awareness.emit("update", [{
562
+ added,
563
+ updated,
564
+ removed
565
+ }, origin]);
566
+ }
567
+ };
568
+
569
+ // synth:/home/runner/work/maude/maude/plugins/design/dev-server/.runtime-bundle-y-protocols_awareness-entry.tsx
570
+ var {
571
+ Awareness: Awareness2,
572
+ applyAwarenessUpdate: applyAwarenessUpdate2,
573
+ encodeAwarenessUpdate: encodeAwarenessUpdate2,
574
+ modifyAwarenessUpdate: modifyAwarenessUpdate2,
575
+ outdatedTimeout: outdatedTimeout2,
576
+ removeAwarenessStates: removeAwarenessStates2
577
+ } = exports_awareness;
578
+ var __runtime_bundle_y_protocols_awareness_entry_default = exports_awareness;
579
+ export {
580
+ removeAwarenessStates2 as removeAwarenessStates,
581
+ outdatedTimeout2 as outdatedTimeout,
582
+ modifyAwarenessUpdate2 as modifyAwarenessUpdate,
583
+ encodeAwarenessUpdate2 as encodeAwarenessUpdate,
584
+ __runtime_bundle_y_protocols_awareness_entry_default as default,
585
+ applyAwarenessUpdate2 as applyAwarenessUpdate,
586
+ Awareness2 as Awareness
587
+ };