mol_vary 0.0.96 → 0.0.98
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/node.d.ts +1 -4
- package/node.d.ts.map +1 -1
- package/node.deps.json +1 -1
- package/node.js +116 -66
- package/node.js.map +1 -1
- package/node.mjs +116 -66
- package/node.test.js +162 -96
- package/node.test.js.map +1 -1
- package/package.json +1 -3
- package/web.d.ts +1 -4
- package/web.d.ts.map +1 -1
- package/web.deps.json +1 -1
- package/web.js +116 -66
- package/web.js.map +1 -1
- package/web.mjs +116 -66
- package/web.test.js +46 -30
- package/web.test.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mol_vary",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.98",
|
|
4
4
|
"exports": {
|
|
5
5
|
"node": {
|
|
6
6
|
"import": "./node.mjs",
|
|
@@ -20,12 +20,10 @@
|
|
|
20
20
|
"$mol_fail",
|
|
21
21
|
"$mol_bigint_encode",
|
|
22
22
|
"$mol_bigint",
|
|
23
|
-
"$mol_charset_ucf_encode",
|
|
24
23
|
"$mol_charset_ucf",
|
|
25
24
|
"$mol_charset",
|
|
26
25
|
"$mol_charset_buffer",
|
|
27
26
|
"$mol_bigint_decode",
|
|
28
|
-
"$mol_charset_ucf_decode",
|
|
29
27
|
"$mol_dom",
|
|
30
28
|
"$mol_dom_context",
|
|
31
29
|
"$node",
|
package/web.d.ts
CHANGED
|
@@ -29,16 +29,13 @@ declare namespace $ {
|
|
|
29
29
|
declare namespace $ {
|
|
30
30
|
function $mol_charset_ucf_encode(str: string): Uint8Array<ArrayBuffer>;
|
|
31
31
|
function $mol_charset_ucf_encode_to(str: string, buf: Uint8Array<ArrayBuffer>, from?: number): number;
|
|
32
|
+
function $mol_charset_ucf_decode(buffer: Uint8Array<ArrayBuffer>, mode?: number): string;
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
declare namespace $ {
|
|
35
36
|
function $mol_bigint_decode(buf: Uint8Array<ArrayBuffer>): bigint;
|
|
36
37
|
}
|
|
37
38
|
|
|
38
|
-
declare namespace $ {
|
|
39
|
-
function $mol_charset_ucf_decode(buffer: Uint8Array<ArrayBuffer>, mode?: number): string;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
39
|
declare namespace $ {
|
|
43
40
|
var $mol_dom_context: typeof globalThis;
|
|
44
41
|
}
|
package/web.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../mam.d.ts","../../fail/fail.d.ts","../../bigint/encode/encode.d.ts","../../charset/buffer/buffer.d.ts","../../charset/ucf/
|
|
1
|
+
{"version":3,"sources":["../../../mam.d.ts","../../fail/fail.d.ts","../../bigint/encode/encode.d.ts","../../charset/buffer/buffer.d.ts","../../charset/ucf/ucf.d.ts","../../bigint/decode/decode.d.ts","../../dom/context/context.d.ts","../../dom/context/context.web.d.ts","../../dom/dom.d.ts","../../dom/serialize/serialize.d.ts","../../dom/parse/parse.d.ts","../vary.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACfA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;ACFA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null]}
|
package/web.deps.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"files":["mam.ts","LICENSE","README.md","mam.jam.js","tsfmt.json","package.json","tsconfig.json","lang.lang.tree","meta.lang.tree","sandbox.config.json","mol/CNAME","mol/LICENSE","mol/readme.md","mol/mol.meta.tree","mol/CONTRIBUTING.md","mol/CODE_OF_CONDUCT.md","mol/fail/fail.ts","mol/bigint/encode/encode.ts","mol/charset/
|
|
1
|
+
{"files":["mam.ts","LICENSE","README.md","mam.jam.js","tsfmt.json","package.json","tsconfig.json","lang.lang.tree","meta.lang.tree","sandbox.config.json","mol/CNAME","mol/LICENSE","mol/readme.md","mol/mol.meta.tree","mol/CONTRIBUTING.md","mol/CODE_OF_CONDUCT.md","mol/fail/fail.ts","mol/bigint/encode/encode.ts","mol/charset/buffer/buffer.ts","mol/charset/ucf/ucf.ts","mol/charset/ucf/readme.md","mol/bigint/decode/decode.ts","mol/dom/context/context.ts","mol/dom/context/context.web.ts","mol/dom/dom.ts","mol/dom/serialize/serialize.ts","mol/dom/parse/parse.ts","mol/vary/vary.ts","mol/vary/readme.md"],"mods":{},"deps_in":{"mol":{"mol/vary":-999,"mol/fail":-999,"mol/bigint":-999,"mol/charset":-999,"mol/dom":-999},"":{"mol":-999},"mol/fail":{"mol/vary":-3},"mol/bigint/encode":{"mol/vary":-4},"mol/bigint":{"mol/bigint/encode":-999,"mol/bigint/decode":-999},"mol/charset/ucf":{"mol/vary":-4},"mol/charset":{"mol/charset/ucf":-999,"mol/charset/buffer":-999},"mol/charset/buffer":{"mol/charset/ucf":-2},"mol/bigint/decode":{"mol/vary":-5},"mol/dom":{"mol/vary":-1,"mol/dom/serialize":-999,"mol/dom/parse":-999},"mol/dom/context":{"mol/dom":-1,"mol/dom/serialize":-2,"mol/dom/parse":-2},"mol/dom/context/context.ts":{"mol/dom/context":0},"mol/dom/serialize":{"mol/vary":-3},"mol/dom/parse":{"mol/vary":-3}},"deps_out":{"mol/vary":{"mol":-999,"mol/fail":-3,"mol/bigint/encode":-4,"mol/charset/ucf":-4,"mol/bigint/decode":-5,"mol/dom":-1,"mol/dom/serialize":-3,"mol/dom/parse":-3},"mol":{"":-999},"mol/fail":{"mol":-999},"mol/bigint/encode":{"mol/bigint":-999},"mol/bigint":{"mol":-999},"mol/charset/ucf":{"mol/charset":-999,"mol/charset/buffer":-2},"mol/charset":{"mol":-999},"mol/charset/buffer":{"mol/charset":-999},"mol/bigint/decode":{"mol/bigint":-999},"mol/dom":{"mol":-999,"mol/dom/context":-1},"mol/dom/context":{"mol/dom/context/context.ts":0},"mol/dom/context/context.ts":{},"mol/dom/serialize":{"mol/dom":-999,"mol/dom/context":-2},"mol/dom/parse":{"mol/dom":-999,"mol/dom/context":-2}},"sloc":{"ts":715,"LICENSE":113,"md":560,"js":9,"json":82,"tree":41,"CNAME":1},"deps":{"mol/vary":{"..":-999,"/mol/vary/tip":-1,"/mol/vary/len":-1,"/mol/vary/spec":-1,"/mol/vary/class":-1,"/mol/vary/lean":-2,"/mol/fail":-3,"/mol/vary/tip/uint":-4,"/mol/vary/tip/link":-4,"/mol/bigint/encode":-4,"/mol/vary/spec/fp64":-4,"/mol/charset/ucf/encode/to":-4,"/mol/vary/tip/text":-4,"/mol/vary/tip/blob":-4,"/mol/vary/tip/sint":-4,"/mol/vary/spec/fp16":-4,"/mol/vary/spec/fp32":-4,"/mol/vary/tip/list":-4,"/mol/vary/tip/tupl":-4,"/mol/vary/spec/both":-5,"/mol/vary/spec/true":-5,"/mol/vary/spec/fake":-5,"/mol/vary/spec/none":-5,"/mol/bigint/decode":-5,"/mol/charset/ucf/decode":-4,"/mol/vary/tip/spec":-5,"/mol/vary":-1,"/mol/vary/type":-1,"/mol/dom":-1,"/mol/dom/serialize":-3,"/mol/dom/parse":-3},"mol":{"..":-999},"":{},"mol/fail":{"..":-999,"/mol/fail":-1},"mol/bigint/encode":{"..":-999,"/mol/bigint/encode":-1},"mol/bigint":{"..":-999},"mol/charset/ucf":{"..":-999,"/mol/charset/ucf/encode":-1,"/mol/charset/buffer":-2,"/mol/charset/ucf/encode/to":-1,"/mol/charset/ucf/decode":-1},"mol/charset":{"..":-999},"mol/charset/buffer":{"..":-999,"/mol/charset/buffer":-1},"mol/bigint/decode":{"..":-999,"/mol/bigint/decode":-1},"mol/dom":{"..":-999,"/mol/dom":-1,"/mol/dom/context":-1},"mol/dom/context":{"..":-999,"/mol/dom/context":-1,"./context.ts":0},"mol/dom/context/context.ts":{"/mol/dom/context":-1},"mol/dom/serialize":{"..":-999,"/mol/dom/serialize":-1,"/mol/dom/context":-2},"mol/dom/parse":{"..":-999,"/mol/dom/parse":-1,"/mol/dom/context":-2}}}
|
package/web.js
CHANGED
|
@@ -77,57 +77,146 @@ var $;
|
|
|
77
77
|
"use strict";
|
|
78
78
|
var $;
|
|
79
79
|
(function ($) {
|
|
80
|
+
const ascii_set = [...`0123456789.,:;()'"- \n`].map(c => c.charCodeAt(0));
|
|
81
|
+
const ascii_map = new Array(0x80).fill(0);
|
|
82
|
+
for (let i = 0; i < ascii_set.length; ++i)
|
|
83
|
+
ascii_map[ascii_set[i]] = i | 0x80;
|
|
84
|
+
const diacr_set = [
|
|
85
|
+
0x00, 0x01, 0x0F, 0x0B, 0x07, 0x08, 0x12, 0x13,
|
|
86
|
+
0x02, 0x0C, 0x06, 0x11, 0x03, 0x09, 0x0A, 0x04,
|
|
87
|
+
0x28, 0x31, 0x27, 0x26, 0x23,
|
|
88
|
+
];
|
|
89
|
+
const diacr_map = new Array(0x80).fill(0);
|
|
90
|
+
for (let i = 0; i < diacr_set.length; ++i)
|
|
91
|
+
diacr_map[diacr_set[i]] = i | 0x80;
|
|
92
|
+
const wide_offset = 0x0E_00;
|
|
93
|
+
const wide_limit = 128 * 128 * 8 + wide_offset;
|
|
94
|
+
const tiny_limit = 128 * 98;
|
|
95
|
+
const full_mode = 0x95;
|
|
96
|
+
const wide_mode = 0x96;
|
|
97
|
+
const tiny_mode = 0x9E;
|
|
80
98
|
function $mol_charset_ucf_encode(str) {
|
|
81
99
|
const buf = $mol_charset_buffer(str.length * 3);
|
|
82
100
|
return buf.slice(0, $mol_charset_ucf_encode_to(str, buf));
|
|
83
101
|
}
|
|
84
102
|
$.$mol_charset_ucf_encode = $mol_charset_ucf_encode;
|
|
85
|
-
const fast_char = `0123456789.,:;()?!-'" \n`;
|
|
86
|
-
const fast_map = new Array(0x80).fill(0);
|
|
87
|
-
for (let i = 0; i < fast_char.length; ++i)
|
|
88
|
-
fast_map[fast_char[i].charCodeAt(0)] = i | 0x80;
|
|
89
103
|
function $mol_charset_ucf_encode_to(str, buf, from = 0) {
|
|
90
104
|
let pos = from;
|
|
91
|
-
let mode =
|
|
105
|
+
let mode = tiny_mode;
|
|
106
|
+
const write_high = (code) => {
|
|
107
|
+
buf[pos++] = ((code + 128 - mode) & 0x7F) | 0x80;
|
|
108
|
+
};
|
|
109
|
+
const write_remap = (code) => {
|
|
110
|
+
const fast = ascii_map[code];
|
|
111
|
+
if (fast)
|
|
112
|
+
write_high(fast);
|
|
113
|
+
else
|
|
114
|
+
buf[pos++] = code;
|
|
115
|
+
};
|
|
116
|
+
const write_mode = (m) => {
|
|
117
|
+
write_high(m);
|
|
118
|
+
mode = m;
|
|
119
|
+
};
|
|
92
120
|
for (let i = 0; i < str.length; i++) {
|
|
93
121
|
let code = str.charCodeAt(i);
|
|
94
|
-
if (code >=
|
|
122
|
+
if (code >= 0xD8_00 && code < 0xDC_00)
|
|
95
123
|
code = ((code - 0xd800) << 10) + str.charCodeAt(++i) + 0x2400;
|
|
96
124
|
if (code < 0x80) {
|
|
97
|
-
if (mode !==
|
|
98
|
-
const fast =
|
|
99
|
-
if (fast)
|
|
100
|
-
|
|
101
|
-
else
|
|
102
|
-
buf[pos++] = mode = 0x9C;
|
|
125
|
+
if (mode !== tiny_mode) {
|
|
126
|
+
const fast = ascii_map[code];
|
|
127
|
+
if (!fast)
|
|
128
|
+
write_mode(tiny_mode);
|
|
103
129
|
}
|
|
104
130
|
buf[pos++] = code;
|
|
105
131
|
}
|
|
106
|
-
else if (code <
|
|
107
|
-
const page = (code >> 7) +
|
|
132
|
+
else if (code < tiny_limit) {
|
|
133
|
+
const page = (code >> 7) + tiny_mode;
|
|
134
|
+
code &= 0x7F;
|
|
135
|
+
if (page === 164) {
|
|
136
|
+
const fast = diacr_map[code];
|
|
137
|
+
if (fast) {
|
|
138
|
+
if (mode !== tiny_mode)
|
|
139
|
+
write_mode(tiny_mode);
|
|
140
|
+
write_high(fast);
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
108
144
|
if (mode !== page)
|
|
109
|
-
|
|
110
|
-
|
|
145
|
+
write_mode(page);
|
|
146
|
+
write_remap(code);
|
|
111
147
|
}
|
|
112
|
-
else if (code <
|
|
113
|
-
code -=
|
|
114
|
-
const page = (code >>
|
|
148
|
+
else if (code < wide_limit) {
|
|
149
|
+
code -= wide_offset;
|
|
150
|
+
const page = (code >> 14) + wide_mode;
|
|
115
151
|
if (mode !== page)
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
152
|
+
write_mode(page);
|
|
153
|
+
write_remap(code & 0x7F);
|
|
154
|
+
write_remap((code >> 7) & 0x7F);
|
|
119
155
|
}
|
|
120
156
|
else {
|
|
121
|
-
if (mode !==
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
157
|
+
if (mode !== full_mode)
|
|
158
|
+
write_mode(full_mode);
|
|
159
|
+
write_remap(code & 0x7F);
|
|
160
|
+
write_remap((code >> 7) & 0x7F);
|
|
161
|
+
write_remap(code >> 14);
|
|
126
162
|
}
|
|
127
163
|
}
|
|
164
|
+
if (mode !== tiny_mode)
|
|
165
|
+
write_mode(tiny_mode);
|
|
128
166
|
return pos - from;
|
|
129
167
|
}
|
|
130
168
|
$.$mol_charset_ucf_encode_to = $mol_charset_ucf_encode_to;
|
|
169
|
+
function $mol_charset_ucf_decode(buffer, mode = tiny_mode) {
|
|
170
|
+
let text = '';
|
|
171
|
+
let pos = 0;
|
|
172
|
+
let page_offset = 0;
|
|
173
|
+
const read_code = () => {
|
|
174
|
+
let code = buffer[pos++];
|
|
175
|
+
if (code > 0x80)
|
|
176
|
+
code = ((mode + code) & 0x7F) | 0x80;
|
|
177
|
+
return code;
|
|
178
|
+
};
|
|
179
|
+
const read_remap = () => {
|
|
180
|
+
let code = read_code();
|
|
181
|
+
if (code >= 0x80)
|
|
182
|
+
code = ascii_set[code - 0x80];
|
|
183
|
+
return code;
|
|
184
|
+
};
|
|
185
|
+
while (pos < buffer.length) {
|
|
186
|
+
let code = read_code();
|
|
187
|
+
if (code < full_mode) {
|
|
188
|
+
if (mode === tiny_mode) {
|
|
189
|
+
if (code > 0x80) {
|
|
190
|
+
code = diacr_set[code - 0x080] | (6 << 7);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else if (!ascii_map[code]) {
|
|
194
|
+
if (code >= 0x80)
|
|
195
|
+
code = ascii_set[code - 0x80];
|
|
196
|
+
if (mode < tiny_mode)
|
|
197
|
+
code |= read_remap() << 7;
|
|
198
|
+
if (mode === full_mode)
|
|
199
|
+
code |= read_remap() << 14;
|
|
200
|
+
code += page_offset;
|
|
201
|
+
}
|
|
202
|
+
text += String.fromCodePoint(code);
|
|
203
|
+
}
|
|
204
|
+
else if (code >= tiny_mode) {
|
|
205
|
+
mode = code;
|
|
206
|
+
page_offset = (mode - tiny_mode) << 7;
|
|
207
|
+
}
|
|
208
|
+
else if (code === full_mode) {
|
|
209
|
+
mode = code;
|
|
210
|
+
page_offset = 0;
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
mode = code;
|
|
214
|
+
page_offset = ((mode - wide_mode) << 14) + wide_offset;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return text;
|
|
218
|
+
}
|
|
219
|
+
$.$mol_charset_ucf_decode = $mol_charset_ucf_decode;
|
|
131
220
|
})($ || ($ = {}));
|
|
132
221
|
|
|
133
222
|
;
|
|
@@ -156,45 +245,6 @@ var $;
|
|
|
156
245
|
$.$mol_bigint_decode = $mol_bigint_decode;
|
|
157
246
|
})($ || ($ = {}));
|
|
158
247
|
|
|
159
|
-
;
|
|
160
|
-
"use strict";
|
|
161
|
-
var $;
|
|
162
|
-
(function ($) {
|
|
163
|
-
const fast_char = `0123456789.,:;()?!-'" \n`;
|
|
164
|
-
function $mol_charset_ucf_decode(buffer, mode = 0x9C) {
|
|
165
|
-
let text = '';
|
|
166
|
-
let pos = 0;
|
|
167
|
-
let page_offset = 0;
|
|
168
|
-
while (pos < buffer.length) {
|
|
169
|
-
let code = buffer[pos++];
|
|
170
|
-
if (code < 0x80) {
|
|
171
|
-
if (mode < 0x9C)
|
|
172
|
-
code |= buffer[pos++] << 7;
|
|
173
|
-
if (mode === 0x97)
|
|
174
|
-
code |= buffer[pos++] << 15;
|
|
175
|
-
text += String.fromCodePoint(page_offset + code);
|
|
176
|
-
}
|
|
177
|
-
else if (code < 0x97) {
|
|
178
|
-
text += fast_char[code - 0x80];
|
|
179
|
-
}
|
|
180
|
-
else if (code >= 0x9C) {
|
|
181
|
-
mode = code;
|
|
182
|
-
page_offset = (mode - 0x9C) << 7;
|
|
183
|
-
}
|
|
184
|
-
else if (code === 0x97) {
|
|
185
|
-
mode = code;
|
|
186
|
-
page_offset = 0;
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
mode = code;
|
|
190
|
-
page_offset = ((mode - 0x98) << 15) + 0x20_00;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
return text;
|
|
194
|
-
}
|
|
195
|
-
$.$mol_charset_ucf_decode = $mol_charset_ucf_decode;
|
|
196
|
-
})($ || ($ = {}));
|
|
197
|
-
|
|
198
248
|
;
|
|
199
249
|
"use strict";
|
|
200
250
|
var $;
|
package/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["-","../../../mam.ts","../../../mol/fail/fail.ts","../../../mol/bigint/encode/encode.ts","../../../mol/charset/buffer/buffer.ts","../../../mol/charset/ucf/encode/encode.ts","../../../mol/bigint/decode/decode.ts","../../../mol/charset/ucf/decode/decode.ts","../../../mol/dom/context/context.ts","../../../mol/dom/context/context.web.ts","../../../mol/dom/dom.ts","../../../mol/dom/serialize/serialize.ts","../../../mol/dom/parse/parse.ts","../../../mol/vary/vary.ts"],"names":[],"mappings":"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","sourcesContent":[null,"Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {\n\t\tstatic $: $\n\t}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_bigint_encode( num: bigint ) {\n\n\t\tconst minus = num < 0n ? 255 : 0;\n\t\tnum = minus ? -num - 1n : num\n\t\t\n\t\tconst bytes = [] as number[]\n\t\tdo {\n\t\t\t\n\t\t\tlet byte = minus ^ Number( num & 255n )\n\t\t\tbytes.push( byte )\n\t\t\t\n\t\t\tif( num >>= 8n ) continue\n\t\t\t\n\t\t\tif(( minus & 128 )!==( byte & 128 ))\n\t\t\t\tbytes.push( minus )\n\t\t\t\n\t\t\tbreak\n\t\t\t\n\t\t} while( num )\n\t\n\t\treturn new Uint8Array(bytes);\n\t}\n\t\n}\n","namespace $ {\n\t\n\tlet buf = new Uint8Array( 2**12 ) // 4KB Mem Page\n\t\n\t/** Temporary buffer. Recursive usage isn't supported. */\n\texport function $mol_charset_buffer( size: number ) {\n\t\tif( buf.byteLength < size ) buf = new Uint8Array( size )\n\t\treturn buf\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Encode text to Unicode Compact Format. */\n\texport function $mol_charset_ucf_encode( str: string ) {\n\t\tconst buf = $mol_charset_buffer( str.length * 3 )\n\t\treturn buf.slice( 0, $mol_charset_ucf_encode_to( str, buf ) )\n\t}\n\t\n\tconst fast_char = `0123456789.,:;()?!-'\" \\n`\n\tconst fast_map = new Array( 0x80 ).fill( 0 )\n\tfor( let i = 0; i < fast_char.length; ++i ) fast_map[ fast_char[ i ].charCodeAt(0) ] = i | 0x80\n\n\texport function $mol_charset_ucf_encode_to( str: string, buf: Uint8Array< ArrayBuffer >, from = 0 ) {\n\n\t\tlet pos = from\n\t\tlet mode = 0x9C\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\tif( code >= 0xd800 && code < 0xe000 ) code = ( ( code - 0xd800 ) << 10 ) + str.charCodeAt( ++ i ) + 0x2400\n\t\t\t\n\t\t\tif( code < 0x80 ) { // ASCII\n\t\t\t\t\n\t\t\t\tif( mode !== 0x9C ) {\n\t\t\t\t\tconst fast = fast_map[ code ]\n\t\t\t\t\tif( fast ) code = fast\n\t\t\t\t\telse buf[ pos ++ ] = mode = 0x9C\n\t\t\t\t}\n\t\t\t\tbuf[ pos ++ ] = code\n\t\t\t\t\n\t\t\t} else if( code < 0x32_00 ) { // Tiny\n\t\t\t\t\n\t\t\t\tconst page = ( code >> 7 ) + 0x9C\n\t\t\t\tif( mode !== page ) buf[ pos ++ ] = mode = page\n\t\t\t\tbuf[ pos ++ ] = code & 0x7F\n\t\t\t\t\n\t\t\t} else if( code < 0x04_20_00 ) { // Wide\n\t\t\t\t\n\t\t\t\tcode -= 0x2000\n\t\t\t\tconst page = ( code >> 15 ) + 0x98\n\t\t\t\tif( mode !== page ) buf[ pos ++ ] = mode = page\n\t\t\t\tbuf[ pos ++ ] = code & 0x7F\n\t\t\t\tbuf[ pos ++ ] = code >> 7\n\t\t\t\t\n\t\t\t} else { // Full\n\t\t\t\t\n\t\t\t\tif( mode !== 0x97 ) buf[ pos ++ ] = mode = 0x97\n\t\t\t\tbuf[ pos ++ ] = code & 0x7F\n\t\t\t\tbuf[ pos ++ ] = code >> 7\n\t\t\t\tbuf[ pos ++ ] = code >> 15\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\treturn pos - from\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_bigint_decode( buf: Uint8Array< ArrayBuffer > ) {\n\t\t\n\t\tif( buf.length === 8 ) return new BigInt64Array( buf.buffer, buf.byteOffset, 1 )[0]\n\t\tif( buf.length === 4 ) return BigInt( new Int32Array( buf.buffer, buf.byteOffset, 1 )[0] )\n\t\tif( buf.length === 2 ) return BigInt( new Int16Array( buf.buffer, buf.byteOffset, 1 )[0] )\n\t\tif( buf.length === 1 ) return BigInt( new Int8Array( buf.buffer, buf.byteOffset, 1 )[0] )\n\t\t\n\t\tconst minus = ( buf.at(-1)! & 128 ) ? 255 : 0\n\t\t\n\t\tlet result = 0n\n\t\tlet offset = 0n\n\t\t\n\t\tfor( let i = 0; i < buf.length; i++, offset += 8n ) {\n\t\t\tresult |= BigInt( buf[i] ^ minus ) << offset\n\t\t}\n\t\t\n\t\tif( minus ) result = ( result + 1n ) * -1n\n\t\n\t\treturn result\n\t}\n\t\n}\n","namespace $ {\n\n\tconst fast_char = `0123456789.,:;()?!-'\" \\n`\n\t\n\t/** Decode text from Unicode Compact Format. */\n\texport function $mol_charset_ucf_decode( buffer: Uint8Array< ArrayBuffer >, mode = 0x9C ) {\n\t\t\n\t\tlet text = ''\n\t\tlet pos = 0\n\t\tlet page_offset = 0\n\t\t\n\t\twhile( pos < buffer.length ) {\n\t\t\t\n\t\t\tlet code = buffer[ pos ++ ]\n\t\t\t\n\t\t\tif( code < 0x80 ) { // Char Code\n\t\t\t\t\n\t\t\t\tif( mode < 0x9C ) code |= buffer[ pos ++ ] << 7\n\t\t\t\tif( mode === 0x97 ) code |= buffer[ pos ++ ] << 15\n\t\t\t\ttext += String.fromCodePoint( page_offset + code )\n\t\t\t\t\n\t\t\t} else if( code < 0x97 ) { // ASCII\n\t\t\t\t\n\t\t\t\ttext += fast_char[ code - 0x80 ]\n\t\t\t\t\n\t\t\t} else if( code >= 0x9C ) { // Tiny Set\n\t\t\t\t\n\t\t\t\tmode = code\n\t\t\t\tpage_offset = ( mode - 0x9C ) << 7\n\t\t\t\t\n\t\t\t} else if( code === 0x97 ) { // Full Set\n\t\t\t\t\n\t\t\t\tmode = code\n\t\t\t\tpage_offset = 0\n\t\t\t\t\n\t\t\t} else { // Wide Set\n\t\t\t\t\n\t\t\t\tmode = code\n\t\t\t\tpage_offset = ( ( mode - 0x98 ) << 15 ) + 0x20_00\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn text\n\t}\n\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = self as any\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom = $mol_dom_context\n\t\n}\n","namespace $ {\n\n\texport function $mol_dom_serialize(\n\t\tnode: Node\n\t) {\n\t\tconst serializer = new $mol_dom_context.XMLSerializer\n\t\treturn serializer.serializeToString( node )\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_parse(\n\t\ttext : string ,\n\t\ttype : DOMParserSupportedType = 'application/xhtml+xml' ,\n\t) {\n\n\t\tconst parser = new $mol_dom_context.DOMParser()\n\t\tconst doc = parser.parseFromString( text , type )\n\t\t\n\t\tconst error = doc.getElementsByTagName( 'parsererror' )\n\t\tif( error.length ) throw new Error( error[0].textContent! )\n\n\t\treturn doc\n\t}\n\n}\n","namespace $ {\n\t\n\texport enum $mol_vary_tip {\n\t\tuint = 0b000 << 5,\n\t\tlink = 0b001 << 5,\n\t\tspec = 0b010 << 5,\n\t\tlist = 0b011 << 5,\n\t\tblob = 0b100 << 5,\n\t\ttext = 0b101 << 5,\n\t\ttupl = 0b110 << 5,\n\t\tsint = 0b111 << 5,\n\t}\n\t\n\texport enum $mol_vary_len {\n\t\tL1 = 28,\n\t\tL2 = 29,\n\t\tL4 = 30,\n\t\tL8 = 31,\n\t\tLA = 32,\n\t}\n\t\n\texport enum $mol_vary_spec {\n\t\tnone = 'N'.charCodeAt(0),\n\t\ttrue = 'T'.charCodeAt(0),\n\t\tfake = 'F'.charCodeAt(0),\n\t\tboth = 'B'.charCodeAt(0),\n\t\tfp16 = 'H'.charCodeAt(0),\n\t\tfp32 = 'S'.charCodeAt(0),\n\t\tfp64 = 'D'.charCodeAt(0),\n\t\tf128 = 'Q'.charCodeAt(0),\n\t\tf256 = 'O'.charCodeAt(0),\n\t}\n\t\n\tconst pojo_maker = ( keys: readonly any[] )=> ( vals: readonly any[] )=> {\n\t\tconst obj = {} as any\n\t\tfor( let i = 0; i < keys.length; ++i ) obj[ keys[i] ] = vals[i]\n\t\treturn obj\n\t}\n\t\n\t/** VaryPack - simple fast compact data binarization format. */\n\texport class $mol_vary_class extends Object {\n\t\t\n\t\tlean_symbol = Symbol( '$mol_vary_lean' )\n\t\n\t\tarray = new Uint8Array( 256 )\n\t\tbuffer = new DataView( this.array.buffer )\n\t\t\n\t\t/** Packs any data to Uint8Array with deduplication. */\n\t\tpack( data: readonly unknown[] ) {\n\t\t\t\n\t\t\tlet pos = 0\n\t\t\tlet capacity = 0\n\t\t\tconst offsets = new Map< unknown, number >()\n\t\t\tconst stack = [] as any[]\n\t\t\t\n\t\t\tconst acquire = ( size: number )=> {\n\t\t\t\tif( size < 0 ) return\n\t\t\t\tcapacity += size\n\t\t\t\tif( this.array.byteLength >= capacity ) return\n\t\t\t\tconst buffer2 = new Uint8Array( Math.ceil( capacity / 4096 ) * 4096 )\n\t\t\t\tbuffer2.set( this.array )\n\t\t\t\tthis.array = buffer2\n\t\t\t\tthis.buffer = new DataView( this.array.buffer )\n\t\t\t}\n\t\t\t\n\t\t\tconst release = ( size: number )=> {\n\t\t\t\tcapacity -= size\n\t\t\t}\n\t\t\t\n\t\t\tconst calc_size = ( val: number ) => {\n\t\t\t\tif( val < $mol_vary_len.L1 ) return 1\n\t\t\t\tif( val < 2**8 ) return 2\n\t\t\t\tif( val < 2**16 ) return 3\n\t\t\t\tif( val < 2**32 ) return 5\n\t\t\t\tif( val < 2n**64n ) return 9\n\t\t\t\treturn $mol_fail( new Error( 'Too large number' ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_unum = ( tip: number, val: number | bigint, max = val )=> {\n\t\t\t\t\n\t\t\t\tif( max < $mol_vary_len.L1 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | Number( val )\n\t\t\t\t\trelease(8)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( tip == $mol_vary_tip.uint ) {\n\t\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( max < 2**8 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | $mol_vary_len.L1\n\t\t\t\t\tthis.array[ pos ++ ] = Number( val )\n\t\t\t\t\trelease(7)\n\t\t\t\t} else if( max < 2**16 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | $mol_vary_len.L2\n\t\t\t\t\tthis.buffer.setUint16( pos, Number( val ), true )\n\t\t\t\t\tpos += 2\n\t\t\t\t\trelease(6)\n\t\t\t\t} else if( max < 2**32 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | $mol_vary_len.L4\n\t\t\t\t\tthis.buffer.setUint32( pos, Number( val ), true )\n\t\t\t\t\tpos += 4\n\t\t\t\t\trelease(4)\n\t\t\t\t} else if( max < 2n**64n ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | $mol_vary_len.L8\n\t\t\t\t\tthis.buffer.setBigUint64( pos, BigInt( val ), true )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else {\n\t\t\t\t\tdump_bint( val as bigint )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( tip == $mol_vary_tip.uint ) offsets.set( val, offsets.size )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_snum = ( val: number | bigint )=> {\n\t\t\t\t\n\t\t\t\tif( val > - $mol_vary_len.L1 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = Number( val )\n\t\t\t\t\trelease(8)\n\t\t\t\t\treturn \n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tif( val >= -(2**7) ) {\n\t\t\t\t\tthis.array[ pos ++ ] = - $mol_vary_len.L1\n\t\t\t\t\tthis.array[ pos ++ ] = Number( val )\n\t\t\t\t\trelease(7)\n\t\t\t\t} else if( val >= -(2**15) ) {\n\t\t\t\t\tthis.array[ pos ++ ] = -$mol_vary_len.L2\n\t\t\t\t\tthis.buffer.setInt16( pos, Number( val ), true )\n\t\t\t\t\tpos += 2\n\t\t\t\t\trelease(6)\n\t\t\t\t} else if( val >= -(2**31) ) {\n\t\t\t\t\tthis.array[ pos ++ ] = - $mol_vary_len.L4\n\t\t\t\t\tthis.buffer.setInt32( pos, Number( val ), true )\n\t\t\t\t\tpos += 4\n\t\t\t\t\trelease(4)\n\t\t\t\t} else if( val >= -(2n**63n) ) {\n\t\t\t\t\tthis.array[ pos ++ ] = - $mol_vary_len.L8\n\t\t\t\t\tthis.buffer.setBigInt64( pos, BigInt( val ), true )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else {\n\t\t\t\t\tdump_bint( val as bigint )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_bint = ( val: bigint )=> {\n\t\t\t\t\n\t\t\t\tconst buf = $mol_bigint_encode( val as bigint )\n\t\t\t\t\n\t\t\t\tif( buf.byteLength > ( 2**16 + 8 ) ) $mol_fail( new Error( 'Number too high', { cause: { val } } ) )\n\t\t\t\tacquire( buf.byteLength - 6 )\n\t\t\t\t\n\t\t\t\tthis.array[ pos ++ ] = - $mol_vary_len.LA\n\t\t\t\tthis.buffer.setUint16( pos, buf.byteLength - 9, true )\n\t\t\t\tpos += 2\n\t\t\t\t\n\t\t\t\tthis.array.set( buf, pos )\n\t\t\t\tpos += buf.byteLength\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_float = ( val: number )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\t\n\t\t\t\tthis.array[ pos ++ ] = $mol_vary_spec.fp64\n\t\t\t\tthis.buffer.setFloat64( pos, val, true )\n\t\t\t\tpos += 8\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_string = ( val: string )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tconst len_max = val.length * 3\n\t\t\t\tconst len_size = calc_size( len_max )\n\t\t\t\t\n\t\t\t\tacquire( len_max )\n\t\t\t\tconst len = $mol_charset_ucf_encode_to( val, this.array, pos + len_size )\n\t\t\t\tdump_unum( $mol_vary_tip.text, len, len_max )\n\t\t\t\tpos += len\n\t\t\t\trelease( len_max - len )\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t\treturn\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_buffer = ( val: ArrayBufferView< ArrayBuffer > )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.blob, val.byteLength )\n\t\t\t\tacquire( 1 + val.byteLength )\n\t\t\t\t\n\t\t\t\tif( val instanceof Uint8Array ) this.array[ pos ++ ] = $mol_vary_tip.uint | $mol_vary_len.L1\n\t\t\t\telse if( val instanceof Uint16Array ) this.array[ pos ++ ] = $mol_vary_tip.uint | $mol_vary_len.L2\n\t\t\t\telse if( val instanceof Uint32Array ) this.array[ pos ++ ] = $mol_vary_tip.uint | $mol_vary_len.L4\n\t\t\t\telse if( val instanceof BigUint64Array ) this.array[ pos ++ ] = $mol_vary_tip.uint | $mol_vary_len.L8\n\t\t\t\t\n\t\t\t\telse if( val instanceof Int8Array ) this.array[ pos ++ ] = $mol_vary_tip.sint | ~$mol_vary_len.L1\n\t\t\t\telse if( val instanceof Int16Array ) this.array[ pos ++ ] = $mol_vary_tip.sint | ~$mol_vary_len.L2\n\t\t\t\telse if( val instanceof Int32Array ) this.array[ pos ++ ] = $mol_vary_tip.sint | ~$mol_vary_len.L4\n\t\t\t\telse if( val instanceof BigInt64Array ) this.array[ pos ++ ] = $mol_vary_tip.sint | ~$mol_vary_len.L8\n\t\t\t\t\n\t\t\t\telse if( typeof Float16Array === 'function' && val instanceof Float16Array ) this.array[ pos ++ ] = $mol_vary_spec.fp16\n\t\t\t\telse if( val instanceof Float32Array ) this.array[ pos ++ ] = $mol_vary_spec.fp32\n\t\t\t\telse if( val instanceof Float64Array ) this.array[ pos ++ ] = $mol_vary_spec.fp64\n\t\t\t\n\t\t\t\telse $mol_fail( new Error( `Unsupported type` ) )\n\t\t\t\t\n\t\t\t\tconst src = ( val instanceof Uint8Array ) ? val : new Uint8Array( val.buffer, val.byteOffset, val.byteLength )\n\t\t\t\tthis.array.set( src, pos )\n\t\t\t\tpos += val.byteLength\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_list = ( val: any[] )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.list, val.length )\n\t\t\t\tacquire( val.length * 9 )\n\t\t\t\t\n\t\t\t\tif( stack.includes( val ) ) $mol_fail( new Error( 'Cyclic refs', { cause: { stack, val } } ) ) \n\t\t\t\tstack.push( val )\n\t\t\t\t\n\t\t\t\tfor( let i = 0; i < val.length; ++ i ) dump( val[i] )\n\t\t\t\t\n\t\t\t\tif( stack.at(-1) !== val ) $mol_fail( new Error( 'Broken stack', { cause: { stack, val } } ) )\n\t\t\t\tstack.pop()\n\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst shapes = new Map< string, any[] >()\n\t\t\tconst shape = ( val: any )=> {\n\t\t\t\tconst keys1 = Object.keys( val )\n\t\t\t\tconst key = keys1.join('\\0')\n\t\t\t\tconst keys2 = shapes.get( key ) \n\t\t\t\tif( keys2 ) return keys2\n\t\t\t\tshapes.set( key, keys1 )\n\t\t\t\treturn keys1\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_object = ( val: object )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tconst { 0: keys, 1: vals } = this.lean_find( val )?.( val ) ?? [ shape( val ), Object.values( val ) ]\n\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.tupl, vals.length )\n\t\t\t\tacquire( (vals.length+1) * 9 )\n\t\t\t\tdump_list( keys )\n\t\t\t\t\n\t\t\t\tif( stack.includes( val ) ) $mol_fail( new Error( 'Cyclic refs', { cause: { stack, val } } ) ) \n\t\t\t\tstack.push( val )\n\t\t\t\t\n\t\t\t\tfor( let i = 0; i < vals.length; ++ i ) dump( vals[i] )\n\t\t\t\t\n\t\t\t\tif( stack.at(-1) !== val ) $mol_fail( new Error( 'Broken stack', { cause: { stack, val } } ) )\n\t\t\t\tstack.pop()\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t}\n\t\t\t\n\t\t\tconst dumpers: Record< string, ( val: unknown )=> void > = {\n\t\t\t\tundefined: ()=> {\n\t\t\t\t\tthis.array[ pos ++ ] = $mol_vary_spec.both\n\t\t\t\t\tcapacity -= 8\n\t\t\t\t},\n\t\t\t\tboolean: val => {\n\t\t\t\t\tthis.array[ pos ++ ] = val ? $mol_vary_spec.true : $mol_vary_spec.fake\n\t\t\t\t\tcapacity -= 8\n\t\t\t\t},\n\t\t\t\tnumber: val => {\n\t\t\t\t\tif( !Number.isInteger( val ) ) dump_float( val as number )\n\t\t\t\t\telse dumpers.bigint( val )\n\t\t\t\t},\n\t\t\t\tbigint: val => {\n\t\t\t\t\tif( val as bigint < 0 ) {\n\t\t\t\t\t\tdump_snum( val as bigint )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdump_unum( $mol_vary_tip.uint, val as bigint )\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tstring: val => dump_string( val as string ),\n\t\t\t\tobject: val => {\n\t\t\t\t\tif( !val ) {\n\t\t\t\t\t\tcapacity -= 8\n\t\t\t\t\t\treturn this.array[ pos ++ ] = $mol_vary_spec.none\n\t\t\t\t\t}\n\t\t\t\t\tif( Array.isArray( val ) ) return dump_list( val )\n\t\t\t\t\tif( ArrayBuffer.isView( val ) ) return dump_buffer( val as ArrayBufferView< ArrayBuffer > )\n\t\t\t\t\t\n\t\t\t\t\treturn dump_object( val )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t/** Recursive fills buffer with data. */\n\t\t\tconst dump = ( val: unknown )=> {\n\t\t\t\tconst dumper = dumpers[ typeof val ]\n\t\t\t\tif( !dumper ) $mol_fail( new Error( `Unsupported type` ) )\n\t\t\t\tdumper( val )\n\t\t\t}\n\t\t\t\n\t\t\tfor( let i = 0; i < data.length; ++ i ) {\n\t\t\t\tcapacity += 9\n\t\t\t\tdump( data[i] )\n\t\t\t\tif( stack.length ) $mol_fail( new Error( 'Stack underflow', { cause: { stack, item: data[i] } } ) )\n\t\t\t\toffsets.clear()\n\t\t\t}\n\t\t\t\n\t\t\tif( pos !== capacity ) $mol_fail( new Error( 'Wrong reserved capacity', { cause: { capacity, size: pos, data } } ) )\n\t\t\t\n\t\t\treturn this.array.slice( 0, pos )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Parses buffer to rich runtime structures. */\n\t\ttake( array: Uint8Array< ArrayBuffer > ): unknown {\n\t\t\t\n\t\t\tconst buffer = new DataView( array.buffer, array.byteOffset, array.byteLength )\n\t\t\tconst stream = [] as unknown[]\n\t\t\tlet pos = 0;\n\t\t\t\n\t\t\tconst read_unum = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\t++ pos\n\t\t\t\tconst num = kind & 0b11111\n\t\t\t\tif( num < $mol_vary_len.L1 ) return num\n\t\t\t\t\n\t\t\t\tlet res = 0 as number | bigint\n\t\t\t\t\n\t\t\t\tif( num === $mol_vary_len.L1 ) {\n\t\t\t\t\tres = buffer.getUint8( pos ++ )\n\t\t\t\t} else if( num === $mol_vary_len.L2 ) {\n\t\t\t\t\tres = buffer.getUint16( pos, true )\n\t\t\t\t\tpos += 2\n\t\t\t\t} else if( num === $mol_vary_len.L4 ) {\n\t\t\t\t\tres = buffer.getUint32( pos, true )\n\t\t\t\t\tpos += 4\n\t\t\t\t} else if( num === $mol_vary_len.L8 ) {\n\t\t\t\t\tres = buffer.getBigUint64( pos, true )\n\t\t\t\t\tif( res <= Number.MAX_SAFE_INTEGER ) res = Number( res )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else {\n\t\t\t\t\t$mol_fail( new Error( 'Unsupported unum', { cause: { num } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ( kind & 0b111_00000 ) === $mol_vary_tip.uint ) stream.push( res )\n\t\t\t\t\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tconst read_snum = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tconst num = buffer.getInt8( pos ++ )\n\t\t\t\tif( num > - $mol_vary_len.L1 ) return num\n\t\t\t\t\n\t\t\t\tlet res = 0 as number | bigint\n\t\t\t\t\n\t\t\t\tif( num === - $mol_vary_len.L1 ) {\n\t\t\t\t\tres = buffer.getInt8( pos ++ )\n\t\t\t\t} else if( num === - $mol_vary_len.L2 ) {\n\t\t\t\t\tres= buffer.getInt16( pos, true )\n\t\t\t\t\tpos += 2\n\t\t\t\t} else if( num === - $mol_vary_len.L4 ) {\n\t\t\t\t\tres = buffer.getInt32( pos, true )\n\t\t\t\t\tpos += 4\n\t\t\t\t} else if( num === - $mol_vary_len.L8 ) {\n\t\t\t\t\tres = buffer.getBigInt64( pos, true )\n\t\t\t\t\tif( res >= Number.MIN_SAFE_INTEGER && res <= Number.MAX_SAFE_INTEGER ) res = Number( res )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else if( num === - $mol_vary_len.LA ) {\n\t\t\t\t\tconst len = buffer.getUint16( pos, true ) + 9\n\t\t\t\t\tpos += 2\n\t\t\t\t\tres = $mol_bigint_decode( new Uint8Array( buffer.buffer, buffer.byteOffset + pos, len ) )\n\t\t\t\t\tpos += len\n\t\t\t\t} else {\n\t\t\t\t\t$mol_fail( new Error( 'Unsupported snum', { cause: { num } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstream.push( res )\n\t\t\t\t\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tconst read_text = ( kind: number )=> {\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\tconst text = $mol_charset_ucf_decode( new Uint8Array( array.buffer, array.byteOffset + pos, len ) )\n\t\t\t\tpos += len\n\t\t\t\tstream.push( text )\n\t\t\t\treturn text\n\t\t\t}\n\t\t\t\n\t\t\tconst read_buffer = ( len: number, TypedArray: new( buf: ArrayBuffer )=> ArrayBufferView< ArrayBuffer > )=> {\n\t\t\t\tconst bin = new TypedArray( array.slice( pos, pos + len ).buffer )\n\t\t\t\tpos += len\n\t\t\t\tstream.push( bin )\n\t\t\t\treturn bin\n\t\t\t}\n\t\t\t\n\t\t\tconst read_blob = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\tconst kind_item = buffer.getUint8( pos ++ )\n\t\t\t\t\n\t\t\t\tswitch( kind_item ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_len.L1: return read_buffer( len, Uint8Array )\n\t\t\t\t\tcase $mol_vary_len.L2: return read_buffer( len, Uint16Array )\n\t\t\t\t\tcase $mol_vary_len.L4: return read_buffer( len, Uint32Array )\n\t\t\t\t\tcase $mol_vary_len.L8: return read_buffer( len, BigUint64Array )\n\t\t\t\t\t\n\t\t\t\t\tcase ~$mol_vary_len.L1 + 256: return read_buffer( len, Int8Array )\n\t\t\t\t\tcase ~$mol_vary_len.L2 + 256: return read_buffer( len, Int16Array )\n\t\t\t\t\tcase ~$mol_vary_len.L4 + 256: return read_buffer( len, Int32Array )\n\t\t\t\t\tcase ~$mol_vary_len.L8 + 256: return read_buffer( len, BigInt64Array )\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp16: return read_buffer( len, Float16Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp32: return read_buffer( len, Float32Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp64: return read_buffer( len, Float64Array )\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported blob item kind', { cause: { kind_item } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_list = ( kind: number )=> {\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\tconst list = new Array( len ) as any[]\n\t\t\t\tfor( let i = 0; i < len; ++i ) list[i] = read_vary()\n\t\t\t\tstream.push( list )\n\t\t\t\treturn list\n\t\t\t}\n\t\t\t\n\t\t\tconst read_link = ( kind: number )=> {\n\t\t\t\tconst index = read_unum( kind ) as number\n\t\t\t\tif( index >= stream.length ) $mol_fail( new Error( 'Too large index', { cause: { index, exists: stream.length } } ) )\n\t\t\t\treturn stream[ index ]\n\t\t\t}\n\t\t\t\n\t\t\tconst read_tupl = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\t\n\t\t\t\tconst keys = read_vary() as readonly string[]\n\t\t\t\tconst vals = new Array( len ) as any[]\n\t\t\t\tfor( let i = 0; i < len; ++i ) vals[i] = read_vary()\n\t\t\t\t\n\t\t\t\tconst node = this.rich_node( keys )\n\t\t\t\tlet rich = node.get( null )\n\t\t\t\t\n\t\t\t\tif( !rich ) node.set( null, rich = pojo_maker( keys ) )\n\t\t\t\t\n\t\t\t\tconst obj = rich( vals )\n\t\t\t\t\n\t\t\t\tstream.push( obj )\n\t\t\t\t\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tconst read_spec = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tswitch( kind ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.none:\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn null\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.fake:\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn false\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.true:\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.both:\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.fp64: {\n\t\t\t\t\t\tconst val = buffer.getFloat64( ++ pos, true )\n\t\t\t\t\t\tstream.push( val )\n\t\t\t\t\t\tpos += 8\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.fp32: {\n\t\t\t\t\t\tconst val = buffer.getFloat32( ++ pos, true )\n\t\t\t\t\t\tstream.push( val )\n\t\t\t\t\t\tpos += 4\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.fp16: {\n\t\t\t\t\t\tconst val = buffer.getFloat16( ++ pos, true )\n\t\t\t\t\t\tstream.push( val )\n\t\t\t\t\t\tpos += 2\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported spec', { cause: { kind } } ) )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_vary = ()=> {\n\t\t\t\t\n\t\t\t\tconst kind = buffer.getUint8( pos )\n\t\t\t\tconst tip = kind & 0b111_00000\n\t\t\t\t\n\t\t\t\tswitch( tip ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.uint: return read_unum( kind )\n\t\t\t\t\tcase $mol_vary_tip.sint: return read_snum( kind )\n\t\t\t\t\tcase $mol_vary_tip.link: return read_link( kind )\n\t\t\t\t\tcase $mol_vary_tip.text: return read_text( kind )\n\t\t\t\t\tcase $mol_vary_tip.list: return read_list( kind )\n\t\t\t\t\tcase $mol_vary_tip.blob: return read_blob( kind )\n\t\t\t\t\tcase $mol_vary_tip.tupl: return read_tupl( kind )\n\t\t\t\t\tcase $mol_vary_tip.spec: return read_spec( kind )\n\t\t\t\t\t\n\t\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported tip', { cause: { tip } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst result = [] as unknown[]\n\t\t\twhile( pos < array.byteLength ) {\n\t\t\t\tresult.push( read_vary() )\n\t\t\t\tstream.length = 0\t\n\t\t\t}\n\t\t\t\n\t\t\treturn result\n\t\t}\n\t\t\n\t\trich_index = new Map< string | null, any >([\n\t\t\t[ null, ()=> ({}) ]\n\t\t])\n\t\t\n\t\t/** Isolated Vary for custom types */\n\t\tzone() {\n\t\t\tconst room = new $mol_vary_class\n\t\t\tObject.setPrototypeOf( room, this )\n\t\t\tconst index_clone = ( map: Map< string | null, any > ): Map<any,any> => new Map(\n\t\t\t\t[ ... map ].map(\n\t\t\t\t\t([ k, v ])=> [ k, k === null ? v : index_clone( v ) ]\n\t\t\t\t)\n\t\t\t)\n\t\t\troom.rich_index = index_clone( this.rich_index )\n\t\t\treturn room\n\t\t}\n\t\t\n\t\trich_node( keys: readonly string[] ) {\n\t\t\t\n\t\t\tlet node = this.rich_index\n\t\t\tfor( let i = 0; i < keys.length; ++ i ) {\n\t\t\t\tlet sub = node.get( keys[i] )\n\t\t\t\t\n\t\t\t\tif( sub ) node = sub\n\t\t\t\telse node.set( keys[i], node = new Map )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn node\n\t\t}\n\t\t\n\t\tlean_find( val: any ) {\n\t\t\t\n\t\t\tconst lean = val[ this.lean_symbol ]\n\t\t\tif( lean ) return lean\n\t\t\t\n\t\t\tconst sup = Object.getPrototypeOf( this )\n\t\t\tif( sup === Object.prototype ) return\n\t\t\t\n\t\t\treturn sup.lean_find( val )\n\t\t}\n\t\t\n\t\t/** Adds custom types support. */\n\t\ttype<\n\t\t\tconst Instance extends object,\n\t\t\tconst Keys extends readonly any[],\n\t\t\tconst Vals extends readonly any[],\n\t\t>( { type, keys, rich, lean }: {\n\t\t\ttype: new( ... vals: any[] )=> Instance,\n\t\t\tkeys: Keys,\n\t\t\tlean: ( obj: Instance )=> Vals,\n\t\t\trich: ( vals: Vals )=> Instance,\n\t\t}) {\n\t\t\tthis.rich_node( keys ).set( null, rich )\n\t\t\t;( type.prototype as any )[ this.lean_symbol ] = ( val: Instance )=> [ keys, lean( val ) ]\n\t\t}\n\t\t\n\t}\n\t\n\texport let $mol_vary = new $mol_vary_class\n\t\t\n\t/** Native Map support */\n\t$mol_vary.type({\n\t\ttype: Map,\n\t\tkeys: [ 'keys', 'vals' ],\n\t\tlean: obj => [ [ ... obj.keys() ], [ ... obj.values() ] ],\n\t\trich: ([ keys, vals ])=> new Map( keys.map( ( k, i )=> [ k, vals[i] ] ) ),\n\t})\n\t\n\t/** Native Set support */\n\t$mol_vary.type({\n\t\ttype: Set,\n\t\tkeys: [ 'set' ],\n\t\tlean: obj => [ [ ... obj.values() ] ],\n\t\trich: ([ vals ])=> new Set( vals ),\n\t})\n\t\n\t/** Native Date support */\n\t$mol_vary.type({\n\t\ttype: Date,\n\t\tkeys: [ 'unix_time' ],\n\t\tlean: obj => [ obj.valueOf() / 1000 ],\n\t\trich: ([ ts ])=> new Date( ts * 1000 ),\n\t})\n\t\n\tif( 'Element' in $mol_dom ) { // Absent in workers\n\t\t/** Native Element support */\n\t\t$mol_vary.type({\n\t\t\ttype: $mol_dom.Element,\n\t\t\tkeys: [ 'XML' ],\n\t\t\tlean: node => [ $mol_dom_serialize( node ) ],\n\t\t\trich: ([ text ]) => $mol_dom_parse( text, 'application/xml' ).documentElement,\n\t\t})\n\t}\n\t\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["-","../../../mam.ts","../../../mol/fail/fail.ts","../../../mol/bigint/encode/encode.ts","../../../mol/charset/buffer/buffer.ts","../../../mol/charset/ucf/ucf.ts","../../../mol/bigint/decode/decode.ts","../../../mol/dom/context/context.ts","../../../mol/dom/context/context.web.ts","../../../mol/dom/dom.ts","../../../mol/dom/serialize/serialize.ts","../../../mol/dom/parse/parse.ts","../../../mol/vary/vary.ts"],"names":[],"mappings":"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","sourcesContent":[null,"Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {\n\t\tstatic $: $\n\t}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_bigint_encode( num: bigint ) {\n\n\t\tconst minus = num < 0n ? 255 : 0;\n\t\tnum = minus ? -num - 1n : num\n\t\t\n\t\tconst bytes = [] as number[]\n\t\tdo {\n\t\t\t\n\t\t\tlet byte = minus ^ Number( num & 255n )\n\t\t\tbytes.push( byte )\n\t\t\t\n\t\t\tif( num >>= 8n ) continue\n\t\t\t\n\t\t\tif(( minus & 128 )!==( byte & 128 ))\n\t\t\t\tbytes.push( minus )\n\t\t\t\n\t\t\tbreak\n\t\t\t\n\t\t} while( num )\n\t\n\t\treturn new Uint8Array(bytes);\n\t}\n\t\n}\n","namespace $ {\n\t\n\tlet buf = new Uint8Array( 2**12 ) // 4KB Mem Page\n\t\n\t/** Temporary buffer. Recursive usage isn't supported. */\n\texport function $mol_charset_buffer( size: number ) {\n\t\tif( buf.byteLength < size ) buf = new Uint8Array( size )\n\t\treturn buf\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst ascii_set = [ ... `0123456789.,:;()'\"- \\n` ].map( c => c.charCodeAt(0) )\n\tconst ascii_map = new Array< number >( 0x80 ).fill( 0 )\n\tfor( let i = 0; i < ascii_set.length; ++i ) ascii_map[ ascii_set[ i ] ] = i | 0x80\n\t\n\tconst diacr_set = [\n\t\t0x00, 0x01, 0x0F, 0x0B, 0x07, 0x08, 0x12, 0x13, // up\n\t\t0x02, 0x0C, 0x06, 0x11, 0x03, 0x09, 0x0A, 0x04, // up\n\t\t0x28, 0x31, 0x27, 0x26, 0x23, // down\n\t]\n\tconst diacr_map = new Array< number >( 0x80 ).fill( 0 )\n\tfor( let i = 0; i < diacr_set.length; ++i ) diacr_map[ diacr_set[ i ] ] = i | 0x80\n\t\n\tconst wide_offset = 0x0E_00\n\tconst wide_limit = 128 * 128 * 8 + wide_offset\n\tconst tiny_limit = 128 * 98\n\t\n\tconst full_mode = 0x95\n\tconst wide_mode = 0x96\n\tconst tiny_mode = 0x9E\n\t\n\t/** Encode text to Unicode Compact Format. */\n\texport function $mol_charset_ucf_encode( str: string ) {\n\t\tconst buf = $mol_charset_buffer( str.length * 3 )\n\t\treturn buf.slice( 0, $mol_charset_ucf_encode_to( str, buf ) )\n\t}\t\n\t\n\texport function $mol_charset_ucf_encode_to( str: string, buf: Uint8Array< ArrayBuffer >, from = 0 ) {\n\n\t\tlet pos = from\n\t\tlet mode = tiny_mode\n\t\t\n\t\tconst write_high = ( code: number )=> {\n\t\t\tbuf[ pos ++ ] = ( ( code + 128 - mode ) & 0x7F ) | 0x80\n\t\t}\n\t\t\n\t\tconst write_remap = ( code: number )=> {\n\t\t\tconst fast = ascii_map[ code ]\n\t\t\tif( fast ) write_high( fast )\n\t\t\telse buf[ pos ++ ] = code\n\t\t}\n\t\t\n\t\tconst write_mode = ( m: number )=> {\n\t\t\twrite_high( m )\n\t\t\tmode = m\n\t\t}\n\t\t\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\tif( code >= 0xD8_00 && code < 0xDC_00 ) code = ( ( code - 0xd800 ) << 10 ) + str.charCodeAt( ++ i ) + 0x2400\n\t\t\t\n\t\t\tif( code < 0x80 ) { // ASCII\n\t\t\t\t\n\t\t\t\tif( mode !== tiny_mode ) {\n\t\t\t\t\tconst fast = ascii_map[ code ]\n\t\t\t\t\tif( !fast ) write_mode( tiny_mode )\n\t\t\t\t}\n\t\t\t\tbuf[ pos ++ ] = code\n\t\t\t\t\n\t\t\t} else if( code < tiny_limit ) { // Tiny\n\t\t\t\t\n\t\t\t\tconst page = ( code >> 7 ) + tiny_mode\n\t\t\t\tcode &= 0x7F\n\t\t\t\t\n\t\t\t\tif( page === 164 ) { // diacritics\n\t\t\t\t\tconst fast = diacr_map[ code ]\n\t\t\t\t\tif( fast ) {\n\t\t\t\t\t\tif( mode !== tiny_mode ) write_mode( tiny_mode )\n\t\t\t\t\t\twrite_high( fast )\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( mode !== page ) write_mode( page )\n\t\t\t\twrite_remap( code )\n\t\t\t\t\n\t\t\t} else if( code < wide_limit ) { // Wide\n\t\t\t\t\n\t\t\t\tcode -= wide_offset\n\t\t\t\tconst page = ( code >> 14 ) + wide_mode\n\t\t\t\tif( mode !== page ) write_mode( page )\n\t\t\t\twrite_remap( code & 0x7F )\n\t\t\t\twrite_remap( ( code >> 7 ) & 0x7F )\n\t\t\t\t\n\t\t\t} else { // Full\n\t\t\t\t\n\t\t\t\tif( mode !== full_mode ) write_mode( full_mode )\n\t\t\t\twrite_remap( code & 0x7F )\n\t\t\t\twrite_remap( ( code >> 7 ) & 0x7F )\n\t\t\t\twrite_remap( code >> 14 )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tif( mode !== tiny_mode ) write_mode( tiny_mode )\n\n\t\treturn pos - from\n\t}\n\t\n\t/** Decode text from Unicode Compact Format. */\n\texport function $mol_charset_ucf_decode( buffer: Uint8Array< ArrayBuffer >, mode = tiny_mode ) {\n\t\t\n\t\tlet text = ''\n\t\tlet pos = 0\n\t\tlet page_offset = 0\n\t\t\n\t\tconst read_code = ()=> {\n\t\t\tlet code = buffer[ pos ++ ]\n\t\t\tif( code > 0x80 ) code = ( ( mode + code ) & 0x7F ) | 0x80\n\t\t\treturn code\n\t\t}\n\t\t\n\t\tconst read_remap = ()=> {\n\t\t\tlet code = read_code()\n\t\t\tif( code >= 0x80 ) code = ascii_set[ code - 0x80 ]\n\t\t\treturn code\n\t\t}\n\t\t\n\t\twhile( pos < buffer.length ) {\n\t\t\t\n\t\t\tlet code = read_code()\n\t\t\t\n\t\t\tif( code < full_mode ) { // Char Code\n\t\t\t\t\n\t\t\t\tif( mode === tiny_mode ) {\n\t\t\t\t\tif( code > 0x80 ) {\n\t\t\t\t\t\tcode = diacr_set[ code - 0x080 ] | ( 6 << 7 )\n\t\t\t\t\t}\n\t\t\t\t} else if( !ascii_map[ code ] ) {\n\t\t\t\t\tif( code >= 0x80 ) code = ascii_set[ code - 0x80 ]\n\t\t\t\t\tif( mode < tiny_mode ) code |= read_remap() << 7\n\t\t\t\t\tif( mode === full_mode ) code |= read_remap() << 14\n\t\t\t\t\tcode += page_offset\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ttext += String.fromCodePoint( code )\n\t\t\t\t\n\t\t\t} else if( code >= tiny_mode ) { // Tiny Set\n\t\t\t\t\n\t\t\t\tmode = code\n\t\t\t\tpage_offset = ( mode - tiny_mode ) << 7\n\t\t\t\t\n\t\t\t} else if( code === full_mode ) { // Full Set\n\t\t\t\t\n\t\t\t\tmode = code\n\t\t\t\tpage_offset = 0\n\t\t\t\t\n\t\t\t} else { // Wide Set\n\t\t\t\t\n\t\t\t\tmode = code\n\t\t\t\tpage_offset = ( ( mode - wide_mode ) << 14 ) + wide_offset\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn text\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_bigint_decode( buf: Uint8Array< ArrayBuffer > ) {\n\t\t\n\t\tif( buf.length === 8 ) return new BigInt64Array( buf.buffer, buf.byteOffset, 1 )[0]\n\t\tif( buf.length === 4 ) return BigInt( new Int32Array( buf.buffer, buf.byteOffset, 1 )[0] )\n\t\tif( buf.length === 2 ) return BigInt( new Int16Array( buf.buffer, buf.byteOffset, 1 )[0] )\n\t\tif( buf.length === 1 ) return BigInt( new Int8Array( buf.buffer, buf.byteOffset, 1 )[0] )\n\t\t\n\t\tconst minus = ( buf.at(-1)! & 128 ) ? 255 : 0\n\t\t\n\t\tlet result = 0n\n\t\tlet offset = 0n\n\t\t\n\t\tfor( let i = 0; i < buf.length; i++, offset += 8n ) {\n\t\t\tresult |= BigInt( buf[i] ^ minus ) << offset\n\t\t}\n\t\t\n\t\tif( minus ) result = ( result + 1n ) * -1n\n\t\n\t\treturn result\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = self as any\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom = $mol_dom_context\n\t\n}\n","namespace $ {\n\n\texport function $mol_dom_serialize(\n\t\tnode: Node\n\t) {\n\t\tconst serializer = new $mol_dom_context.XMLSerializer\n\t\treturn serializer.serializeToString( node )\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_parse(\n\t\ttext : string ,\n\t\ttype : DOMParserSupportedType = 'application/xhtml+xml' ,\n\t) {\n\n\t\tconst parser = new $mol_dom_context.DOMParser()\n\t\tconst doc = parser.parseFromString( text , type )\n\t\t\n\t\tconst error = doc.getElementsByTagName( 'parsererror' )\n\t\tif( error.length ) throw new Error( error[0].textContent! )\n\n\t\treturn doc\n\t}\n\n}\n","namespace $ {\n\t\n\texport enum $mol_vary_tip {\n\t\tuint = 0b000 << 5,\n\t\tlink = 0b001 << 5,\n\t\tspec = 0b010 << 5,\n\t\tlist = 0b011 << 5,\n\t\tblob = 0b100 << 5,\n\t\ttext = 0b101 << 5,\n\t\ttupl = 0b110 << 5,\n\t\tsint = 0b111 << 5,\n\t}\n\t\n\texport enum $mol_vary_len {\n\t\tL1 = 28,\n\t\tL2 = 29,\n\t\tL4 = 30,\n\t\tL8 = 31,\n\t\tLA = 32,\n\t}\n\t\n\texport enum $mol_vary_spec {\n\t\tnone = 'N'.charCodeAt(0),\n\t\ttrue = 'T'.charCodeAt(0),\n\t\tfake = 'F'.charCodeAt(0),\n\t\tboth = 'B'.charCodeAt(0),\n\t\tfp16 = 'H'.charCodeAt(0),\n\t\tfp32 = 'S'.charCodeAt(0),\n\t\tfp64 = 'D'.charCodeAt(0),\n\t\tf128 = 'Q'.charCodeAt(0),\n\t\tf256 = 'O'.charCodeAt(0),\n\t}\n\t\n\tconst pojo_maker = ( keys: readonly any[] )=> ( vals: readonly any[] )=> {\n\t\tconst obj = {} as any\n\t\tfor( let i = 0; i < keys.length; ++i ) obj[ keys[i] ] = vals[i]\n\t\treturn obj\n\t}\n\t\n\t/** VaryPack - simple fast compact data binarization format. */\n\texport class $mol_vary_class extends Object {\n\t\t\n\t\tlean_symbol = Symbol( '$mol_vary_lean' )\n\t\n\t\tarray = new Uint8Array( 256 )\n\t\tbuffer = new DataView( this.array.buffer )\n\t\t\n\t\t/** Packs any data to Uint8Array with deduplication. */\n\t\tpack( data: readonly unknown[] ) {\n\t\t\t\n\t\t\tlet pos = 0\n\t\t\tlet capacity = 0\n\t\t\tconst offsets = new Map< unknown, number >()\n\t\t\tconst stack = [] as any[]\n\t\t\t\n\t\t\tconst acquire = ( size: number )=> {\n\t\t\t\tif( size < 0 ) return\n\t\t\t\tcapacity += size\n\t\t\t\tif( this.array.byteLength >= capacity ) return\n\t\t\t\tconst buffer2 = new Uint8Array( Math.ceil( capacity / 4096 ) * 4096 )\n\t\t\t\tbuffer2.set( this.array )\n\t\t\t\tthis.array = buffer2\n\t\t\t\tthis.buffer = new DataView( this.array.buffer )\n\t\t\t}\n\t\t\t\n\t\t\tconst release = ( size: number )=> {\n\t\t\t\tcapacity -= size\n\t\t\t}\n\t\t\t\n\t\t\tconst calc_size = ( val: number ) => {\n\t\t\t\tif( val < $mol_vary_len.L1 ) return 1\n\t\t\t\tif( val < 2**8 ) return 2\n\t\t\t\tif( val < 2**16 ) return 3\n\t\t\t\tif( val < 2**32 ) return 5\n\t\t\t\tif( val < 2n**64n ) return 9\n\t\t\t\treturn $mol_fail( new Error( 'Too large number' ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_unum = ( tip: number, val: number | bigint, max = val )=> {\n\t\t\t\t\n\t\t\t\tif( max < $mol_vary_len.L1 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | Number( val )\n\t\t\t\t\trelease(8)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( tip == $mol_vary_tip.uint ) {\n\t\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( max < 2**8 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | $mol_vary_len.L1\n\t\t\t\t\tthis.array[ pos ++ ] = Number( val )\n\t\t\t\t\trelease(7)\n\t\t\t\t} else if( max < 2**16 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | $mol_vary_len.L2\n\t\t\t\t\tthis.buffer.setUint16( pos, Number( val ), true )\n\t\t\t\t\tpos += 2\n\t\t\t\t\trelease(6)\n\t\t\t\t} else if( max < 2**32 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | $mol_vary_len.L4\n\t\t\t\t\tthis.buffer.setUint32( pos, Number( val ), true )\n\t\t\t\t\tpos += 4\n\t\t\t\t\trelease(4)\n\t\t\t\t} else if( max < 2n**64n ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | $mol_vary_len.L8\n\t\t\t\t\tthis.buffer.setBigUint64( pos, BigInt( val ), true )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else {\n\t\t\t\t\tdump_bint( val as bigint )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( tip == $mol_vary_tip.uint ) offsets.set( val, offsets.size )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_snum = ( val: number | bigint )=> {\n\t\t\t\t\n\t\t\t\tif( val > - $mol_vary_len.L1 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = Number( val )\n\t\t\t\t\trelease(8)\n\t\t\t\t\treturn \n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tif( val >= -(2**7) ) {\n\t\t\t\t\tthis.array[ pos ++ ] = - $mol_vary_len.L1\n\t\t\t\t\tthis.array[ pos ++ ] = Number( val )\n\t\t\t\t\trelease(7)\n\t\t\t\t} else if( val >= -(2**15) ) {\n\t\t\t\t\tthis.array[ pos ++ ] = -$mol_vary_len.L2\n\t\t\t\t\tthis.buffer.setInt16( pos, Number( val ), true )\n\t\t\t\t\tpos += 2\n\t\t\t\t\trelease(6)\n\t\t\t\t} else if( val >= -(2**31) ) {\n\t\t\t\t\tthis.array[ pos ++ ] = - $mol_vary_len.L4\n\t\t\t\t\tthis.buffer.setInt32( pos, Number( val ), true )\n\t\t\t\t\tpos += 4\n\t\t\t\t\trelease(4)\n\t\t\t\t} else if( val >= -(2n**63n) ) {\n\t\t\t\t\tthis.array[ pos ++ ] = - $mol_vary_len.L8\n\t\t\t\t\tthis.buffer.setBigInt64( pos, BigInt( val ), true )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else {\n\t\t\t\t\tdump_bint( val as bigint )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_bint = ( val: bigint )=> {\n\t\t\t\t\n\t\t\t\tconst buf = $mol_bigint_encode( val as bigint )\n\t\t\t\t\n\t\t\t\tif( buf.byteLength > ( 2**16 + 8 ) ) $mol_fail( new Error( 'Number too high', { cause: { val } } ) )\n\t\t\t\tacquire( buf.byteLength - 6 )\n\t\t\t\t\n\t\t\t\tthis.array[ pos ++ ] = - $mol_vary_len.LA\n\t\t\t\tthis.buffer.setUint16( pos, buf.byteLength - 9, true )\n\t\t\t\tpos += 2\n\t\t\t\t\n\t\t\t\tthis.array.set( buf, pos )\n\t\t\t\tpos += buf.byteLength\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_float = ( val: number )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\t\n\t\t\t\tthis.array[ pos ++ ] = $mol_vary_spec.fp64\n\t\t\t\tthis.buffer.setFloat64( pos, val, true )\n\t\t\t\tpos += 8\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_string = ( val: string )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tconst len_max = val.length * 3\n\t\t\t\tconst len_size = calc_size( len_max )\n\t\t\t\t\n\t\t\t\tacquire( len_max )\n\t\t\t\tconst len = $mol_charset_ucf_encode_to( val, this.array, pos + len_size )\n\t\t\t\tdump_unum( $mol_vary_tip.text, len, len_max )\n\t\t\t\tpos += len\n\t\t\t\trelease( len_max - len )\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t\treturn\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_buffer = ( val: ArrayBufferView< ArrayBuffer > )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.blob, val.byteLength )\n\t\t\t\tacquire( 1 + val.byteLength )\n\t\t\t\t\n\t\t\t\tif( val instanceof Uint8Array ) this.array[ pos ++ ] = $mol_vary_tip.uint | $mol_vary_len.L1\n\t\t\t\telse if( val instanceof Uint16Array ) this.array[ pos ++ ] = $mol_vary_tip.uint | $mol_vary_len.L2\n\t\t\t\telse if( val instanceof Uint32Array ) this.array[ pos ++ ] = $mol_vary_tip.uint | $mol_vary_len.L4\n\t\t\t\telse if( val instanceof BigUint64Array ) this.array[ pos ++ ] = $mol_vary_tip.uint | $mol_vary_len.L8\n\t\t\t\t\n\t\t\t\telse if( val instanceof Int8Array ) this.array[ pos ++ ] = $mol_vary_tip.sint | ~$mol_vary_len.L1\n\t\t\t\telse if( val instanceof Int16Array ) this.array[ pos ++ ] = $mol_vary_tip.sint | ~$mol_vary_len.L2\n\t\t\t\telse if( val instanceof Int32Array ) this.array[ pos ++ ] = $mol_vary_tip.sint | ~$mol_vary_len.L4\n\t\t\t\telse if( val instanceof BigInt64Array ) this.array[ pos ++ ] = $mol_vary_tip.sint | ~$mol_vary_len.L8\n\t\t\t\t\n\t\t\t\telse if( typeof Float16Array === 'function' && val instanceof Float16Array ) this.array[ pos ++ ] = $mol_vary_spec.fp16\n\t\t\t\telse if( val instanceof Float32Array ) this.array[ pos ++ ] = $mol_vary_spec.fp32\n\t\t\t\telse if( val instanceof Float64Array ) this.array[ pos ++ ] = $mol_vary_spec.fp64\n\t\t\t\n\t\t\t\telse $mol_fail( new Error( `Unsupported type` ) )\n\t\t\t\t\n\t\t\t\tconst src = ( val instanceof Uint8Array ) ? val : new Uint8Array( val.buffer, val.byteOffset, val.byteLength )\n\t\t\t\tthis.array.set( src, pos )\n\t\t\t\tpos += val.byteLength\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_list = ( val: any[] )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.list, val.length )\n\t\t\t\tacquire( val.length * 9 )\n\t\t\t\t\n\t\t\t\tif( stack.includes( val ) ) $mol_fail( new Error( 'Cyclic refs', { cause: { stack, val } } ) ) \n\t\t\t\tstack.push( val )\n\t\t\t\t\n\t\t\t\tfor( let i = 0; i < val.length; ++ i ) dump( val[i] )\n\t\t\t\t\n\t\t\t\tif( stack.at(-1) !== val ) $mol_fail( new Error( 'Broken stack', { cause: { stack, val } } ) )\n\t\t\t\tstack.pop()\n\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst shapes = new Map< string, any[] >()\n\t\t\tconst shape = ( val: any )=> {\n\t\t\t\tconst keys1 = Object.keys( val )\n\t\t\t\tconst key = keys1.join('\\0')\n\t\t\t\tconst keys2 = shapes.get( key ) \n\t\t\t\tif( keys2 ) return keys2\n\t\t\t\tshapes.set( key, keys1 )\n\t\t\t\treturn keys1\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_object = ( val: object )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tconst { 0: keys, 1: vals } = this.lean_find( val )?.( val ) ?? [ shape( val ), Object.values( val ) ]\n\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.tupl, vals.length )\n\t\t\t\tacquire( (vals.length+1) * 9 )\n\t\t\t\tdump_list( keys )\n\t\t\t\t\n\t\t\t\tif( stack.includes( val ) ) $mol_fail( new Error( 'Cyclic refs', { cause: { stack, val } } ) ) \n\t\t\t\tstack.push( val )\n\t\t\t\t\n\t\t\t\tfor( let i = 0; i < vals.length; ++ i ) dump( vals[i] )\n\t\t\t\t\n\t\t\t\tif( stack.at(-1) !== val ) $mol_fail( new Error( 'Broken stack', { cause: { stack, val } } ) )\n\t\t\t\tstack.pop()\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t}\n\t\t\t\n\t\t\tconst dumpers: Record< string, ( val: unknown )=> void > = {\n\t\t\t\tundefined: ()=> {\n\t\t\t\t\tthis.array[ pos ++ ] = $mol_vary_spec.both\n\t\t\t\t\tcapacity -= 8\n\t\t\t\t},\n\t\t\t\tboolean: val => {\n\t\t\t\t\tthis.array[ pos ++ ] = val ? $mol_vary_spec.true : $mol_vary_spec.fake\n\t\t\t\t\tcapacity -= 8\n\t\t\t\t},\n\t\t\t\tnumber: val => {\n\t\t\t\t\tif( !Number.isInteger( val ) ) dump_float( val as number )\n\t\t\t\t\telse dumpers.bigint( val )\n\t\t\t\t},\n\t\t\t\tbigint: val => {\n\t\t\t\t\tif( val as bigint < 0 ) {\n\t\t\t\t\t\tdump_snum( val as bigint )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdump_unum( $mol_vary_tip.uint, val as bigint )\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tstring: val => dump_string( val as string ),\n\t\t\t\tobject: val => {\n\t\t\t\t\tif( !val ) {\n\t\t\t\t\t\tcapacity -= 8\n\t\t\t\t\t\treturn this.array[ pos ++ ] = $mol_vary_spec.none\n\t\t\t\t\t}\n\t\t\t\t\tif( Array.isArray( val ) ) return dump_list( val )\n\t\t\t\t\tif( ArrayBuffer.isView( val ) ) return dump_buffer( val as ArrayBufferView< ArrayBuffer > )\n\t\t\t\t\t\n\t\t\t\t\treturn dump_object( val )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t/** Recursive fills buffer with data. */\n\t\t\tconst dump = ( val: unknown )=> {\n\t\t\t\tconst dumper = dumpers[ typeof val ]\n\t\t\t\tif( !dumper ) $mol_fail( new Error( `Unsupported type` ) )\n\t\t\t\tdumper( val )\n\t\t\t}\n\t\t\t\n\t\t\tfor( let i = 0; i < data.length; ++ i ) {\n\t\t\t\tcapacity += 9\n\t\t\t\tdump( data[i] )\n\t\t\t\tif( stack.length ) $mol_fail( new Error( 'Stack underflow', { cause: { stack, item: data[i] } } ) )\n\t\t\t\toffsets.clear()\n\t\t\t}\n\t\t\t\n\t\t\tif( pos !== capacity ) $mol_fail( new Error( 'Wrong reserved capacity', { cause: { capacity, size: pos, data } } ) )\n\t\t\t\n\t\t\treturn this.array.slice( 0, pos )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Parses buffer to rich runtime structures. */\n\t\ttake( array: Uint8Array< ArrayBuffer > ): unknown {\n\t\t\t\n\t\t\tconst buffer = new DataView( array.buffer, array.byteOffset, array.byteLength )\n\t\t\tconst stream = [] as unknown[]\n\t\t\tlet pos = 0;\n\t\t\t\n\t\t\tconst read_unum = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\t++ pos\n\t\t\t\tconst num = kind & 0b11111\n\t\t\t\tif( num < $mol_vary_len.L1 ) return num\n\t\t\t\t\n\t\t\t\tlet res = 0 as number | bigint\n\t\t\t\t\n\t\t\t\tif( num === $mol_vary_len.L1 ) {\n\t\t\t\t\tres = buffer.getUint8( pos ++ )\n\t\t\t\t} else if( num === $mol_vary_len.L2 ) {\n\t\t\t\t\tres = buffer.getUint16( pos, true )\n\t\t\t\t\tpos += 2\n\t\t\t\t} else if( num === $mol_vary_len.L4 ) {\n\t\t\t\t\tres = buffer.getUint32( pos, true )\n\t\t\t\t\tpos += 4\n\t\t\t\t} else if( num === $mol_vary_len.L8 ) {\n\t\t\t\t\tres = buffer.getBigUint64( pos, true )\n\t\t\t\t\tif( res <= Number.MAX_SAFE_INTEGER ) res = Number( res )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else {\n\t\t\t\t\t$mol_fail( new Error( 'Unsupported unum', { cause: { num } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ( kind & 0b111_00000 ) === $mol_vary_tip.uint ) stream.push( res )\n\t\t\t\t\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tconst read_snum = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tconst num = buffer.getInt8( pos ++ )\n\t\t\t\tif( num > - $mol_vary_len.L1 ) return num\n\t\t\t\t\n\t\t\t\tlet res = 0 as number | bigint\n\t\t\t\t\n\t\t\t\tif( num === - $mol_vary_len.L1 ) {\n\t\t\t\t\tres = buffer.getInt8( pos ++ )\n\t\t\t\t} else if( num === - $mol_vary_len.L2 ) {\n\t\t\t\t\tres= buffer.getInt16( pos, true )\n\t\t\t\t\tpos += 2\n\t\t\t\t} else if( num === - $mol_vary_len.L4 ) {\n\t\t\t\t\tres = buffer.getInt32( pos, true )\n\t\t\t\t\tpos += 4\n\t\t\t\t} else if( num === - $mol_vary_len.L8 ) {\n\t\t\t\t\tres = buffer.getBigInt64( pos, true )\n\t\t\t\t\tif( res >= Number.MIN_SAFE_INTEGER && res <= Number.MAX_SAFE_INTEGER ) res = Number( res )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else if( num === - $mol_vary_len.LA ) {\n\t\t\t\t\tconst len = buffer.getUint16( pos, true ) + 9\n\t\t\t\t\tpos += 2\n\t\t\t\t\tres = $mol_bigint_decode( new Uint8Array( buffer.buffer, buffer.byteOffset + pos, len ) )\n\t\t\t\t\tpos += len\n\t\t\t\t} else {\n\t\t\t\t\t$mol_fail( new Error( 'Unsupported snum', { cause: { num } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstream.push( res )\n\t\t\t\t\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tconst read_text = ( kind: number )=> {\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\tconst text = $mol_charset_ucf_decode( new Uint8Array( array.buffer, array.byteOffset + pos, len ) )\n\t\t\t\tpos += len\n\t\t\t\tstream.push( text )\n\t\t\t\treturn text\n\t\t\t}\n\t\t\t\n\t\t\tconst read_buffer = ( len: number, TypedArray: new( buf: ArrayBuffer )=> ArrayBufferView< ArrayBuffer > )=> {\n\t\t\t\tconst bin = new TypedArray( array.slice( pos, pos + len ).buffer )\n\t\t\t\tpos += len\n\t\t\t\tstream.push( bin )\n\t\t\t\treturn bin\n\t\t\t}\n\t\t\t\n\t\t\tconst read_blob = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\tconst kind_item = buffer.getUint8( pos ++ )\n\t\t\t\t\n\t\t\t\tswitch( kind_item ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_len.L1: return read_buffer( len, Uint8Array )\n\t\t\t\t\tcase $mol_vary_len.L2: return read_buffer( len, Uint16Array )\n\t\t\t\t\tcase $mol_vary_len.L4: return read_buffer( len, Uint32Array )\n\t\t\t\t\tcase $mol_vary_len.L8: return read_buffer( len, BigUint64Array )\n\t\t\t\t\t\n\t\t\t\t\tcase ~$mol_vary_len.L1 + 256: return read_buffer( len, Int8Array )\n\t\t\t\t\tcase ~$mol_vary_len.L2 + 256: return read_buffer( len, Int16Array )\n\t\t\t\t\tcase ~$mol_vary_len.L4 + 256: return read_buffer( len, Int32Array )\n\t\t\t\t\tcase ~$mol_vary_len.L8 + 256: return read_buffer( len, BigInt64Array )\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp16: return read_buffer( len, Float16Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp32: return read_buffer( len, Float32Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp64: return read_buffer( len, Float64Array )\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported blob item kind', { cause: { kind_item } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_list = ( kind: number )=> {\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\tconst list = new Array( len ) as any[]\n\t\t\t\tfor( let i = 0; i < len; ++i ) list[i] = read_vary()\n\t\t\t\tstream.push( list )\n\t\t\t\treturn list\n\t\t\t}\n\t\t\t\n\t\t\tconst read_link = ( kind: number )=> {\n\t\t\t\tconst index = read_unum( kind ) as number\n\t\t\t\tif( index >= stream.length ) $mol_fail( new Error( 'Too large index', { cause: { index, exists: stream.length } } ) )\n\t\t\t\treturn stream[ index ]\n\t\t\t}\n\t\t\t\n\t\t\tconst read_tupl = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\t\n\t\t\t\tconst keys = read_vary() as readonly string[]\n\t\t\t\tconst vals = new Array( len ) as any[]\n\t\t\t\tfor( let i = 0; i < len; ++i ) vals[i] = read_vary()\n\t\t\t\t\n\t\t\t\tconst node = this.rich_node( keys )\n\t\t\t\tlet rich = node.get( null )\n\t\t\t\t\n\t\t\t\tif( !rich ) node.set( null, rich = pojo_maker( keys ) )\n\t\t\t\t\n\t\t\t\tconst obj = rich( vals )\n\t\t\t\t\n\t\t\t\tstream.push( obj )\n\t\t\t\t\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tconst read_spec = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tswitch( kind ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.none:\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn null\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.fake:\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn false\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.true:\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.both:\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.fp64: {\n\t\t\t\t\t\tconst val = buffer.getFloat64( ++ pos, true )\n\t\t\t\t\t\tstream.push( val )\n\t\t\t\t\t\tpos += 8\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.fp32: {\n\t\t\t\t\t\tconst val = buffer.getFloat32( ++ pos, true )\n\t\t\t\t\t\tstream.push( val )\n\t\t\t\t\t\tpos += 4\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.fp16: {\n\t\t\t\t\t\tconst val = buffer.getFloat16( ++ pos, true )\n\t\t\t\t\t\tstream.push( val )\n\t\t\t\t\t\tpos += 2\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported spec', { cause: { kind } } ) )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_vary = ()=> {\n\t\t\t\t\n\t\t\t\tconst kind = buffer.getUint8( pos )\n\t\t\t\tconst tip = kind & 0b111_00000\n\t\t\t\t\n\t\t\t\tswitch( tip ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.uint: return read_unum( kind )\n\t\t\t\t\tcase $mol_vary_tip.sint: return read_snum( kind )\n\t\t\t\t\tcase $mol_vary_tip.link: return read_link( kind )\n\t\t\t\t\tcase $mol_vary_tip.text: return read_text( kind )\n\t\t\t\t\tcase $mol_vary_tip.list: return read_list( kind )\n\t\t\t\t\tcase $mol_vary_tip.blob: return read_blob( kind )\n\t\t\t\t\tcase $mol_vary_tip.tupl: return read_tupl( kind )\n\t\t\t\t\tcase $mol_vary_tip.spec: return read_spec( kind )\n\t\t\t\t\t\n\t\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported tip', { cause: { tip } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst result = [] as unknown[]\n\t\t\twhile( pos < array.byteLength ) {\n\t\t\t\tresult.push( read_vary() )\n\t\t\t\tstream.length = 0\t\n\t\t\t}\n\t\t\t\n\t\t\treturn result\n\t\t}\n\t\t\n\t\trich_index = new Map< string | null, any >([\n\t\t\t[ null, ()=> ({}) ]\n\t\t])\n\t\t\n\t\t/** Isolated Vary for custom types */\n\t\tzone() {\n\t\t\tconst room = new $mol_vary_class\n\t\t\tObject.setPrototypeOf( room, this )\n\t\t\tconst index_clone = ( map: Map< string | null, any > ): Map<any,any> => new Map(\n\t\t\t\t[ ... map ].map(\n\t\t\t\t\t([ k, v ])=> [ k, k === null ? v : index_clone( v ) ]\n\t\t\t\t)\n\t\t\t)\n\t\t\troom.rich_index = index_clone( this.rich_index )\n\t\t\treturn room\n\t\t}\n\t\t\n\t\trich_node( keys: readonly string[] ) {\n\t\t\t\n\t\t\tlet node = this.rich_index\n\t\t\tfor( let i = 0; i < keys.length; ++ i ) {\n\t\t\t\tlet sub = node.get( keys[i] )\n\t\t\t\t\n\t\t\t\tif( sub ) node = sub\n\t\t\t\telse node.set( keys[i], node = new Map )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn node\n\t\t}\n\t\t\n\t\tlean_find( val: any ) {\n\t\t\t\n\t\t\tconst lean = val[ this.lean_symbol ]\n\t\t\tif( lean ) return lean\n\t\t\t\n\t\t\tconst sup = Object.getPrototypeOf( this )\n\t\t\tif( sup === Object.prototype ) return\n\t\t\t\n\t\t\treturn sup.lean_find( val )\n\t\t}\n\t\t\n\t\t/** Adds custom types support. */\n\t\ttype<\n\t\t\tconst Instance extends object,\n\t\t\tconst Keys extends readonly any[],\n\t\t\tconst Vals extends readonly any[],\n\t\t>( { type, keys, rich, lean }: {\n\t\t\ttype: new( ... vals: any[] )=> Instance,\n\t\t\tkeys: Keys,\n\t\t\tlean: ( obj: Instance )=> Vals,\n\t\t\trich: ( vals: Vals )=> Instance,\n\t\t}) {\n\t\t\tthis.rich_node( keys ).set( null, rich )\n\t\t\t;( type.prototype as any )[ this.lean_symbol ] = ( val: Instance )=> [ keys, lean( val ) ]\n\t\t}\n\t\t\n\t}\n\t\n\texport let $mol_vary = new $mol_vary_class\n\t\t\n\t/** Native Map support */\n\t$mol_vary.type({\n\t\ttype: Map,\n\t\tkeys: [ 'keys', 'vals' ],\n\t\tlean: obj => [ [ ... obj.keys() ], [ ... obj.values() ] ],\n\t\trich: ([ keys, vals ])=> new Map( keys.map( ( k, i )=> [ k, vals[i] ] ) ),\n\t})\n\t\n\t/** Native Set support */\n\t$mol_vary.type({\n\t\ttype: Set,\n\t\tkeys: [ 'set' ],\n\t\tlean: obj => [ [ ... obj.values() ] ],\n\t\trich: ([ vals ])=> new Set( vals ),\n\t})\n\t\n\t/** Native Date support */\n\t$mol_vary.type({\n\t\ttype: Date,\n\t\tkeys: [ 'unix_time' ],\n\t\tlean: obj => [ obj.valueOf() / 1000 ],\n\t\trich: ([ ts ])=> new Date( ts * 1000 ),\n\t})\n\t\n\tif( 'Element' in $mol_dom ) { // Absent in workers\n\t\t/** Native Element support */\n\t\t$mol_vary.type({\n\t\t\ttype: $mol_dom.Element,\n\t\t\tkeys: [ 'XML' ],\n\t\t\tlean: node => [ $mol_dom_serialize( node ) ],\n\t\t\trich: ([ text ]) => $mol_dom_parse( text, 'application/xml' ).documentElement,\n\t\t})\n\t}\n\t\n}\n"]}
|