hakuban 0.5.5 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/hakuban.js ADDED
@@ -0,0 +1,2584 @@
1
+ let wasm;
2
+
3
+ const heap = new Array(32).fill(undefined);
4
+
5
+ heap.push(undefined, null, true, false);
6
+
7
+ function getObject(idx) { return heap[idx]; }
8
+
9
+ let heap_next = heap.length;
10
+
11
+ function dropObject(idx) {
12
+ if (idx < 36) return;
13
+ heap[idx] = heap_next;
14
+ heap_next = idx;
15
+ }
16
+
17
+ function takeObject(idx) {
18
+ const ret = getObject(idx);
19
+ dropObject(idx);
20
+ return ret;
21
+ }
22
+
23
+ let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
24
+
25
+ cachedTextDecoder.decode();
26
+
27
+ let cachegetUint8Memory0 = null;
28
+ function getUint8Memory0() {
29
+ if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {
30
+ cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);
31
+ }
32
+ return cachegetUint8Memory0;
33
+ }
34
+
35
+ function getStringFromWasm0(ptr, len) {
36
+ return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
37
+ }
38
+
39
+ function addHeapObject(obj) {
40
+ if (heap_next === heap.length) heap.push(heap.length + 1);
41
+ const idx = heap_next;
42
+ heap_next = heap[idx];
43
+
44
+ heap[idx] = obj;
45
+ return idx;
46
+ }
47
+
48
+ function debugString(val) {
49
+ // primitive types
50
+ const type = typeof val;
51
+ if (type == 'number' || type == 'boolean' || val == null) {
52
+ return `${val}`;
53
+ }
54
+ if (type == 'string') {
55
+ return `"${val}"`;
56
+ }
57
+ if (type == 'symbol') {
58
+ const description = val.description;
59
+ if (description == null) {
60
+ return 'Symbol';
61
+ } else {
62
+ return `Symbol(${description})`;
63
+ }
64
+ }
65
+ if (type == 'function') {
66
+ const name = val.name;
67
+ if (typeof name == 'string' && name.length > 0) {
68
+ return `Function(${name})`;
69
+ } else {
70
+ return 'Function';
71
+ }
72
+ }
73
+ // objects
74
+ if (Array.isArray(val)) {
75
+ const length = val.length;
76
+ let debug = '[';
77
+ if (length > 0) {
78
+ debug += debugString(val[0]);
79
+ }
80
+ for(let i = 1; i < length; i++) {
81
+ debug += ', ' + debugString(val[i]);
82
+ }
83
+ debug += ']';
84
+ return debug;
85
+ }
86
+ // Test for built-in
87
+ const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
88
+ let className;
89
+ if (builtInMatches.length > 1) {
90
+ className = builtInMatches[1];
91
+ } else {
92
+ // Failed to match the standard '[object ClassName]'
93
+ return toString.call(val);
94
+ }
95
+ if (className == 'Object') {
96
+ // we're a user defined class or Object
97
+ // JSON.stringify avoids problems with cycles, and is generally much
98
+ // easier than looping through ownProperties of `val`.
99
+ try {
100
+ return 'Object(' + JSON.stringify(val) + ')';
101
+ } catch (_) {
102
+ return 'Object';
103
+ }
104
+ }
105
+ // errors
106
+ if (val instanceof Error) {
107
+ return `${val.name}: ${val.message}\n${val.stack}`;
108
+ }
109
+ // TODO we could test for more things here, like `Set`s and `Map`s.
110
+ return className;
111
+ }
112
+
113
+ let WASM_VECTOR_LEN = 0;
114
+
115
+ let cachedTextEncoder = new TextEncoder('utf-8');
116
+
117
+ const encodeString = (typeof cachedTextEncoder.encodeInto === 'function'
118
+ ? function (arg, view) {
119
+ return cachedTextEncoder.encodeInto(arg, view);
120
+ }
121
+ : function (arg, view) {
122
+ const buf = cachedTextEncoder.encode(arg);
123
+ view.set(buf);
124
+ return {
125
+ read: arg.length,
126
+ written: buf.length
127
+ };
128
+ });
129
+
130
+ function passStringToWasm0(arg, malloc, realloc) {
131
+
132
+ if (realloc === undefined) {
133
+ const buf = cachedTextEncoder.encode(arg);
134
+ const ptr = malloc(buf.length);
135
+ getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf);
136
+ WASM_VECTOR_LEN = buf.length;
137
+ return ptr;
138
+ }
139
+
140
+ let len = arg.length;
141
+ let ptr = malloc(len);
142
+
143
+ const mem = getUint8Memory0();
144
+
145
+ let offset = 0;
146
+
147
+ for (; offset < len; offset++) {
148
+ const code = arg.charCodeAt(offset);
149
+ if (code > 0x7F) break;
150
+ mem[ptr + offset] = code;
151
+ }
152
+
153
+ if (offset !== len) {
154
+ if (offset !== 0) {
155
+ arg = arg.slice(offset);
156
+ }
157
+ ptr = realloc(ptr, len, len = offset + arg.length * 3);
158
+ const view = getUint8Memory0().subarray(ptr + offset, ptr + len);
159
+ const ret = encodeString(arg, view);
160
+
161
+ offset += ret.written;
162
+ }
163
+
164
+ WASM_VECTOR_LEN = offset;
165
+ return ptr;
166
+ }
167
+
168
+ let cachegetInt32Memory0 = null;
169
+ function getInt32Memory0() {
170
+ if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {
171
+ cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);
172
+ }
173
+ return cachegetInt32Memory0;
174
+ }
175
+
176
+ function makeMutClosure(arg0, arg1, dtor, f) {
177
+ const state = { a: arg0, b: arg1, cnt: 1, dtor };
178
+ const real = (...args) => {
179
+ // First up with a closure we increment the internal reference
180
+ // count. This ensures that the Rust closure environment won't
181
+ // be deallocated while we're invoking it.
182
+ state.cnt++;
183
+ const a = state.a;
184
+ state.a = 0;
185
+ try {
186
+ return f(a, state.b, ...args);
187
+ } finally {
188
+ if (--state.cnt === 0) {
189
+ wasm.__wbindgen_export_2.get(state.dtor)(a, state.b);
190
+
191
+ } else {
192
+ state.a = a;
193
+ }
194
+ }
195
+ };
196
+ real.original = state;
197
+
198
+ return real;
199
+ }
200
+ function __wbg_adapter_18(arg0, arg1, arg2) {
201
+ wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h027708a9a2f14b34(arg0, arg1, addHeapObject(arg2));
202
+ }
203
+
204
+ const u32CvtShim = new Uint32Array(2);
205
+
206
+ const uint64CvtShim = new BigUint64Array(u32CvtShim.buffer);
207
+ /**
208
+ * @param {string} json_string
209
+ * @returns {WasmHashResult}
210
+ */
211
+ function hakuban_json_hash(json_string) {
212
+ var ptr0 = passStringToWasm0(json_string, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
213
+ var len0 = WASM_VECTOR_LEN;
214
+ var ret = wasm.hakuban_json_hash(ptr0, len0);
215
+ return WasmHashResult.__wrap(ret);
216
+ }
217
+
218
+ /**
219
+ * @param {number} local_node
220
+ * @param {string} descriptor
221
+ * @returns {WasmTagObserveResult}
222
+ */
223
+ function hakuban_tag_observe_new(local_node, descriptor) {
224
+ var ptr0 = passStringToWasm0(descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
225
+ var len0 = WASM_VECTOR_LEN;
226
+ var ret = wasm.hakuban_tag_observe_new(local_node, ptr0, len0);
227
+ return WasmTagObserveResult.__wrap(ret);
228
+ }
229
+
230
+ /**
231
+ * @param {number} tag_observe_pointer
232
+ */
233
+ function hakuban_tag_observe_drop(tag_observe_pointer) {
234
+ wasm.hakuban_tag_observe_drop(tag_observe_pointer);
235
+ }
236
+
237
+ /**
238
+ * @param {number} tag_observe_pointer
239
+ * @param {string} object_descriptor
240
+ * @returns {WasmTagObserveObjectStateBorrowResult}
241
+ */
242
+ function hakuban_tag_observe_object_state_borrow(tag_observe_pointer, object_descriptor) {
243
+ var ptr0 = passStringToWasm0(object_descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
244
+ var len0 = WASM_VECTOR_LEN;
245
+ var ret = wasm.hakuban_tag_observe_object_state_borrow(tag_observe_pointer, ptr0, len0);
246
+ return WasmTagObserveObjectStateBorrowResult.__wrap(ret);
247
+ }
248
+
249
+ /**
250
+ * @param {number} tag_observe_pointer
251
+ * @returns {string}
252
+ */
253
+ function hakuban_tag_observe_object_descriptors(tag_observe_pointer) {
254
+ try {
255
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
256
+ wasm.hakuban_tag_observe_object_descriptors(retptr, tag_observe_pointer);
257
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
258
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
259
+ return getStringFromWasm0(r0, r1);
260
+ } finally {
261
+ wasm.__wbindgen_add_to_stack_pointer(16);
262
+ wasm.__wbindgen_free(r0, r1);
263
+ }
264
+ }
265
+
266
+ /**
267
+ * @param {number} tag_observe_ptr
268
+ * @returns {number}
269
+ */
270
+ function hakuban_tag_observe_events_get(tag_observe_ptr) {
271
+ var ret = wasm.hakuban_tag_observe_events_get(tag_observe_ptr);
272
+ return ret;
273
+ }
274
+
275
+ /**
276
+ * @param {number} local_node
277
+ * @param {string} descriptor
278
+ * @returns {WasmObjectObserveResult}
279
+ */
280
+ function hakuban_object_observe_new(local_node, descriptor) {
281
+ var ptr0 = passStringToWasm0(descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
282
+ var len0 = WASM_VECTOR_LEN;
283
+ var ret = wasm.hakuban_object_observe_new(local_node, ptr0, len0);
284
+ return WasmObjectObserveResult.__wrap(ret);
285
+ }
286
+
287
+ /**
288
+ * @param {number} object_ptr
289
+ */
290
+ function hakuban_object_observe_drop(object_ptr) {
291
+ wasm.hakuban_object_observe_drop(object_ptr);
292
+ }
293
+
294
+ /**
295
+ * @param {number} object_observe_pointer
296
+ * @returns {number}
297
+ */
298
+ function hakuban_object_observe_state_borrow(object_observe_pointer) {
299
+ var ret = wasm.hakuban_object_observe_state_borrow(object_observe_pointer);
300
+ return ret;
301
+ }
302
+
303
+ /**
304
+ * @param {number} state_ptr
305
+ */
306
+ function hakuban_object_observe_state_return(state_ptr) {
307
+ wasm.hakuban_object_observe_state_return(state_ptr);
308
+ }
309
+
310
+ /**
311
+ * @param {number} state_ptr
312
+ * @returns {BigInt}
313
+ */
314
+ function hakuban_object_observe_state_synchronized(state_ptr) {
315
+ try {
316
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
317
+ wasm.hakuban_object_observe_state_synchronized(retptr, state_ptr);
318
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
319
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
320
+ u32CvtShim[0] = r0;
321
+ u32CvtShim[1] = r1;
322
+ const n0 = uint64CvtShim[0];
323
+ return n0;
324
+ } finally {
325
+ wasm.__wbindgen_add_to_stack_pointer(16);
326
+ }
327
+ }
328
+
329
+ /**
330
+ * @param {number} state_ptr
331
+ * @returns {string}
332
+ */
333
+ function hakuban_object_observe_state_data_version(state_ptr) {
334
+ try {
335
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
336
+ wasm.hakuban_object_observe_state_data_version(retptr, state_ptr);
337
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
338
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
339
+ return getStringFromWasm0(r0, r1);
340
+ } finally {
341
+ wasm.__wbindgen_add_to_stack_pointer(16);
342
+ wasm.__wbindgen_free(r0, r1);
343
+ }
344
+ }
345
+
346
+ /**
347
+ * @param {number} state_ptr
348
+ * @returns {string}
349
+ */
350
+ function hakuban_object_observe_state_data_type(state_ptr) {
351
+ try {
352
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
353
+ wasm.hakuban_object_observe_state_data_type(retptr, state_ptr);
354
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
355
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
356
+ return getStringFromWasm0(r0, r1);
357
+ } finally {
358
+ wasm.__wbindgen_add_to_stack_pointer(16);
359
+ wasm.__wbindgen_free(r0, r1);
360
+ }
361
+ }
362
+
363
+ function getArrayU8FromWasm0(ptr, len) {
364
+ return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);
365
+ }
366
+ /**
367
+ * @param {number} state_ptr
368
+ * @returns {Uint8Array}
369
+ */
370
+ function hakuban_object_observe_state_data(state_ptr) {
371
+ try {
372
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
373
+ wasm.hakuban_object_observe_state_data(retptr, state_ptr);
374
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
375
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
376
+ var v0 = getArrayU8FromWasm0(r0, r1).slice();
377
+ wasm.__wbindgen_free(r0, r1 * 1);
378
+ return v0;
379
+ } finally {
380
+ wasm.__wbindgen_add_to_stack_pointer(16);
381
+ }
382
+ }
383
+
384
+ /**
385
+ * @param {number} object_observe_ptr
386
+ * @returns {number}
387
+ */
388
+ function hakuban_object_observe_events_get(object_observe_ptr) {
389
+ var ret = wasm.hakuban_object_observe_events_get(object_observe_ptr);
390
+ return ret;
391
+ }
392
+
393
+ /**
394
+ * @param {number} events_pointer
395
+ */
396
+ function hakuban_object_descriptor_events_drop(events_pointer) {
397
+ wasm.hakuban_object_descriptor_events_drop(events_pointer);
398
+ }
399
+
400
+ /**
401
+ * @param {number} events_pointer
402
+ * @param {Promise<any>} cancel
403
+ * @returns {Promise<any>}
404
+ */
405
+ function hakuban_object_descriptor_events_next(events_pointer, cancel) {
406
+ var ret = wasm.hakuban_object_descriptor_events_next(events_pointer, addHeapObject(cancel));
407
+ return takeObject(ret);
408
+ }
409
+
410
+ /**
411
+ * @param {string} default_log_level
412
+ * @returns {number}
413
+ */
414
+ function hakuban_logger_initialize(default_log_level) {
415
+ var ptr0 = passStringToWasm0(default_log_level, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
416
+ var len0 = WASM_VECTOR_LEN;
417
+ var ret = wasm.hakuban_logger_initialize(ptr0, len0);
418
+ return ret;
419
+ }
420
+
421
+ function isLikeNone(x) {
422
+ return x === undefined || x === null;
423
+ }
424
+ /**
425
+ * @param {number} local_node_pointer
426
+ * @param {boolean} upstream
427
+ * @param {boolean | undefined} diff_produce
428
+ * @param {boolean | undefined} diff_request
429
+ * @returns {WasmRemoteNodeNewResult}
430
+ */
431
+ function hakuban_remote_node_new(local_node_pointer, upstream, diff_produce, diff_request) {
432
+ var ret = wasm.hakuban_remote_node_new(local_node_pointer, upstream, isLikeNone(diff_produce) ? 0xFFFFFF : diff_produce ? 1 : 0, isLikeNone(diff_request) ? 0xFFFFFF : diff_request ? 1 : 0);
433
+ return WasmRemoteNodeNewResult.__wrap(ret);
434
+ }
435
+
436
+ /**
437
+ * @param {number} remote_node_pointer
438
+ */
439
+ function hakuban_remote_node_drop(remote_node_pointer) {
440
+ wasm.hakuban_remote_node_drop(remote_node_pointer);
441
+ }
442
+
443
+ /**
444
+ * @param {number} remote_node_pointer
445
+ * @returns {Uint8Array}
446
+ */
447
+ function hakuban_remote_node_connected(remote_node_pointer) {
448
+ try {
449
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
450
+ wasm.hakuban_remote_node_connected(retptr, remote_node_pointer);
451
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
452
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
453
+ var v0 = getArrayU8FromWasm0(r0, r1).slice();
454
+ wasm.__wbindgen_free(r0, r1 * 1);
455
+ return v0;
456
+ } finally {
457
+ wasm.__wbindgen_add_to_stack_pointer(16);
458
+ }
459
+ }
460
+
461
+ /**
462
+ * @param {number} remote_node_pointer
463
+ */
464
+ function hakuban_remote_node_disconnected(remote_node_pointer) {
465
+ wasm.hakuban_remote_node_disconnected(remote_node_pointer);
466
+ }
467
+
468
+ function passArray8ToWasm0(arg, malloc) {
469
+ const ptr = malloc(arg.length * 1);
470
+ getUint8Memory0().set(arg, ptr / 1);
471
+ WASM_VECTOR_LEN = arg.length;
472
+ return ptr;
473
+ }
474
+ /**
475
+ * @param {number} remote_node_pointer
476
+ * @param {Uint8Array} data
477
+ * @returns {Uint8Array}
478
+ */
479
+ function hakuban_remote_node_received_message(remote_node_pointer, data) {
480
+ try {
481
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
482
+ var ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
483
+ var len0 = WASM_VECTOR_LEN;
484
+ wasm.hakuban_remote_node_received_message(retptr, remote_node_pointer, ptr0, len0);
485
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
486
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
487
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
488
+ wasm.__wbindgen_free(r0, r1 * 1);
489
+ return v1;
490
+ } finally {
491
+ wasm.__wbindgen_add_to_stack_pointer(16);
492
+ }
493
+ }
494
+
495
+ /**
496
+ * @param {number} remote_node_pointer
497
+ * @param {Promise<any>} cancel
498
+ * @returns {Promise<any>}
499
+ */
500
+ function hakuban_remote_node_next_local_node_event(remote_node_pointer, cancel) {
501
+ var ret = wasm.hakuban_remote_node_next_local_node_event(remote_node_pointer, addHeapObject(cancel));
502
+ return takeObject(ret);
503
+ }
504
+
505
+ /**
506
+ * @param {number} remote_node_pointer
507
+ * @param {string} event
508
+ * @returns {Uint8Array}
509
+ */
510
+ function hakuban_remote_node_received_local_node_event(remote_node_pointer, event) {
511
+ try {
512
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
513
+ var ptr0 = passStringToWasm0(event, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
514
+ var len0 = WASM_VECTOR_LEN;
515
+ wasm.hakuban_remote_node_received_local_node_event(retptr, remote_node_pointer, ptr0, len0);
516
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
517
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
518
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
519
+ wasm.__wbindgen_free(r0, r1 * 1);
520
+ return v1;
521
+ } finally {
522
+ wasm.__wbindgen_add_to_stack_pointer(16);
523
+ }
524
+ }
525
+
526
+ /**
527
+ * @param {number} remote_node_pointer
528
+ * @returns {Uint8Array}
529
+ */
530
+ function hakuban_remote_node_ack(remote_node_pointer) {
531
+ try {
532
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
533
+ wasm.hakuban_remote_node_ack(retptr, remote_node_pointer);
534
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
535
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
536
+ var v0 = getArrayU8FromWasm0(r0, r1).slice();
537
+ wasm.__wbindgen_free(r0, r1 * 1);
538
+ return v0;
539
+ } finally {
540
+ wasm.__wbindgen_add_to_stack_pointer(16);
541
+ }
542
+ }
543
+
544
+ /**
545
+ * @param {number} local_node
546
+ * @param {string} descriptor
547
+ * @returns {WasmTagExposeResult}
548
+ */
549
+ function hakuban_tag_expose_new(local_node, descriptor) {
550
+ var ptr0 = passStringToWasm0(descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
551
+ var len0 = WASM_VECTOR_LEN;
552
+ var ret = wasm.hakuban_tag_expose_new(local_node, ptr0, len0);
553
+ return WasmTagExposeResult.__wrap(ret);
554
+ }
555
+
556
+ /**
557
+ * @param {number} tag_expose_pointer
558
+ */
559
+ function hakuban_tag_expose_drop(tag_expose_pointer) {
560
+ wasm.hakuban_tag_expose_drop(tag_expose_pointer);
561
+ }
562
+
563
+ /**
564
+ * @param {number} tag_expose_pointer
565
+ * @returns {string}
566
+ */
567
+ function hakuban_tag_expose_object_descriptors(tag_expose_pointer) {
568
+ try {
569
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
570
+ wasm.hakuban_tag_expose_object_descriptors(retptr, tag_expose_pointer);
571
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
572
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
573
+ return getStringFromWasm0(r0, r1);
574
+ } finally {
575
+ wasm.__wbindgen_add_to_stack_pointer(16);
576
+ wasm.__wbindgen_free(r0, r1);
577
+ }
578
+ }
579
+
580
+ /**
581
+ * @param {number} tag_expose_pointer
582
+ * @param {string} object_descriptor
583
+ * @param {string} data_version
584
+ * @param {string} data_type
585
+ * @param {Uint8Array} data
586
+ * @param {BigInt} assignment_id
587
+ * @returns {WasmTagExposeSetObjectStateResult}
588
+ */
589
+ function hakuban_tag_expose_set_object_state(tag_expose_pointer, object_descriptor, data_version, data_type, data, assignment_id) {
590
+ var ptr0 = passStringToWasm0(object_descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
591
+ var len0 = WASM_VECTOR_LEN;
592
+ var ptr1 = passStringToWasm0(data_version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
593
+ var len1 = WASM_VECTOR_LEN;
594
+ var ptr2 = passStringToWasm0(data_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
595
+ var len2 = WASM_VECTOR_LEN;
596
+ var ptr3 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
597
+ var len3 = WASM_VECTOR_LEN;
598
+ uint64CvtShim[0] = assignment_id;
599
+ const low4 = u32CvtShim[0];
600
+ const high4 = u32CvtShim[1];
601
+ var ret = wasm.hakuban_tag_expose_set_object_state(tag_expose_pointer, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, low4, high4);
602
+ return WasmTagExposeSetObjectStateResult.__wrap(ret);
603
+ }
604
+
605
+ /**
606
+ * @param {number} tag_expose_pointer
607
+ * @param {string} object_descriptor
608
+ * @returns {WasmTagExposeAssignmentResult}
609
+ */
610
+ function hakuban_tag_expose_assignment(tag_expose_pointer, object_descriptor) {
611
+ var ptr0 = passStringToWasm0(object_descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
612
+ var len0 = WASM_VECTOR_LEN;
613
+ var ret = wasm.hakuban_tag_expose_assignment(tag_expose_pointer, ptr0, len0);
614
+ return WasmTagExposeAssignmentResult.__wrap(ret);
615
+ }
616
+
617
+ /**
618
+ * @param {number} tag_expose_pointer
619
+ * @param {string} object_descriptor
620
+ * @param {BigInt} assignment_id
621
+ * @returns {number}
622
+ */
623
+ function hakuban_tag_expose_desynchronize(tag_expose_pointer, object_descriptor, assignment_id) {
624
+ var ptr0 = passStringToWasm0(object_descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
625
+ var len0 = WASM_VECTOR_LEN;
626
+ uint64CvtShim[0] = assignment_id;
627
+ const low1 = u32CvtShim[0];
628
+ const high1 = u32CvtShim[1];
629
+ var ret = wasm.hakuban_tag_expose_desynchronize(tag_expose_pointer, ptr0, len0, low1, high1);
630
+ return ret >>> 0;
631
+ }
632
+
633
+ /**
634
+ * @param {number} tag_expose_ptr
635
+ * @returns {number}
636
+ */
637
+ function hakuban_tag_expose_events_get(tag_expose_ptr) {
638
+ var ret = wasm.hakuban_tag_expose_events_get(tag_expose_ptr);
639
+ return ret;
640
+ }
641
+
642
+ /**
643
+ * @param {number} local_node
644
+ * @param {string} descriptor
645
+ * @returns {WasmObjectExposeResult}
646
+ */
647
+ function hakuban_object_expose_new(local_node, descriptor) {
648
+ var ptr0 = passStringToWasm0(descriptor, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
649
+ var len0 = WASM_VECTOR_LEN;
650
+ var ret = wasm.hakuban_object_expose_new(local_node, ptr0, len0);
651
+ return WasmObjectExposeResult.__wrap(ret);
652
+ }
653
+
654
+ /**
655
+ * @param {number} object_expose_pointer
656
+ */
657
+ function hakuban_object_expose_drop(object_expose_pointer) {
658
+ wasm.hakuban_object_expose_drop(object_expose_pointer);
659
+ }
660
+
661
+ /**
662
+ * @param {number} object_expose_pointer
663
+ * @param {string} data_version
664
+ * @param {string} data_type
665
+ * @param {Uint8Array} data
666
+ * @param {BigInt} assignment_id
667
+ * @returns {WasmObjectExposeStateResult}
668
+ */
669
+ function hakuban_object_expose_set_state(object_expose_pointer, data_version, data_type, data, assignment_id) {
670
+ var ptr0 = passStringToWasm0(data_version, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
671
+ var len0 = WASM_VECTOR_LEN;
672
+ var ptr1 = passStringToWasm0(data_type, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
673
+ var len1 = WASM_VECTOR_LEN;
674
+ var ptr2 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
675
+ var len2 = WASM_VECTOR_LEN;
676
+ uint64CvtShim[0] = assignment_id;
677
+ const low3 = u32CvtShim[0];
678
+ const high3 = u32CvtShim[1];
679
+ var ret = wasm.hakuban_object_expose_set_state(object_expose_pointer, ptr0, len0, ptr1, len1, ptr2, len2, low3, high3);
680
+ return WasmObjectExposeStateResult.__wrap(ret);
681
+ }
682
+
683
+ /**
684
+ * @param {number} object_expose_pointer
685
+ * @returns {BigInt}
686
+ */
687
+ function hakuban_object_expose_assignment(object_expose_pointer) {
688
+ try {
689
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
690
+ wasm.hakuban_object_expose_assignment(retptr, object_expose_pointer);
691
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
692
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
693
+ u32CvtShim[0] = r0;
694
+ u32CvtShim[1] = r1;
695
+ const n0 = uint64CvtShim[0];
696
+ return n0;
697
+ } finally {
698
+ wasm.__wbindgen_add_to_stack_pointer(16);
699
+ }
700
+ }
701
+
702
+ /**
703
+ * @param {number} object_expose_pointer
704
+ * @param {BigInt} assignment_id
705
+ */
706
+ function hakuban_object_expose_desynchronize(object_expose_pointer, assignment_id) {
707
+ uint64CvtShim[0] = assignment_id;
708
+ const low0 = u32CvtShim[0];
709
+ const high0 = u32CvtShim[1];
710
+ wasm.hakuban_object_expose_desynchronize(object_expose_pointer, low0, high0);
711
+ }
712
+
713
+ /**
714
+ * @param {number} object_expose_ptr
715
+ * @returns {number}
716
+ */
717
+ function hakuban_object_expose_events_get(object_expose_ptr) {
718
+ var ret = wasm.hakuban_object_expose_events_get(object_expose_ptr);
719
+ return ret;
720
+ }
721
+
722
+ /**
723
+ * @param {string} name_str
724
+ * @returns {WasmLocalNodeNewResult}
725
+ */
726
+ function hakuban_local_node_new(name_str) {
727
+ var ptr0 = passStringToWasm0(name_str, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
728
+ var len0 = WASM_VECTOR_LEN;
729
+ var ret = wasm.hakuban_local_node_new(ptr0, len0);
730
+ return WasmLocalNodeNewResult.__wrap(ret);
731
+ }
732
+
733
+ /**
734
+ * @param {number} local_node
735
+ */
736
+ function hakuban_local_node_drop(local_node) {
737
+ wasm.hakuban_local_node_drop(local_node);
738
+ }
739
+
740
+ function handleError(f, args) {
741
+ try {
742
+ return f.apply(this, args);
743
+ } catch (e) {
744
+ wasm.__wbindgen_exn_store(addHeapObject(e));
745
+ }
746
+ }
747
+ function __wbg_adapter_122(arg0, arg1, arg2, arg3) {
748
+ wasm.wasm_bindgen__convert__closures__invoke2_mut__hefcd3c3d153ecf73(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
749
+ }
750
+
751
+ /**
752
+ */
753
+ Object.freeze({ None:0,"0":"None",InvalidString:1,"1":"InvalidString",InvalidJSON:2,"2":"InvalidJSON",InvalidURL:3,"3":"InvalidURL",ObjectNotFound:4,"4":"ObjectNotFound", });
754
+ /**
755
+ */
756
+ class WasmHashResult {
757
+
758
+ static __wrap(ptr) {
759
+ const obj = Object.create(WasmHashResult.prototype);
760
+ obj.ptr = ptr;
761
+
762
+ return obj;
763
+ }
764
+
765
+ __destroy_into_raw() {
766
+ const ptr = this.ptr;
767
+ this.ptr = 0;
768
+
769
+ return ptr;
770
+ }
771
+
772
+ free() {
773
+ const ptr = this.__destroy_into_raw();
774
+ wasm.__wbg_wasmhashresult_free(ptr);
775
+ }
776
+ /**
777
+ */
778
+ get error() {
779
+ var ret = wasm.__wbg_get_wasmhashresult_error(this.ptr);
780
+ return ret >>> 0;
781
+ }
782
+ /**
783
+ * @param {number} arg0
784
+ */
785
+ set error(arg0) {
786
+ wasm.__wbg_set_wasmhashresult_error(this.ptr, arg0);
787
+ }
788
+ /**
789
+ */
790
+ get hash() {
791
+ try {
792
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
793
+ wasm.__wbg_get_wasmhashresult_hash(retptr, this.ptr);
794
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
795
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
796
+ u32CvtShim[0] = r0;
797
+ u32CvtShim[1] = r1;
798
+ const n0 = uint64CvtShim[0];
799
+ return n0;
800
+ } finally {
801
+ wasm.__wbindgen_add_to_stack_pointer(16);
802
+ }
803
+ }
804
+ /**
805
+ * @param {BigInt} arg0
806
+ */
807
+ set hash(arg0) {
808
+ uint64CvtShim[0] = arg0;
809
+ const low0 = u32CvtShim[0];
810
+ const high0 = u32CvtShim[1];
811
+ wasm.__wbg_set_wasmhashresult_hash(this.ptr, low0, high0);
812
+ }
813
+ }
814
+ /**
815
+ */
816
+ class WasmLocalNodeNewResult {
817
+
818
+ static __wrap(ptr) {
819
+ const obj = Object.create(WasmLocalNodeNewResult.prototype);
820
+ obj.ptr = ptr;
821
+
822
+ return obj;
823
+ }
824
+
825
+ __destroy_into_raw() {
826
+ const ptr = this.ptr;
827
+ this.ptr = 0;
828
+
829
+ return ptr;
830
+ }
831
+
832
+ free() {
833
+ const ptr = this.__destroy_into_raw();
834
+ wasm.__wbg_wasmlocalnodenewresult_free(ptr);
835
+ }
836
+ /**
837
+ */
838
+ get error() {
839
+ var ret = wasm.__wbg_get_wasmlocalnodenewresult_error(this.ptr);
840
+ return ret >>> 0;
841
+ }
842
+ /**
843
+ * @param {number} arg0
844
+ */
845
+ set error(arg0) {
846
+ wasm.__wbg_set_wasmlocalnodenewresult_error(this.ptr, arg0);
847
+ }
848
+ /**
849
+ */
850
+ get local_node_pointer() {
851
+ var ret = wasm.__wbg_get_wasmlocalnodenewresult_local_node_pointer(this.ptr);
852
+ return ret;
853
+ }
854
+ /**
855
+ * @param {number} arg0
856
+ */
857
+ set local_node_pointer(arg0) {
858
+ wasm.__wbg_set_wasmlocalnodenewresult_local_node_pointer(this.ptr, arg0);
859
+ }
860
+ }
861
+ /**
862
+ */
863
+ class WasmObjectExposeResult {
864
+
865
+ static __wrap(ptr) {
866
+ const obj = Object.create(WasmObjectExposeResult.prototype);
867
+ obj.ptr = ptr;
868
+
869
+ return obj;
870
+ }
871
+
872
+ __destroy_into_raw() {
873
+ const ptr = this.ptr;
874
+ this.ptr = 0;
875
+
876
+ return ptr;
877
+ }
878
+
879
+ free() {
880
+ const ptr = this.__destroy_into_raw();
881
+ wasm.__wbg_wasmobjectexposeresult_free(ptr);
882
+ }
883
+ /**
884
+ */
885
+ get error() {
886
+ var ret = wasm.__wbg_get_wasmobjectexposeresult_error(this.ptr);
887
+ return ret >>> 0;
888
+ }
889
+ /**
890
+ * @param {number} arg0
891
+ */
892
+ set error(arg0) {
893
+ wasm.__wbg_set_wasmobjectexposeresult_error(this.ptr, arg0);
894
+ }
895
+ /**
896
+ */
897
+ get object_expose_pointer() {
898
+ var ret = wasm.__wbg_get_wasmobjectexposeresult_object_expose_pointer(this.ptr);
899
+ return ret;
900
+ }
901
+ /**
902
+ * @param {number} arg0
903
+ */
904
+ set object_expose_pointer(arg0) {
905
+ wasm.__wbg_set_wasmobjectexposeresult_object_expose_pointer(this.ptr, arg0);
906
+ }
907
+ }
908
+ /**
909
+ */
910
+ class WasmObjectExposeStateResult {
911
+
912
+ static __wrap(ptr) {
913
+ const obj = Object.create(WasmObjectExposeStateResult.prototype);
914
+ obj.ptr = ptr;
915
+
916
+ return obj;
917
+ }
918
+
919
+ __destroy_into_raw() {
920
+ const ptr = this.ptr;
921
+ this.ptr = 0;
922
+
923
+ return ptr;
924
+ }
925
+
926
+ free() {
927
+ const ptr = this.__destroy_into_raw();
928
+ wasm.__wbg_wasmobjectexposestateresult_free(ptr);
929
+ }
930
+ /**
931
+ */
932
+ get error() {
933
+ var ret = wasm.__wbg_get_wasmobjectexposestateresult_error(this.ptr);
934
+ return ret >>> 0;
935
+ }
936
+ /**
937
+ * @param {number} arg0
938
+ */
939
+ set error(arg0) {
940
+ wasm.__wbg_set_wasmobjectexposestateresult_error(this.ptr, arg0);
941
+ }
942
+ /**
943
+ */
944
+ get changed() {
945
+ var ret = wasm.__wbg_get_wasmobjectexposestateresult_changed(this.ptr);
946
+ return ret !== 0;
947
+ }
948
+ /**
949
+ * @param {boolean} arg0
950
+ */
951
+ set changed(arg0) {
952
+ wasm.__wbg_set_wasmobjectexposestateresult_changed(this.ptr, arg0);
953
+ }
954
+ }
955
+ /**
956
+ */
957
+ class WasmObjectObserveResult {
958
+
959
+ static __wrap(ptr) {
960
+ const obj = Object.create(WasmObjectObserveResult.prototype);
961
+ obj.ptr = ptr;
962
+
963
+ return obj;
964
+ }
965
+
966
+ __destroy_into_raw() {
967
+ const ptr = this.ptr;
968
+ this.ptr = 0;
969
+
970
+ return ptr;
971
+ }
972
+
973
+ free() {
974
+ const ptr = this.__destroy_into_raw();
975
+ wasm.__wbg_wasmobjectobserveresult_free(ptr);
976
+ }
977
+ /**
978
+ */
979
+ get error() {
980
+ var ret = wasm.__wbg_get_wasmobjectobserveresult_error(this.ptr);
981
+ return ret >>> 0;
982
+ }
983
+ /**
984
+ * @param {number} arg0
985
+ */
986
+ set error(arg0) {
987
+ wasm.__wbg_set_wasmobjectobserveresult_error(this.ptr, arg0);
988
+ }
989
+ /**
990
+ */
991
+ get object_observe_pointer() {
992
+ var ret = wasm.__wbg_get_wasmobjectobserveresult_object_observe_pointer(this.ptr);
993
+ return ret;
994
+ }
995
+ /**
996
+ * @param {number} arg0
997
+ */
998
+ set object_observe_pointer(arg0) {
999
+ wasm.__wbg_set_wasmobjectobserveresult_object_observe_pointer(this.ptr, arg0);
1000
+ }
1001
+ }
1002
+ /**
1003
+ */
1004
+ class WasmRemoteNodeNewResult {
1005
+
1006
+ static __wrap(ptr) {
1007
+ const obj = Object.create(WasmRemoteNodeNewResult.prototype);
1008
+ obj.ptr = ptr;
1009
+
1010
+ return obj;
1011
+ }
1012
+
1013
+ __destroy_into_raw() {
1014
+ const ptr = this.ptr;
1015
+ this.ptr = 0;
1016
+
1017
+ return ptr;
1018
+ }
1019
+
1020
+ free() {
1021
+ const ptr = this.__destroy_into_raw();
1022
+ wasm.__wbg_wasmremotenodenewresult_free(ptr);
1023
+ }
1024
+ /**
1025
+ */
1026
+ get error() {
1027
+ var ret = wasm.__wbg_get_wasmremotenodenewresult_error(this.ptr);
1028
+ return ret >>> 0;
1029
+ }
1030
+ /**
1031
+ * @param {number} arg0
1032
+ */
1033
+ set error(arg0) {
1034
+ wasm.__wbg_set_wasmremotenodenewresult_error(this.ptr, arg0);
1035
+ }
1036
+ /**
1037
+ */
1038
+ get remote_node_pointer() {
1039
+ var ret = wasm.__wbg_get_wasmremotenodenewresult_remote_node_pointer(this.ptr);
1040
+ return ret;
1041
+ }
1042
+ /**
1043
+ * @param {number} arg0
1044
+ */
1045
+ set remote_node_pointer(arg0) {
1046
+ wasm.__wbg_set_wasmremotenodenewresult_remote_node_pointer(this.ptr, arg0);
1047
+ }
1048
+ }
1049
+ /**
1050
+ */
1051
+ class WasmTagExposeAssignmentResult {
1052
+
1053
+ static __wrap(ptr) {
1054
+ const obj = Object.create(WasmTagExposeAssignmentResult.prototype);
1055
+ obj.ptr = ptr;
1056
+
1057
+ return obj;
1058
+ }
1059
+
1060
+ __destroy_into_raw() {
1061
+ const ptr = this.ptr;
1062
+ this.ptr = 0;
1063
+
1064
+ return ptr;
1065
+ }
1066
+
1067
+ free() {
1068
+ const ptr = this.__destroy_into_raw();
1069
+ wasm.__wbg_wasmtagexposeassignmentresult_free(ptr);
1070
+ }
1071
+ /**
1072
+ */
1073
+ get error() {
1074
+ var ret = wasm.__wbg_get_wasmtagexposeassignmentresult_error(this.ptr);
1075
+ return ret >>> 0;
1076
+ }
1077
+ /**
1078
+ * @param {number} arg0
1079
+ */
1080
+ set error(arg0) {
1081
+ wasm.__wbg_set_wasmtagexposeassignmentresult_error(this.ptr, arg0);
1082
+ }
1083
+ /**
1084
+ */
1085
+ get assignment() {
1086
+ try {
1087
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1088
+ wasm.__wbg_get_wasmtagexposeassignmentresult_assignment(retptr, this.ptr);
1089
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
1090
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
1091
+ u32CvtShim[0] = r0;
1092
+ u32CvtShim[1] = r1;
1093
+ const n0 = uint64CvtShim[0];
1094
+ return n0;
1095
+ } finally {
1096
+ wasm.__wbindgen_add_to_stack_pointer(16);
1097
+ }
1098
+ }
1099
+ /**
1100
+ * @param {BigInt} arg0
1101
+ */
1102
+ set assignment(arg0) {
1103
+ uint64CvtShim[0] = arg0;
1104
+ const low0 = u32CvtShim[0];
1105
+ const high0 = u32CvtShim[1];
1106
+ wasm.__wbg_set_wasmtagexposeassignmentresult_assignment(this.ptr, low0, high0);
1107
+ }
1108
+ }
1109
+ /**
1110
+ */
1111
+ class WasmTagExposeResult {
1112
+
1113
+ static __wrap(ptr) {
1114
+ const obj = Object.create(WasmTagExposeResult.prototype);
1115
+ obj.ptr = ptr;
1116
+
1117
+ return obj;
1118
+ }
1119
+
1120
+ __destroy_into_raw() {
1121
+ const ptr = this.ptr;
1122
+ this.ptr = 0;
1123
+
1124
+ return ptr;
1125
+ }
1126
+
1127
+ free() {
1128
+ const ptr = this.__destroy_into_raw();
1129
+ wasm.__wbg_wasmtagexposeresult_free(ptr);
1130
+ }
1131
+ /**
1132
+ */
1133
+ get error() {
1134
+ var ret = wasm.__wbg_get_wasmtagexposeresult_error(this.ptr);
1135
+ return ret >>> 0;
1136
+ }
1137
+ /**
1138
+ * @param {number} arg0
1139
+ */
1140
+ set error(arg0) {
1141
+ wasm.__wbg_set_wasmtagexposeresult_error(this.ptr, arg0);
1142
+ }
1143
+ /**
1144
+ */
1145
+ get tag_expose_pointer() {
1146
+ var ret = wasm.__wbg_get_wasmtagexposeresult_tag_expose_pointer(this.ptr);
1147
+ return ret;
1148
+ }
1149
+ /**
1150
+ * @param {number} arg0
1151
+ */
1152
+ set tag_expose_pointer(arg0) {
1153
+ wasm.__wbg_set_wasmtagexposeresult_tag_expose_pointer(this.ptr, arg0);
1154
+ }
1155
+ }
1156
+ /**
1157
+ */
1158
+ class WasmTagExposeSetObjectStateResult {
1159
+
1160
+ static __wrap(ptr) {
1161
+ const obj = Object.create(WasmTagExposeSetObjectStateResult.prototype);
1162
+ obj.ptr = ptr;
1163
+
1164
+ return obj;
1165
+ }
1166
+
1167
+ __destroy_into_raw() {
1168
+ const ptr = this.ptr;
1169
+ this.ptr = 0;
1170
+
1171
+ return ptr;
1172
+ }
1173
+
1174
+ free() {
1175
+ const ptr = this.__destroy_into_raw();
1176
+ wasm.__wbg_wasmtagexposesetobjectstateresult_free(ptr);
1177
+ }
1178
+ /**
1179
+ */
1180
+ get error() {
1181
+ var ret = wasm.__wbg_get_wasmtagexposesetobjectstateresult_error(this.ptr);
1182
+ return ret >>> 0;
1183
+ }
1184
+ /**
1185
+ * @param {number} arg0
1186
+ */
1187
+ set error(arg0) {
1188
+ wasm.__wbg_set_wasmtagexposesetobjectstateresult_error(this.ptr, arg0);
1189
+ }
1190
+ /**
1191
+ */
1192
+ get changed() {
1193
+ var ret = wasm.__wbg_get_wasmtagexposesetobjectstateresult_changed(this.ptr);
1194
+ return ret !== 0;
1195
+ }
1196
+ /**
1197
+ * @param {boolean} arg0
1198
+ */
1199
+ set changed(arg0) {
1200
+ wasm.__wbg_set_wasmtagexposesetobjectstateresult_changed(this.ptr, arg0);
1201
+ }
1202
+ }
1203
+ /**
1204
+ */
1205
+ class WasmTagObserveObjectStateBorrowResult {
1206
+
1207
+ static __wrap(ptr) {
1208
+ const obj = Object.create(WasmTagObserveObjectStateBorrowResult.prototype);
1209
+ obj.ptr = ptr;
1210
+
1211
+ return obj;
1212
+ }
1213
+
1214
+ __destroy_into_raw() {
1215
+ const ptr = this.ptr;
1216
+ this.ptr = 0;
1217
+
1218
+ return ptr;
1219
+ }
1220
+
1221
+ free() {
1222
+ const ptr = this.__destroy_into_raw();
1223
+ wasm.__wbg_wasmtagobserveobjectstateborrowresult_free(ptr);
1224
+ }
1225
+ /**
1226
+ */
1227
+ get error() {
1228
+ var ret = wasm.__wbg_get_wasmtagobserveobjectstateborrowresult_error(this.ptr);
1229
+ return ret >>> 0;
1230
+ }
1231
+ /**
1232
+ * @param {number} arg0
1233
+ */
1234
+ set error(arg0) {
1235
+ wasm.__wbg_set_wasmtagobserveobjectstateborrowresult_error(this.ptr, arg0);
1236
+ }
1237
+ /**
1238
+ */
1239
+ get state_pointer() {
1240
+ var ret = wasm.__wbg_get_wasmtagobserveobjectstateborrowresult_state_pointer(this.ptr);
1241
+ return ret;
1242
+ }
1243
+ /**
1244
+ * @param {number} arg0
1245
+ */
1246
+ set state_pointer(arg0) {
1247
+ wasm.__wbg_set_wasmtagobserveobjectstateborrowresult_state_pointer(this.ptr, arg0);
1248
+ }
1249
+ }
1250
+ /**
1251
+ */
1252
+ class WasmTagObserveResult {
1253
+
1254
+ static __wrap(ptr) {
1255
+ const obj = Object.create(WasmTagObserveResult.prototype);
1256
+ obj.ptr = ptr;
1257
+
1258
+ return obj;
1259
+ }
1260
+
1261
+ __destroy_into_raw() {
1262
+ const ptr = this.ptr;
1263
+ this.ptr = 0;
1264
+
1265
+ return ptr;
1266
+ }
1267
+
1268
+ free() {
1269
+ const ptr = this.__destroy_into_raw();
1270
+ wasm.__wbg_wasmtagobserveresult_free(ptr);
1271
+ }
1272
+ /**
1273
+ */
1274
+ get error() {
1275
+ var ret = wasm.__wbg_get_wasmtagobserveresult_error(this.ptr);
1276
+ return ret >>> 0;
1277
+ }
1278
+ /**
1279
+ * @param {number} arg0
1280
+ */
1281
+ set error(arg0) {
1282
+ wasm.__wbg_set_wasmtagobserveresult_error(this.ptr, arg0);
1283
+ }
1284
+ /**
1285
+ */
1286
+ get tag_observe_pointer() {
1287
+ var ret = wasm.__wbg_get_wasmtagobserveresult_tag_observe_pointer(this.ptr);
1288
+ return ret;
1289
+ }
1290
+ /**
1291
+ * @param {number} arg0
1292
+ */
1293
+ set tag_observe_pointer(arg0) {
1294
+ wasm.__wbg_set_wasmtagobserveresult_tag_observe_pointer(this.ptr, arg0);
1295
+ }
1296
+ }
1297
+
1298
+ async function load(module, imports) {
1299
+ if (typeof Response === 'function' && module instanceof Response) {
1300
+ if (typeof WebAssembly.instantiateStreaming === 'function') {
1301
+ try {
1302
+ return await WebAssembly.instantiateStreaming(module, imports);
1303
+
1304
+ } catch (e) {
1305
+ if (module.headers.get('Content-Type') != 'application/wasm') {
1306
+ console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
1307
+
1308
+ } else {
1309
+ throw e;
1310
+ }
1311
+ }
1312
+ }
1313
+
1314
+ const bytes = await module.arrayBuffer();
1315
+ return await WebAssembly.instantiate(bytes, imports);
1316
+
1317
+ } else {
1318
+ const instance = await WebAssembly.instantiate(module, imports);
1319
+
1320
+ if (instance instanceof WebAssembly.Instance) {
1321
+ return { instance, module };
1322
+
1323
+ } else {
1324
+ return instance;
1325
+ }
1326
+ }
1327
+ }
1328
+
1329
+ async function init(input) {
1330
+ if (typeof input === 'undefined') {
1331
+ input = new URL('hakuban_bg.wasm', import.meta.url);
1332
+ }
1333
+ const imports = {};
1334
+ imports.wbg = {};
1335
+ imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
1336
+ takeObject(arg0);
1337
+ };
1338
+ imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
1339
+ var ret = getStringFromWasm0(arg0, arg1);
1340
+ return addHeapObject(ret);
1341
+ };
1342
+ imports.wbg.__wbindgen_cb_drop = function(arg0) {
1343
+ const obj = takeObject(arg0).original;
1344
+ if (obj.cnt-- == 1) {
1345
+ obj.a = 0;
1346
+ return true;
1347
+ }
1348
+ var ret = false;
1349
+ return ret;
1350
+ };
1351
+ imports.wbg.__wbg_debug_675b0ecb65722d2a = function(arg0) {
1352
+ console.debug(getObject(arg0));
1353
+ };
1354
+ imports.wbg.__wbg_error_cc38ce2b4b661e1d = function(arg0) {
1355
+ console.error(getObject(arg0));
1356
+ };
1357
+ imports.wbg.__wbg_info_e0c9813e6fd3bdc1 = function(arg0) {
1358
+ console.info(getObject(arg0));
1359
+ };
1360
+ imports.wbg.__wbg_log_3445347661d4505e = function(arg0) {
1361
+ console.log(getObject(arg0));
1362
+ };
1363
+ imports.wbg.__wbg_warn_5ec7c7c02d0b3841 = function(arg0) {
1364
+ console.warn(getObject(arg0));
1365
+ };
1366
+ imports.wbg.__wbg_now_559193109055ebad = function(arg0) {
1367
+ var ret = getObject(arg0).now();
1368
+ return ret;
1369
+ };
1370
+ imports.wbg.__wbg_newnoargs_be86524d73f67598 = function(arg0, arg1) {
1371
+ var ret = new Function(getStringFromWasm0(arg0, arg1));
1372
+ return addHeapObject(ret);
1373
+ };
1374
+ imports.wbg.__wbg_get_4d0f21c2f823742e = function() { return handleError(function (arg0, arg1) {
1375
+ var ret = Reflect.get(getObject(arg0), getObject(arg1));
1376
+ return addHeapObject(ret);
1377
+ }, arguments) };
1378
+ imports.wbg.__wbg_call_888d259a5fefc347 = function() { return handleError(function (arg0, arg1) {
1379
+ var ret = getObject(arg0).call(getObject(arg1));
1380
+ return addHeapObject(ret);
1381
+ }, arguments) };
1382
+ imports.wbg.__wbg_call_346669c262382ad7 = function() { return handleError(function (arg0, arg1, arg2) {
1383
+ var ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
1384
+ return addHeapObject(ret);
1385
+ }, arguments) };
1386
+ imports.wbg.__wbg_new_b1d61b5687f5e73a = function(arg0, arg1) {
1387
+ try {
1388
+ var state0 = {a: arg0, b: arg1};
1389
+ var cb0 = (arg0, arg1) => {
1390
+ const a = state0.a;
1391
+ state0.a = 0;
1392
+ try {
1393
+ return __wbg_adapter_122(a, state0.b, arg0, arg1);
1394
+ } finally {
1395
+ state0.a = a;
1396
+ }
1397
+ };
1398
+ var ret = new Promise(cb0);
1399
+ return addHeapObject(ret);
1400
+ } finally {
1401
+ state0.a = state0.b = 0;
1402
+ }
1403
+ };
1404
+ imports.wbg.__wbg_resolve_d23068002f584f22 = function(arg0) {
1405
+ var ret = Promise.resolve(getObject(arg0));
1406
+ return addHeapObject(ret);
1407
+ };
1408
+ imports.wbg.__wbg_then_2fcac196782070cc = function(arg0, arg1) {
1409
+ var ret = getObject(arg0).then(getObject(arg1));
1410
+ return addHeapObject(ret);
1411
+ };
1412
+ imports.wbg.__wbg_then_8c2d62e8ae5978f7 = function(arg0, arg1, arg2) {
1413
+ var ret = getObject(arg0).then(getObject(arg1), getObject(arg2));
1414
+ return addHeapObject(ret);
1415
+ };
1416
+ imports.wbg.__wbg_self_c6fbdfc2918d5e58 = function() { return handleError(function () {
1417
+ var ret = self.self;
1418
+ return addHeapObject(ret);
1419
+ }, arguments) };
1420
+ imports.wbg.__wbg_window_baec038b5ab35c54 = function() { return handleError(function () {
1421
+ var ret = window.window;
1422
+ return addHeapObject(ret);
1423
+ }, arguments) };
1424
+ imports.wbg.__wbg_globalThis_3f735a5746d41fbd = function() { return handleError(function () {
1425
+ var ret = globalThis.globalThis;
1426
+ return addHeapObject(ret);
1427
+ }, arguments) };
1428
+ imports.wbg.__wbg_global_1bc0b39582740e95 = function() { return handleError(function () {
1429
+ var ret = global.global;
1430
+ return addHeapObject(ret);
1431
+ }, arguments) };
1432
+ imports.wbg.__wbindgen_is_undefined = function(arg0) {
1433
+ var ret = getObject(arg0) === undefined;
1434
+ return ret;
1435
+ };
1436
+ imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
1437
+ var ret = getObject(arg0);
1438
+ return addHeapObject(ret);
1439
+ };
1440
+ imports.wbg.__wbg_new_693216e109162396 = function() {
1441
+ var ret = new Error();
1442
+ return addHeapObject(ret);
1443
+ };
1444
+ imports.wbg.__wbg_stack_0ddaca5d1abfb52f = function(arg0, arg1) {
1445
+ var ret = getObject(arg1).stack;
1446
+ var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1447
+ var len0 = WASM_VECTOR_LEN;
1448
+ getInt32Memory0()[arg0 / 4 + 1] = len0;
1449
+ getInt32Memory0()[arg0 / 4 + 0] = ptr0;
1450
+ };
1451
+ imports.wbg.__wbg_error_09919627ac0992f5 = function(arg0, arg1) {
1452
+ try {
1453
+ console.error(getStringFromWasm0(arg0, arg1));
1454
+ } finally {
1455
+ wasm.__wbindgen_free(arg0, arg1);
1456
+ }
1457
+ };
1458
+ imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {
1459
+ var ret = debugString(getObject(arg1));
1460
+ var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1461
+ var len0 = WASM_VECTOR_LEN;
1462
+ getInt32Memory0()[arg0 / 4 + 1] = len0;
1463
+ getInt32Memory0()[arg0 / 4 + 0] = ptr0;
1464
+ };
1465
+ imports.wbg.__wbindgen_throw = function(arg0, arg1) {
1466
+ throw new Error(getStringFromWasm0(arg0, arg1));
1467
+ };
1468
+ imports.wbg.__wbindgen_rethrow = function(arg0) {
1469
+ throw takeObject(arg0);
1470
+ };
1471
+ imports.wbg.__wbindgen_closure_wrapper1967 = function(arg0, arg1, arg2) {
1472
+ var ret = makeMutClosure(arg0, arg1, 439, __wbg_adapter_18);
1473
+ return addHeapObject(ret);
1474
+ };
1475
+
1476
+ if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) {
1477
+ input = fetch(input);
1478
+ }
1479
+
1480
+
1481
+
1482
+ const { instance, module } = await load(await input, imports);
1483
+
1484
+ wasm = instance.exports;
1485
+ init.__wbindgen_wasm_module = module;
1486
+
1487
+ return wasm;
1488
+ }
1489
+
1490
+ var Queue;
1491
+
1492
+ Queue = class Queue {
1493
+ constructor() {
1494
+ this.queue = [];
1495
+ this.wake = null;
1496
+ }
1497
+
1498
+ push(value) {
1499
+ this.queue.push(value);
1500
+ if (this.wake != null) {
1501
+ this.wake();
1502
+ return this.wake = null;
1503
+ }
1504
+ }
1505
+
1506
+ async shift() {
1507
+ var value;
1508
+ while (true) {
1509
+ value = this.queue.shift();
1510
+ if (value != null) {
1511
+ return value;
1512
+ } else {
1513
+ if (this.wake != null) {
1514
+ throw "2 concurrent shifts on a single queue";
1515
+ }
1516
+ await new Promise((wake) => {
1517
+ this.wake = wake;
1518
+ return null;
1519
+ });
1520
+ }
1521
+ }
1522
+ }
1523
+
1524
+ clear() {
1525
+ return this.queue = [];
1526
+ }
1527
+
1528
+ };
1529
+
1530
+ var ObjectManager = class ObjectManager {
1531
+ constructor(contract, object_class, block1) {
1532
+ var event_loop_stop_requested;
1533
+ this.objects = this.objects.bind(this);
1534
+ this.object = this.object.bind(this);
1535
+ this.drop = this.drop.bind(this);
1536
+ this.contract = contract;
1537
+ this.object_class = object_class;
1538
+ this.block = block1;
1539
+ this._objects = {};
1540
+ this.running_handlers = {};
1541
+ this.event_queue = new Queue();
1542
+ //TODO: make one loop out of following two
1543
+ event_loop_stop_requested = new Promise((event_loop_stop) => {
1544
+ this.event_loop_stop = event_loop_stop;
1545
+ return null;
1546
+ });
1547
+ this.event_loop_stopped = new Promise(async(resolve, reject) => {
1548
+ var event, events;
1549
+ events = this.contract.events();
1550
+ while (event = (await Promise.race([events.next(), event_loop_stop_requested]))) {
1551
+ if (typeof event === "undefined" || event === null) {
1552
+ break;
1553
+ }
1554
+ this.event_queue.push(event);
1555
+ }
1556
+ events.drop();
1557
+ return resolve();
1558
+ });
1559
+ this.async_loop_stopped = new Promise(async(resolve, reject) => {
1560
+ var _key, event, key, object, ref, ref1;
1561
+ while ((event = (await this.event_queue.shift())) != null) {
1562
+ switch (event.action) {
1563
+ case "Insert":
1564
+ if (this._objects[event.descriptor.hash()] != null) {
1565
+ throw "Double insert";
1566
+ }
1567
+ this._objects[event.descriptor.hash()] = new this.object_class(this.contract, event.descriptor);
1568
+ if (this.block != null) {
1569
+ this.event_queue.push({
1570
+ action: "HandlerStart",
1571
+ descriptor: event.descriptor
1572
+ });
1573
+ }
1574
+ break;
1575
+ case "Change":
1576
+ if (this._objects[event.descriptor.hash()] == null) {
1577
+ throw "Uh, oh, object missing :(";
1578
+ }
1579
+ this._objects[event.descriptor.hash()].do_change("change");
1580
+ break;
1581
+ case "Remove":
1582
+ if (this._objects[event.descriptor.hash()] == null) {
1583
+ throw "Trying to remove non-existing object. Sad.";
1584
+ }
1585
+ this._objects[event.descriptor.hash()].do_change("remove");
1586
+ delete this._objects[event.descriptor.hash()];
1587
+ break;
1588
+ case "HandlerStart":
1589
+ if (((object = this._objects[event.descriptor.hash()]) != null) && !object.handler_already_run && (this.running_handlers[event.descriptor.hash()] == null)) {
1590
+ //wrapped to avoid weird capture effects
1591
+ this.running_handlers[event.descriptor.hash()] = (function(descriptor, object, block, event_queue) {
1592
+ return new Promise(async function(handler_resolve, handler_reject) {
1593
+ await object.run(block);
1594
+ event_queue.push({
1595
+ action: "HandlerFinished",
1596
+ descriptor: descriptor
1597
+ });
1598
+ return handler_resolve();
1599
+ });
1600
+ })(event.descriptor, object, this.block, this.event_queue);
1601
+ }
1602
+ break;
1603
+ case "HandlerFinished":
1604
+ if (this.running_handlers[event.descriptor.hash()] == null) {
1605
+ throw "Handler finished but it was not running. That sucks.";
1606
+ }
1607
+ delete this.running_handlers[event.descriptor.hash()];
1608
+ if (this._objects[event.descriptor.hash()] != null) {
1609
+ this.event_queue.push({
1610
+ action: "HandlerStart",
1611
+ descriptor: event.descriptor
1612
+ });
1613
+ }
1614
+ break;
1615
+ case "Drop":
1616
+ this.event_loop_stop();
1617
+ await this.event_loop_stopped;
1618
+ ref = this._objects;
1619
+ for (_key in ref) {
1620
+ object = ref[_key];
1621
+ object.do_change("remove");
1622
+ }
1623
+ while (Object.keys(this.running_handlers).length > 0) {
1624
+ event = (await this.event_queue.shift());
1625
+ if (event.action === "HandlerFinished") {
1626
+ delete this.running_handlers[event.descriptor.hash()];
1627
+ }
1628
+ }
1629
+ this.event_queue.clear();
1630
+ ref1 = this._objects;
1631
+ for (key in ref1) {
1632
+ delete this._objects[key];
1633
+ }
1634
+ this.contract.drop();
1635
+ this.contract = null;
1636
+ this.event_queue = null;
1637
+ resolve();
1638
+ return;
1639
+ default:
1640
+ throw "Unknown action: " + event.action;
1641
+ }
1642
+ }
1643
+ return reject("Queue died unexpectedly");
1644
+ });
1645
+ }
1646
+
1647
+ objects() {
1648
+ return Object.values(this._objects);
1649
+ }
1650
+
1651
+ object() {
1652
+ return Object.values(this._objects)[0];
1653
+ }
1654
+
1655
+ async drop() {
1656
+ if (this.contract) {
1657
+ this.event_queue.push({
1658
+ action: 'Drop'
1659
+ });
1660
+ return (await this.async_loop_stopped);
1661
+ }
1662
+ }
1663
+
1664
+ };
1665
+
1666
+ var ManagedObject = class ManagedObject {
1667
+ constructor(contract, descriptor1) {
1668
+ this.run = this.run.bind(this);
1669
+ this.next_event = this.next_event.bind(this);
1670
+ this.next_change = this.next_change.bind(this);
1671
+ this.do_change = this.do_change.bind(this);
1672
+ this.contract = contract;
1673
+ this.descriptor = descriptor1;
1674
+ this._changes = new Queue();
1675
+ this.handler_already_run = false;
1676
+ }
1677
+
1678
+ async run(handler) {
1679
+ this.handler_already_run = true;
1680
+ return (await handler(this));
1681
+ }
1682
+
1683
+ next_event() {
1684
+ return this.next_change();
1685
+ }
1686
+
1687
+ async next_change() {
1688
+ while (true) {
1689
+ switch ((await this._changes.shift())) {
1690
+ case "change":
1691
+ return true;
1692
+ case "remove":
1693
+ return false;
1694
+ }
1695
+ }
1696
+ }
1697
+
1698
+ do_change(change) {
1699
+ return this._changes.push(change);
1700
+ }
1701
+
1702
+ };
1703
+
1704
+ var LocalNode_finalization_registry, ObjectBuilder, ObjectDescriptorEvents, ObjectDescriptorEvents_finalization_registry, ObjectExpose, ObjectExpose_finalization_registry, ObjectObserve, ObjectObserve_finalization_registry, TagBuilder, TagExpose, TagExpose_finalization_registry, TagObserve, TagObserve_finalization_registry, WebsocketConnector_finalization_registry, logger_initialized, raise_if_error,
1705
+ boundMethodCheck = function(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new Error('Bound instance method accessed before binding'); } };
1706
+
1707
+ logger_initialized = false;
1708
+
1709
+ var initialize_wasm = async function(wasm) {
1710
+ return (await init(wasm));
1711
+ };
1712
+
1713
+ var logger_initialize = async function(log_level, skip_if_already_initialized = false) {
1714
+ var error;
1715
+ if (logger_initialized && skip_if_already_initialized) {
1716
+ return true;
1717
+ }
1718
+ if (0 === (error = (await hakuban_logger_initialize(log_level)))) {
1719
+ return logger_initialized = true;
1720
+ } else {
1721
+ console.error("Failed to initialize logger, error " + error);
1722
+ return false;
1723
+ }
1724
+ };
1725
+
1726
+ raise_if_error = function(error_code) {
1727
+ if (error_code !== 0) {
1728
+ throw "Hakuban error: " + error_code;
1729
+ }
1730
+ };
1731
+
1732
+ var JSON_serialize = function(data_type, cooked) {
1733
+ return {
1734
+ data_type: ["JSON"].concat(data_type),
1735
+ data: new TextEncoder().encode(JSON.stringify(cooked))
1736
+ };
1737
+ };
1738
+
1739
+ var JSON_deserialize = function(data_type, raw) {
1740
+ if (data_type.length === 0 || data_type[0] !== "JSON") {
1741
+ throw "Expected JSON data_type, got: " + data_type;
1742
+ }
1743
+ return {
1744
+ data_type: data_type.slice(1),
1745
+ data: JSON.parse(new TextDecoder().decode(raw))
1746
+ };
1747
+ };
1748
+
1749
+ var ObjectDescriptor = class ObjectDescriptor {
1750
+ constructor(tags, json1) {
1751
+ var tag;
1752
+ this.json = json1;
1753
+ this.tags = (function() {
1754
+ var i, len, results;
1755
+ results = [];
1756
+ for (i = 0, len = tags.length; i < len; i++) {
1757
+ tag = tags[i];
1758
+ results.push(tag instanceof TagDescriptor ? tag : new TagDescriptor(tag));
1759
+ }
1760
+ return results;
1761
+ })();
1762
+ }
1763
+
1764
+ as_json() {
1765
+ return JSON.stringify({
1766
+ tags: this.tags.map(function(tag) {
1767
+ return tag.json;
1768
+ }),
1769
+ json: this.json
1770
+ });
1771
+ }
1772
+
1773
+ hash() {
1774
+ var ret;
1775
+ if (this._hash == null) {
1776
+ this._hash = this.tags.map(function(tag) {
1777
+ return tag.hash().toString();
1778
+ }).sort().join(",") + "|";
1779
+ ret = hakuban_json_hash(JSON.stringify(this.json));
1780
+ raise_if_error(ret.error);
1781
+ this._hash += ret.hash.toString();
1782
+ }
1783
+ return this._hash;
1784
+ }
1785
+
1786
+ };
1787
+
1788
+ var TagDescriptor = class TagDescriptor {
1789
+ constructor(json1) {
1790
+ this.json = json1;
1791
+ }
1792
+
1793
+ as_json() {
1794
+ return JSON.stringify(this.json);
1795
+ }
1796
+
1797
+ hash() {
1798
+ var ret;
1799
+ if (this._hash == null) {
1800
+ ret = hakuban_json_hash(JSON.stringify(this.json));
1801
+ raise_if_error(ret.error);
1802
+ this._hash = ret.hash;
1803
+ }
1804
+ return this._hash;
1805
+ }
1806
+
1807
+ };
1808
+
1809
+ LocalNode_finalization_registry = new FinalizationRegistry((pointer) => {
1810
+ return hakuban_local_node_drop(pointer);
1811
+ });
1812
+
1813
+ var LocalNode = class LocalNode {
1814
+ constructor(name = "wasm") {
1815
+ var result;
1816
+ this.name = name;
1817
+ logger_initialize("warn", true);
1818
+ result = hakuban_local_node_new(this.name);
1819
+ raise_if_error(result.error);
1820
+ this.pointer = result.local_node_pointer;
1821
+ LocalNode_finalization_registry.register(this, this.pointer, this);
1822
+ this.with_default_serializer(JSON_serialize);
1823
+ this.with_default_deserializer(JSON_deserialize);
1824
+ }
1825
+
1826
+ destroy() {
1827
+ hakuban_local_node_drop(this.pointer);
1828
+ return LocalNode_finalization_registry.unregister(this);
1829
+ }
1830
+
1831
+ object(tags, json) {
1832
+ return new ObjectBuilder(this, this.default_serializer, this.default_deserializer, tags, json);
1833
+ }
1834
+
1835
+ tag(json) {
1836
+ return new TagBuilder(this, this.default_serializer, this.default_deserializer, json);
1837
+ }
1838
+
1839
+ with_default_serializer(default_serializer) {
1840
+ this.default_serializer = default_serializer;
1841
+ return this;
1842
+ }
1843
+
1844
+ with_default_deserializer(default_deserializer) {
1845
+ this.default_deserializer = default_deserializer;
1846
+ return this;
1847
+ }
1848
+
1849
+ };
1850
+
1851
+ ObjectBuilder = class ObjectBuilder {
1852
+ constructor(local_node, serializer, deserializer, tags1, json1) {
1853
+ this.local_node = local_node;
1854
+ this.serializer = serializer;
1855
+ this.deserializer = deserializer;
1856
+ this.tags = tags1;
1857
+ this.json = json1;
1858
+ }
1859
+
1860
+ observe() {
1861
+ return new ObjectObserve(this.local_node, new ObjectDescriptor(this.tags, this.json), this.deserializer);
1862
+ }
1863
+
1864
+ expose() {
1865
+ return new ObjectExpose(this.local_node, new ObjectDescriptor(this.tags, this.json), this.serializer);
1866
+ }
1867
+
1868
+ with_serializer(serializer) {
1869
+ this.serializer = serializer;
1870
+ return this;
1871
+ }
1872
+
1873
+ with_deserializer(deserializer) {
1874
+ this.deserializer = deserializer;
1875
+ return this;
1876
+ }
1877
+
1878
+ };
1879
+
1880
+ TagBuilder = class TagBuilder {
1881
+ constructor(local_node, serializer, deserializer, json1) {
1882
+ this.local_node = local_node;
1883
+ this.serializer = serializer;
1884
+ this.deserializer = deserializer;
1885
+ this.json = json1;
1886
+ }
1887
+
1888
+ observe() {
1889
+ return new TagObserve(this.local_node, new TagDescriptor(this.json), this.deserializer);
1890
+ }
1891
+
1892
+ expose() {
1893
+ return new TagExpose(this.local_node, new TagDescriptor(this.json), this.serializer);
1894
+ }
1895
+
1896
+ with_serializer(serializer) {
1897
+ this.serializer = serializer;
1898
+ return this;
1899
+ }
1900
+
1901
+ with_deserializer(deserializer) {
1902
+ this.deserializer = deserializer;
1903
+ return this;
1904
+ }
1905
+
1906
+ };
1907
+
1908
+ ObjectDescriptorEvents_finalization_registry = new FinalizationRegistry((pointer) => {
1909
+ return hakuban_object_descriptor_events_drop(pointer);
1910
+ });
1911
+
1912
+ ObjectDescriptorEvents = class ObjectDescriptorEvents {
1913
+ constructor(pointer1) {
1914
+ this.wait = this.wait.bind(this);
1915
+ this.next = this.next.bind(this);
1916
+ this.drop = this.drop.bind(this);
1917
+ this.pointer = pointer1;
1918
+ ObjectDescriptorEvents_finalization_registry.register(this, this.pointer, this);
1919
+ }
1920
+
1921
+ wait() {
1922
+ return next();
1923
+ }
1924
+
1925
+ next() {
1926
+ var cancel_waiting_promise, next_event_promise;
1927
+ this.wait_released = new Promise((wait_release) => {
1928
+ this.wait_release = wait_release;
1929
+ return null;
1930
+ });
1931
+ cancel_waiting_promise = new Promise((resolve) => {
1932
+ return this.cancel_waiting_resolve = resolve;
1933
+ });
1934
+ next_event_promise = hakuban_object_descriptor_events_next(this.pointer, cancel_waiting_promise);
1935
+ next_event_promise.cancel = async(value) => {
1936
+ this.cancel_waiting_resolve.resolve(value);
1937
+ return (await next_event_promise);
1938
+ };
1939
+ return next_event_promise.then((value) => {
1940
+ var parsed;
1941
+ this.wait_release();
1942
+ this.wait_released = null;
1943
+ this.cancel_waiting_resolve = null;
1944
+ parsed = JSON.parse(value);
1945
+ return {
1946
+ action: parsed.action,
1947
+ descriptor: new ObjectDescriptor(parsed.key.tags, parsed.key.json)
1948
+ };
1949
+ });
1950
+ }
1951
+
1952
+ async drop() {
1953
+ if (this.cancel_waiting_resolve != null) {
1954
+ this.cancel_waiting_resolve();
1955
+ await this.wait_released;
1956
+ }
1957
+ ObjectDescriptorEvents_finalization_registry.unregister(this);
1958
+ hakuban_object_descriptor_events_drop(this.pointer);
1959
+ return this.pointer = null;
1960
+ }
1961
+
1962
+ };
1963
+
1964
+ ObjectObserve_finalization_registry = new FinalizationRegistry((pointer) => {
1965
+ return hakuban_object_observe_drop(pointer);
1966
+ });
1967
+
1968
+ ObjectObserve = class ObjectObserve {
1969
+ constructor(local_node, descriptor1, deserializer) {
1970
+ var result;
1971
+ this.drop = this.drop.bind(this);
1972
+ this.object_state = this.object_state.bind(this);
1973
+ this.events = this.events.bind(this);
1974
+ this.async = this.async.bind(this);
1975
+ this.local_node = local_node;
1976
+ this.descriptor = descriptor1;
1977
+ this.deserializer = deserializer;
1978
+ result = hakuban_object_observe_new(this.local_node.pointer, this.descriptor.as_json());
1979
+ raise_if_error(result.error);
1980
+ this.pointer = result.object_observe_pointer;
1981
+ ObjectObserve_finalization_registry.register(this, this.pointer, this);
1982
+ this.dropped = false;
1983
+ }
1984
+
1985
+ drop() {
1986
+ this.dropped = true;
1987
+ hakuban_object_observe_drop(this.pointer);
1988
+ ObjectObserve_finalization_registry.unregister(this);
1989
+ return this.pointer = null;
1990
+ }
1991
+
1992
+ object_state() {
1993
+ var data_type, deserialized, raw, state_pointer, synchronized, version;
1994
+ if (this.pointer == null) {
1995
+ return null;
1996
+ }
1997
+ state_pointer = hakuban_object_observe_state_borrow(this.pointer);
1998
+ if (state_pointer === 0) {
1999
+ return null;
2000
+ }
2001
+ synchronized = hakuban_object_observe_state_synchronized(state_pointer);
2002
+ version = JSON.parse(hakuban_object_observe_state_data_version(state_pointer));
2003
+ data_type = JSON.parse(hakuban_object_observe_state_data_type(state_pointer));
2004
+ raw = hakuban_object_observe_state_data(state_pointer);
2005
+ hakuban_object_observe_state_return(state_pointer);
2006
+ deserialized = this.deserializer(data_type, raw);
2007
+ return {
2008
+ version: version,
2009
+ data: deserialized.data,
2010
+ data_type: deserialized.data_type,
2011
+ synchronized: synchronized
2012
+ };
2013
+ }
2014
+
2015
+ events() {
2016
+ return new ObjectDescriptorEvents(hakuban_object_observe_events_get(this.pointer));
2017
+ }
2018
+
2019
+ async(lambda) {
2020
+ var ObservedObject;
2021
+ ObservedObject = class ObservedObject extends ManagedObject {
2022
+ state() {
2023
+ var ref;
2024
+ return (ref = this.contract) != null ? ref.object_state() : void 0;
2025
+ }
2026
+
2027
+ data() {
2028
+ var ref, ref1;
2029
+ return (ref = this.contract) != null ? (ref1 = ref.object_state()) != null ? ref1.data : void 0 : void 0;
2030
+ }
2031
+
2032
+ };
2033
+ return new ObjectManager(this, ObservedObject, lambda);
2034
+ }
2035
+
2036
+ };
2037
+
2038
+ ObjectExpose_finalization_registry = new FinalizationRegistry((pointer) => {
2039
+ return hakuban_object_expose_drop(pointer);
2040
+ });
2041
+
2042
+ ObjectExpose = class ObjectExpose {
2043
+ constructor(local_node, descriptor1, serializer) {
2044
+ var result;
2045
+ this.drop = this.drop.bind(this);
2046
+ this.set_object_state = this.set_object_state.bind(this);
2047
+ this.assignment = this.assignment.bind(this);
2048
+ this.assigned = this.assigned.bind(this);
2049
+ this.desynchronize = this.desynchronize.bind(this);
2050
+ this.events = this.events.bind(this);
2051
+ this.async = this.async.bind(this);
2052
+ this.local_node = local_node;
2053
+ this.descriptor = descriptor1;
2054
+ this.serializer = serializer;
2055
+ result = hakuban_object_expose_new(this.local_node.pointer, this.descriptor.as_json());
2056
+ raise_if_error(result.error);
2057
+ this.pointer = result.object_expose_pointer;
2058
+ ObjectExpose_finalization_registry.register(this, this.pointer, this);
2059
+ this.dropped = false;
2060
+ }
2061
+
2062
+ drop() {
2063
+ this.dropped = true;
2064
+ hakuban_object_expose_drop(this.pointer);
2065
+ return ObjectExpose_finalization_registry.unregister(this);
2066
+ }
2067
+
2068
+ set_object_state(version, cooked_data, data_type = [], assignment = 0) {
2069
+ var result, serialized;
2070
+ serialized = this.serializer(data_type, cooked_data);
2071
+ if (!(typeof assignment === 'bigint')) {
2072
+ assignment = BigInt(assignment);
2073
+ }
2074
+ result = hakuban_object_expose_set_state(this.pointer, JSON.stringify(version), JSON.stringify(serialized.data_type), serialized.data, assignment);
2075
+ raise_if_error(result.error);
2076
+ return result.changed;
2077
+ }
2078
+
2079
+ assignment() {
2080
+ return hakuban_object_expose_assignment(this.pointer);
2081
+ }
2082
+
2083
+ assigned() {
2084
+ return this.assignment() > 0;
2085
+ }
2086
+
2087
+ desynchronize(assignment) {
2088
+ if (!(typeof assignment === 'bigint')) {
2089
+ assignment = BigInt(assignment);
2090
+ }
2091
+ return hakuban_object_expose_desynchronize(this.pointer, assignment);
2092
+ }
2093
+
2094
+ events() {
2095
+ return new ObjectDescriptorEvents(hakuban_object_expose_events_get(this.pointer));
2096
+ }
2097
+
2098
+ async(lambda) {
2099
+ var ExposedObject;
2100
+ ExposedObject = class ExposedObject extends ManagedObject {
2101
+ constructor(contract, descriptor) {
2102
+ super(contract, descriptor);
2103
+ this.run = this.run.bind(this);
2104
+ this.do_change = this.do_change.bind(this);
2105
+ this.assignment = this.assignment.bind(this);
2106
+ this.assigned = this.assigned.bind(this);
2107
+ this.set_state = this.set_state.bind(this);
2108
+ this.set_data = this.set_data.bind(this);
2109
+ this._assignment = contract.assignment();
2110
+ }
2111
+
2112
+ async run(handler) {
2113
+ var ref;
2114
+ boundMethodCheck(this, ExposedObject);
2115
+ await super.run(handler);
2116
+ return (ref = this.contract) != null ? ref.desynchronize(this._assignment) : void 0;
2117
+ }
2118
+
2119
+ do_change(change) {
2120
+ var ref;
2121
+ boundMethodCheck(this, ExposedObject);
2122
+ this._assignment = (ref = this.contract) != null ? ref.assignment() : void 0;
2123
+ return super.do_change(change);
2124
+ }
2125
+
2126
+ assignment() {
2127
+ var ref;
2128
+ boundMethodCheck(this, ExposedObject);
2129
+ return (ref = this.contract) != null ? ref.assignment() : void 0;
2130
+ }
2131
+
2132
+ assigned() {
2133
+ var ref;
2134
+ boundMethodCheck(this, ExposedObject);
2135
+ return (ref = this.contract) != null ? ref.assigned() : void 0;
2136
+ }
2137
+
2138
+ set_state(version, cooked_data, data_type = []) {
2139
+ var ref;
2140
+ boundMethodCheck(this, ExposedObject);
2141
+ return (ref = this.contract) != null ? ref.set_object_state(version, cooked_data, data_type, this._assignment) : void 0;
2142
+ }
2143
+
2144
+ set_data(data) {
2145
+ var timestamp;
2146
+ boundMethodCheck(this, ExposedObject);
2147
+ timestamp = new Date().getTime();
2148
+ return this.set_state([1, Math.floor(timestamp / 1000), timestamp - Math.floor(timestamp / 1000) * 1000, 0], data);
2149
+ }
2150
+
2151
+ };
2152
+ return new ObjectManager(this, ExposedObject, lambda);
2153
+ }
2154
+
2155
+ };
2156
+
2157
+ TagObserve_finalization_registry = new FinalizationRegistry((pointer) => {
2158
+ return hakuban_tag_observe_drop(pointer);
2159
+ });
2160
+
2161
+ TagObserve = class TagObserve {
2162
+ constructor(local_node, descriptor1, deserializer) {
2163
+ var result;
2164
+ this.drop = this.drop.bind(this);
2165
+ this.object_descriptors = this.object_descriptors.bind(this);
2166
+ this.object_state = this.object_state.bind(this);
2167
+ this.async = this.async.bind(this);
2168
+ this.local_node = local_node;
2169
+ this.descriptor = descriptor1;
2170
+ this.deserializer = deserializer;
2171
+ result = hakuban_tag_observe_new(this.local_node.pointer, this.descriptor.as_json());
2172
+ raise_if_error(result.error);
2173
+ this.pointer = result.tag_observe_pointer;
2174
+ TagObserve_finalization_registry.register(this, this.pointer, this);
2175
+ this.dropped = false;
2176
+ }
2177
+
2178
+ drop() {
2179
+ this.dropped = true;
2180
+ hakuban_tag_observe_drop(this.pointer);
2181
+ return TagObserve_finalization_registry.unregister(this);
2182
+ }
2183
+
2184
+ object_descriptors() {
2185
+ var descriptor_as_json, i, len, ref, result, results;
2186
+ result = hakuban_tag_observe_object_descriptors(this.pointer);
2187
+ ref = JSON.parse(result);
2188
+ results = [];
2189
+ for (i = 0, len = ref.length; i < len; i++) {
2190
+ descriptor_as_json = ref[i];
2191
+ results.push(new ObjectDescriptor(descriptor_as_json.tags, descriptor_as_json.json));
2192
+ }
2193
+ return results;
2194
+ }
2195
+
2196
+ object_state(object_descriptor) {
2197
+ var data_type, deserialized, raw, result, synchronized, version;
2198
+ result = hakuban_tag_observe_object_state_borrow(this.pointer, object_descriptor.as_json());
2199
+ if (result.error === 4) {
2200
+ return null;
2201
+ }
2202
+ if (result.state_pointer === 0) {
2203
+ return null;
2204
+ }
2205
+ synchronized = hakuban_object_observe_state_synchronized(result.state_pointer);
2206
+ version = JSON.parse(hakuban_object_observe_state_data_version(result.state_pointer));
2207
+ data_type = JSON.parse(hakuban_object_observe_state_data_type(result.state_pointer));
2208
+ raw = hakuban_object_observe_state_data(result.state_pointer);
2209
+ hakuban_object_observe_state_return(result.state_pointer);
2210
+ deserialized = this.deserializer(data_type, raw);
2211
+ return {
2212
+ version: version,
2213
+ data: deserialized.data,
2214
+ data_type: deserialized.data_type,
2215
+ synchronized: synchronized
2216
+ };
2217
+ }
2218
+
2219
+ events() {
2220
+ return new ObjectDescriptorEvents(hakuban_tag_observe_events_get(this.pointer));
2221
+ }
2222
+
2223
+ async(lambda) {
2224
+ var ObservedObject;
2225
+ ObservedObject = class ObservedObject extends ManagedObject {
2226
+ state() {
2227
+ var ref;
2228
+ return (ref = this.contract) != null ? ref.object_state(this.descriptor) : void 0;
2229
+ }
2230
+
2231
+ data() {
2232
+ var ref, ref1;
2233
+ return (ref = this.contract) != null ? (ref1 = ref.object_state(this.descriptor)) != null ? ref1.data : void 0 : void 0;
2234
+ }
2235
+
2236
+ };
2237
+ return new ObjectManager(this, ObservedObject, lambda);
2238
+ }
2239
+
2240
+ };
2241
+
2242
+ TagExpose_finalization_registry = new FinalizationRegistry((pointer) => {
2243
+ return hakuban_tag_expose_drop(pointer);
2244
+ });
2245
+
2246
+ TagExpose = class TagExpose {
2247
+ constructor(local_node, descriptor1, serializer) {
2248
+ var result;
2249
+ this.drop = this.drop.bind(this);
2250
+ this.object_descriptors = this.object_descriptors.bind(this);
2251
+ this.set_object_state = this.set_object_state.bind(this);
2252
+ this.assignment = this.assignment.bind(this);
2253
+ this.assigned = this.assigned.bind(this);
2254
+ this.desynchronize = this.desynchronize.bind(this);
2255
+ this.events = this.events.bind(this);
2256
+ this.async = this.async.bind(this);
2257
+ this.local_node = local_node;
2258
+ this.descriptor = descriptor1;
2259
+ this.serializer = serializer;
2260
+ result = hakuban_tag_expose_new(this.local_node.pointer, this.descriptor.as_json());
2261
+ raise_if_error(result.error);
2262
+ this.pointer = result.tag_expose_pointer;
2263
+ TagExpose_finalization_registry.register(this, this.pointer, this);
2264
+ this.dropped = false;
2265
+ }
2266
+
2267
+ drop() {
2268
+ this.dropped = true;
2269
+ hakuban_tag_expose_drop(this.pointer);
2270
+ return TagExpose_finalization_registry.unregister(this);
2271
+ }
2272
+
2273
+ object_descriptors() {
2274
+ var descriptor_as_json, i, len, ref, result, results;
2275
+ result = hakuban_tag_expose_object_descriptors(this.pointer);
2276
+ ref = JSON.parse(result);
2277
+ results = [];
2278
+ for (i = 0, len = ref.length; i < len; i++) {
2279
+ descriptor_as_json = ref[i];
2280
+ results.push(new ObjectDescriptor(descriptor_as_json.tags, descriptor_as_json.json));
2281
+ }
2282
+ return results;
2283
+ }
2284
+
2285
+ set_object_state(object_descriptor, version, cooked_data, data_type = [], assignment = 0) {
2286
+ var result, serialized;
2287
+ serialized = this.serializer(data_type, cooked_data);
2288
+ if (!(typeof assignment === 'bigint')) {
2289
+ assignment = BigInt(assignment);
2290
+ }
2291
+ result = hakuban_tag_expose_set_object_state(this.pointer, object_descriptor.as_json(), JSON.stringify(version), JSON.stringify(serialized.data_type), serialized.data, assignment);
2292
+ raise_if_error(result.error);
2293
+ return result.changed;
2294
+ }
2295
+
2296
+ assignment(object_descriptor) {
2297
+ var result;
2298
+ result = hakuban_tag_expose_assignment(this.pointer, object_descriptor.as_json());
2299
+ raise_if_error(result.error);
2300
+ return result.assignment;
2301
+ }
2302
+
2303
+ assigned(object_descriptor) {
2304
+ return this.assignment(object_descriptor) > 0;
2305
+ }
2306
+
2307
+ desynchronize(object_descriptor, assignment) {
2308
+ var error;
2309
+ if (!(typeof assignment === 'bigint')) {
2310
+ assignment = BigInt(assignment);
2311
+ }
2312
+ error = hakuban_tag_expose_desynchronize(this.pointer, object_descriptor.as_json(), assignment);
2313
+ return raise_if_error(error);
2314
+ }
2315
+
2316
+ events() {
2317
+ return new ObjectDescriptorEvents(hakuban_tag_expose_events_get(this.pointer));
2318
+ }
2319
+
2320
+ async(lambda) {
2321
+ var ExposedObject;
2322
+ ExposedObject = class ExposedObject extends ManagedObject {
2323
+ constructor(contract, descriptor) {
2324
+ super(contract, descriptor);
2325
+ this.run = this.run.bind(this);
2326
+ this.do_change = this.do_change.bind(this);
2327
+ this.assignment = this.assignment.bind(this);
2328
+ this.assigned = this.assigned.bind(this);
2329
+ this.set_state = this.set_state.bind(this);
2330
+ this.set_data = this.set_data.bind(this);
2331
+ this._assignment = contract.assignment(this.descriptor);
2332
+ }
2333
+
2334
+ async run(handler) {
2335
+ var ref;
2336
+ boundMethodCheck(this, ExposedObject);
2337
+ await super.run(handler);
2338
+ return (ref = this.contract) != null ? ref.desynchronize(this.descriptor, this._assignment) : void 0;
2339
+ }
2340
+
2341
+ do_change(change) {
2342
+ var ref;
2343
+ boundMethodCheck(this, ExposedObject);
2344
+ this._assignment = (ref = this.contract) != null ? ref.assignment(this.descriptor) : void 0;
2345
+ return super.do_change(change);
2346
+ }
2347
+
2348
+ assignment() {
2349
+ var ref;
2350
+ boundMethodCheck(this, ExposedObject);
2351
+ return (ref = this.contract) != null ? ref.assignment(this.descriptor) : void 0;
2352
+ }
2353
+
2354
+ assigned() {
2355
+ var ref;
2356
+ boundMethodCheck(this, ExposedObject);
2357
+ return (ref = this.contract) != null ? ref.assigned(this.descriptor) : void 0;
2358
+ }
2359
+
2360
+ set_state(version, cooked_data, data_type = []) {
2361
+ var ref;
2362
+ boundMethodCheck(this, ExposedObject);
2363
+ return (ref = this.contract) != null ? ref.set_object_state(this.descriptor, version, cooked_data, data_type, this._assignment) : void 0;
2364
+ }
2365
+
2366
+ set_data(data) {
2367
+ var timestamp;
2368
+ boundMethodCheck(this, ExposedObject);
2369
+ timestamp = new Date().getTime();
2370
+ return this.set_state([1, Math.floor(timestamp / 1000), timestamp - Math.floor(timestamp / 1000) * 1000, 0], data);
2371
+ }
2372
+
2373
+ };
2374
+ return new ObjectManager(this, ExposedObject, lambda);
2375
+ }
2376
+
2377
+ };
2378
+
2379
+ WebsocketConnector_finalization_registry = new FinalizationRegistry((pointer) => {
2380
+ return hakuban_remote_node_drop(pointer);
2381
+ });
2382
+
2383
+ //TODO: hide private methods
2384
+ //TODO: handle errors somehow
2385
+ var WebsocketConnector = class WebsocketConnector {
2386
+ constructor(local_node, uri, options = {}) {
2387
+ var result;
2388
+ this.connect = this.connect.bind(this);
2389
+ this.ping = this.ping.bind(this);
2390
+ this.send = this.send.bind(this);
2391
+ this.ack = this.ack.bind(this);
2392
+ this.local_node = local_node;
2393
+ this.uri = uri;
2394
+ this.options = options;
2395
+ this.connected = false;
2396
+ this.socket = void 0;
2397
+ this.error = void 0;
2398
+ this.reconnection_timer = void 0;
2399
+ this.reconnect_on_close = true;
2400
+ this.ack_timer = void 0;
2401
+ result = hakuban_remote_node_new(this.local_node.pointer, true, true, true);
2402
+ raise_if_error(result.error);
2403
+ this.remote_node_pointer = result.remote_node_pointer;
2404
+ this.event_loop_stop = new Promise((resolve) => {
2405
+ return this.event_loop_stop_resolve = resolve;
2406
+ });
2407
+ this.event_loop_promise = this.event_loop();
2408
+ WebsocketConnector_finalization_registry.register(this, this.remote_node_pointer, this);
2409
+ this.connect();
2410
+ }
2411
+
2412
+ async destroy() {
2413
+ this.event_loop_stop_resolve(["stop"]);
2414
+ await this.event_loop_promise;
2415
+ this.reconnect_on_close = false;
2416
+ if (this.keep_alive_interval) {
2417
+ clearInterval(this.keep_alive_interval);
2418
+ }
2419
+ if (this.reconnection_timer != null) {
2420
+ clearTimeout(this.reconnection_timer);
2421
+ this.reconnection_timer = null;
2422
+ }
2423
+ if (this.socket != null) {
2424
+ this.socket.onclose = null;
2425
+ this.socket.onerror = null;
2426
+ this.socket.onmessage = null;
2427
+ this.socket.close();
2428
+ this.socket_onclose();
2429
+ }
2430
+ if (this.ack_timer != null) {
2431
+ clearTimeout(this.ack_timer);
2432
+ this.ack_timer = null;
2433
+ }
2434
+ hakuban_remote_node_drop(this.remote_node_pointer);
2435
+ return WebsocketConnector_finalization_registry.unregister(this);
2436
+ }
2437
+
2438
+ connect() {
2439
+ var error;
2440
+ this.reconnection_timer = void 0;
2441
+ try {
2442
+ this.socket = new WebSocket(this.uri);
2443
+ } catch (error1) {
2444
+ error = error1;
2445
+ this.error = {
2446
+ while: "connecting",
2447
+ error: error
2448
+ };
2449
+ if (this.onstatuschange_proc != null) {
2450
+ this.onstatuschange_proc(this);
2451
+ }
2452
+ return false;
2453
+ }
2454
+ this.socket.binaryType = "arraybuffer";
2455
+ this.socket.onopen = () => {
2456
+ var bytes_to_send;
2457
+ if (this.options.debug) {
2458
+ console.debug('Connected to hakuban remote node');
2459
+ }
2460
+ this.connected = true;
2461
+ this.error = void 0;
2462
+ if (this.onstatuschange_proc != null) {
2463
+ this.onstatuschange_proc(this);
2464
+ }
2465
+ bytes_to_send = hakuban_remote_node_connected(this.remote_node_pointer);
2466
+ return this.send(bytes_to_send);
2467
+ };
2468
+ this.socket.onclose = this.socket_onclose = () => {
2469
+ if (this.options.debug) {
2470
+ console.debug('Disconnected from hakuban remote node');
2471
+ }
2472
+ if (this.keep_alive_interval) {
2473
+ clearInterval(this.keep_alive_interval);
2474
+ }
2475
+ this.connected = false;
2476
+ this.socket = void 0;
2477
+ hakuban_remote_node_disconnected(this.remote_node_pointer);
2478
+ if (this.onstatuschange_proc != null) {
2479
+ this.onstatuschange_proc(this);
2480
+ }
2481
+ if (this.reconnection_timer != null) {
2482
+ clearTimeout(this.reconnection_timer);
2483
+ }
2484
+ this.reconnection_timer = null;
2485
+ if (this.reconnect_on_close) {
2486
+ return this.reconnection_timer = setTimeout(this.connect, 1000);
2487
+ }
2488
+ };
2489
+ this.socket.onerror = (error) => {
2490
+ if (this.options.debug) {
2491
+ console.debug('Hakuban socket error', error);
2492
+ }
2493
+ return this.error = {
2494
+ while: "connected",
2495
+ error: error
2496
+ };
2497
+ };
2498
+ return this.socket.onmessage = (event) => {
2499
+ var bytes_to_send;
2500
+ bytes_to_send = hakuban_remote_node_received_message(this.remote_node_pointer, new Uint8Array(event.data));
2501
+ this.send(bytes_to_send);
2502
+ if (this.ack_timer != null) {
2503
+ clearTimeout(this.ack_timer);
2504
+ }
2505
+ this.ack_timer = setTimeout(this.ack, 1000);
2506
+ return null;
2507
+ };
2508
+ }
2509
+
2510
+ ping() {
2511
+ if (this.socket) {
2512
+ return this.socket.send(new Uint8Array());
2513
+ }
2514
+ }
2515
+
2516
+ send(bytes_to_send) {
2517
+ if (bytes_to_send.length > 0) {
2518
+ this.socket.send(bytes_to_send);
2519
+ if (this.keep_alive_interval) {
2520
+ clearInterval(this.keep_alive_interval);
2521
+ }
2522
+ return this.keep_alive_interval = setInterval(this.ping, 10000);
2523
+ }
2524
+ }
2525
+
2526
+ ack() {
2527
+ var bytes_to_send;
2528
+ if (this.socket != null) {
2529
+ bytes_to_send = hakuban_remote_node_ack(this.remote_node_pointer);
2530
+ if (bytes_to_send.length > 0) {
2531
+ return this.send(bytes_to_send);
2532
+ }
2533
+ }
2534
+ }
2535
+
2536
+ async event_loop() {
2537
+ var cancel_waiting_promise, cancel_waiting_resolve, event, next_local_node_event, promise;
2538
+ next_local_node_event = false;
2539
+ cancel_waiting_resolve = null;
2540
+ cancel_waiting_promise = new Promise(function(resolve) {
2541
+ return cancel_waiting_resolve = resolve;
2542
+ });
2543
+ while (true) {
2544
+ if (!next_local_node_event) {
2545
+ next_local_node_event = hakuban_remote_node_next_local_node_event(this.remote_node_pointer, cancel_waiting_promise).then(function(event) {
2546
+ return ["local_node_event", event];
2547
+ });
2548
+ }
2549
+ [promise, event] = (await Promise.any([this.event_loop_stop, next_local_node_event]));
2550
+ if (promise === "local_node_event") {
2551
+ next_local_node_event = false;
2552
+ setTimeout(((event) => {
2553
+ var bytes_to_send;
2554
+ if (this.connected) {
2555
+ bytes_to_send = hakuban_remote_node_received_local_node_event(this.remote_node_pointer, event);
2556
+ return this.send(bytes_to_send);
2557
+ }
2558
+ }), 0, event);
2559
+ } else {
2560
+ break;
2561
+ }
2562
+ }
2563
+ if (next_local_node_event) {
2564
+ cancel_waiting_resolve(true);
2565
+ return (await next_local_node_event);
2566
+ }
2567
+ }
2568
+
2569
+ onstatuschange(proc) {
2570
+ this.onstatuschange_proc = proc;
2571
+ if (this.onstatuschange_proc != null) {
2572
+ this.onstatuschange_proc();
2573
+ }
2574
+ return this;
2575
+ }
2576
+
2577
+ };
2578
+
2579
+ var initialize = async function(wasm) {
2580
+ return (await initialize_wasm(wasm));
2581
+ };
2582
+
2583
+ export { JSON_deserialize, JSON_serialize, LocalNode, ObjectDescriptor, TagDescriptor, WebsocketConnector, initialize, initialize_wasm, logger_initialize };
2584
+ //# sourceMappingURL=hakuban.js.map