zkjson 0.6.3 → 0.7.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/cjs/circomlibjs.js +149 -0
- package/cjs/collection.js +196 -0
- package/cjs/db.js +731 -0
- package/cjs/doc.js +132 -0
- package/cjs/encoder-v1_5.js +1731 -0
- package/cjs/encoder.js +668 -0
- package/cjs/index.js +64 -0
- package/cjs/json.js +54 -0
- package/cjs/nft.js +165 -0
- package/cjs/parse.js +256 -0
- package/cjs/uint.js +580 -0
- package/{circomlibjs.js → esm/circomlibjs.js} +27 -35
- package/{collection.js → esm/collection.js} +4 -6
- package/{contracts → esm/contracts}/ZKIPFS.sol +3 -3
- package/esm/contracts/verifiers/verifier_ipfs.sol +667 -0
- package/{db.js → esm/db.js} +8 -10
- package/{doc.js → esm/doc.js} +7 -7
- package/{encoder-v1_5.js → esm/encoder-v1_5.js} +3 -3
- package/{encoder.js → esm/encoder.js} +2 -2
- package/esm/index.js +7 -0
- package/{json.js → esm/json.js} +2 -2
- package/{nft.js → esm/nft.js} +8 -10
- package/esm/package.json +3 -0
- package/{parse.js → esm/parse.js} +4 -4
- package/{uint.js → esm/uint.js} +1 -1
- package/package.json +21 -5
- package/contracts/verifiers/verifier_ipfs.sol +0 -464
- package/index.js +0 -6
- /package/{contracts → esm/contracts}/NORollup.sol +0 -0
- /package/{contracts → esm/contracts}/OPRollup.sol +0 -0
- /package/{contracts → esm/contracts}/ZKJson.sol +0 -0
- /package/{contracts → esm/contracts}/ZKQuery.sol +0 -0
- /package/{contracts → esm/contracts}/ZKRollup.sol +0 -0
- /package/{contracts → esm/contracts}/apps/SimpleJSON.sol +0 -0
- /package/{contracts → esm/contracts}/apps/SimpleOPRU.sol +0 -0
- /package/{contracts → esm/contracts}/apps/SimpleRU.sol +0 -0
- /package/{contracts → esm/contracts}/apps/Token.sol +0 -0
- /package/{contracts → esm/contracts}/apps/ZKArweave.sol +0 -0
- /package/{contracts → esm/contracts}/apps/ZKBridge.sol +0 -0
- /package/{contracts → esm/contracts}/apps/ZKNFT.sol +0 -0
- /package/{contracts → esm/contracts}/verifiers/verifier_db.sol +0 -0
- /package/{contracts → esm/contracts}/verifiers/verifier_json.sol +0 -0
- /package/{contracts → esm/contracts}/verifiers/verifier_rollup.sol +0 -0
package/cjs/encoder.js
ADDED
@@ -0,0 +1,668 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports._encode = _encode;
|
7
|
+
exports.decode = decode;
|
8
|
+
exports.decodePath = decodePath;
|
9
|
+
exports.decodeQuery = decodeQuery;
|
10
|
+
exports.decodeVal = decodeVal;
|
11
|
+
exports.encode = encode;
|
12
|
+
exports.encodePath = encodePath;
|
13
|
+
exports.encodeQuery = encodeQuery;
|
14
|
+
exports.encodeVal = encodeVal;
|
15
|
+
exports.flattenPath = flattenPath;
|
16
|
+
exports.fromIndex = fromIndex;
|
17
|
+
exports.fromSignal = fromSignal;
|
18
|
+
exports.pad = pad;
|
19
|
+
exports.query = exports.path = void 0;
|
20
|
+
exports.toIndex = toIndex;
|
21
|
+
exports.toSignal = toSignal;
|
22
|
+
exports.val = void 0;
|
23
|
+
var _ramda = require("ramda");
|
24
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
25
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
26
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
27
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
28
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
29
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
30
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
31
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
32
|
+
var ops = {
|
33
|
+
$eq: 10,
|
34
|
+
$ne: 11,
|
35
|
+
$gt: 12,
|
36
|
+
$gte: 13,
|
37
|
+
$lt: 14,
|
38
|
+
$lte: 15,
|
39
|
+
$in: 16,
|
40
|
+
$nin: 17,
|
41
|
+
$contains: 18,
|
42
|
+
$contains_any: 19,
|
43
|
+
$contains_all: 20,
|
44
|
+
$contains_none: 21
|
45
|
+
};
|
46
|
+
var opMap = {};
|
47
|
+
for (var k in ops) opMap[ops[k]] = k;
|
48
|
+
var base64Map = {
|
49
|
+
A: "00",
|
50
|
+
B: "01",
|
51
|
+
C: "02",
|
52
|
+
D: "03",
|
53
|
+
E: "04",
|
54
|
+
F: "05",
|
55
|
+
G: "06",
|
56
|
+
H: "07",
|
57
|
+
I: "08",
|
58
|
+
J: "09",
|
59
|
+
K: "10",
|
60
|
+
L: "11",
|
61
|
+
M: "12",
|
62
|
+
N: "13",
|
63
|
+
O: "14",
|
64
|
+
P: "15",
|
65
|
+
Q: "16",
|
66
|
+
R: "17",
|
67
|
+
S: "18",
|
68
|
+
T: "19",
|
69
|
+
U: "20",
|
70
|
+
V: "21",
|
71
|
+
W: "22",
|
72
|
+
X: "23",
|
73
|
+
Y: "24",
|
74
|
+
Z: "25",
|
75
|
+
a: "26",
|
76
|
+
b: "27",
|
77
|
+
c: "28",
|
78
|
+
d: "29",
|
79
|
+
e: "30",
|
80
|
+
f: "31",
|
81
|
+
g: "32",
|
82
|
+
h: "33",
|
83
|
+
i: "34",
|
84
|
+
j: "35",
|
85
|
+
k: "36",
|
86
|
+
l: "37",
|
87
|
+
m: "38",
|
88
|
+
n: "39",
|
89
|
+
o: "40",
|
90
|
+
p: "41",
|
91
|
+
q: "42",
|
92
|
+
r: "43",
|
93
|
+
s: "44",
|
94
|
+
t: "45",
|
95
|
+
u: "46",
|
96
|
+
v: "47",
|
97
|
+
w: "48",
|
98
|
+
x: "49",
|
99
|
+
y: "50",
|
100
|
+
z: "51",
|
101
|
+
0: "52",
|
102
|
+
1: "53",
|
103
|
+
2: "54",
|
104
|
+
3: "55",
|
105
|
+
4: "56",
|
106
|
+
5: "57",
|
107
|
+
6: "58",
|
108
|
+
7: "59",
|
109
|
+
8: "60",
|
110
|
+
9: "61",
|
111
|
+
"-": "62",
|
112
|
+
_: "63"
|
113
|
+
};
|
114
|
+
var strMap = {};
|
115
|
+
for (var _k in base64Map) strMap[base64Map[_k]] = _k;
|
116
|
+
function pad(arr) {
|
117
|
+
var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
118
|
+
arr = arr.map(function (n) {
|
119
|
+
return n.toString();
|
120
|
+
});
|
121
|
+
for (var i = arr.length; i < max; i++) {
|
122
|
+
arr.push("0");
|
123
|
+
}
|
124
|
+
return arr;
|
125
|
+
}
|
126
|
+
function encodePath(path) {
|
127
|
+
var parts = [];
|
128
|
+
var str = "";
|
129
|
+
var num = 0;
|
130
|
+
var _iterator = _createForOfIteratorHelper(path),
|
131
|
+
_step;
|
132
|
+
try {
|
133
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
134
|
+
var s = _step.value;
|
135
|
+
if (num == 2 && !(s == "." || s == "[")) throw Error();
|
136
|
+
if (s == ".") {
|
137
|
+
if (num == 2) {
|
138
|
+
num = 0;
|
139
|
+
} else {
|
140
|
+
parts.push(str);
|
141
|
+
str = "";
|
142
|
+
}
|
143
|
+
} else if (s == "[") {
|
144
|
+
if (num != 2) {
|
145
|
+
if (str != "" || parts.length > 0) parts.push(str);
|
146
|
+
str = "";
|
147
|
+
}
|
148
|
+
num = 1;
|
149
|
+
} else if (s == "]") {
|
150
|
+
if (num != 1) throw Error();
|
151
|
+
num = 2;
|
152
|
+
if (str == "" || Number.isNaN(+str)) throw Error();
|
153
|
+
parts.push(+str);
|
154
|
+
str = "";
|
155
|
+
} else {
|
156
|
+
str += s;
|
157
|
+
}
|
158
|
+
}
|
159
|
+
} catch (err) {
|
160
|
+
_iterator.e(err);
|
161
|
+
} finally {
|
162
|
+
_iterator.f();
|
163
|
+
}
|
164
|
+
if (str != "") parts.push(str);
|
165
|
+
if (parts.length == 0) parts.push("");
|
166
|
+
var encoded = [parts.length];
|
167
|
+
for (var _i = 0, _parts = parts; _i < _parts.length; _i++) {
|
168
|
+
var p = _parts[_i];
|
169
|
+
if (typeof p == "number") {
|
170
|
+
encoded = encoded.concat([0, 0, p]);
|
171
|
+
} else {
|
172
|
+
var plen = [p.length];
|
173
|
+
if (p.length == 0) plen.push(1);
|
174
|
+
encoded = encoded.concat([].concat(plen, _toConsumableArray(p.split("").map(function (c) {
|
175
|
+
return c.charCodeAt(0);
|
176
|
+
}))));
|
177
|
+
}
|
178
|
+
}
|
179
|
+
return encoded;
|
180
|
+
}
|
181
|
+
function decodePath(path) {
|
182
|
+
var str = "";
|
183
|
+
var p = [];
|
184
|
+
var len = path.shift();
|
185
|
+
while (path.length > 0) {
|
186
|
+
var type = path.shift();
|
187
|
+
var _val2 = null;
|
188
|
+
if (type == 0) {
|
189
|
+
var type2 = path.shift();
|
190
|
+
if (type2 == 0) {
|
191
|
+
_val2 = [type2, path.shift()];
|
192
|
+
} else {
|
193
|
+
_val2 = [type2];
|
194
|
+
}
|
195
|
+
} else {
|
196
|
+
_val2 = [];
|
197
|
+
for (var _i2 = 0; _i2 < type; _i2++) {
|
198
|
+
_val2.push(path.shift());
|
199
|
+
}
|
200
|
+
}
|
201
|
+
p.push([type].concat(_toConsumableArray(_val2)));
|
202
|
+
}
|
203
|
+
var i = 0;
|
204
|
+
for (var _i3 = 0, _p = p; _i3 < _p.length; _i3++) {
|
205
|
+
var s = _p[_i3];
|
206
|
+
if (s[0] == 0 && s[1] == 0) {
|
207
|
+
str += "[".concat(s[2], "]");
|
208
|
+
} else if (s[0] == 0 && s[1] == 1) {
|
209
|
+
if (str != "") str += ".";
|
210
|
+
} else {
|
211
|
+
str += "".concat(i == 0 ? "" : ".").concat(s.slice(1).map(function (c) {
|
212
|
+
return String.fromCharCode(Number(c));
|
213
|
+
}).join(""));
|
214
|
+
}
|
215
|
+
i++;
|
216
|
+
}
|
217
|
+
return str;
|
218
|
+
}
|
219
|
+
function flattenPath(path) {
|
220
|
+
var p = [path.length];
|
221
|
+
var _iterator2 = _createForOfIteratorHelper(path),
|
222
|
+
_step2;
|
223
|
+
try {
|
224
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
225
|
+
var v = _step2.value;
|
226
|
+
p = p.concat(v);
|
227
|
+
}
|
228
|
+
} catch (err) {
|
229
|
+
_iterator2.e(err);
|
230
|
+
} finally {
|
231
|
+
_iterator2.f();
|
232
|
+
}
|
233
|
+
return p;
|
234
|
+
}
|
235
|
+
function _encode(v) {
|
236
|
+
var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
237
|
+
var vals = [];
|
238
|
+
if (typeof v == "number") {
|
239
|
+
vals.push([path, encodeVal(v)]);
|
240
|
+
} else if (typeof v == "boolean") {
|
241
|
+
vals.push([path, encodeVal(v)]);
|
242
|
+
} else if (v == null) {
|
243
|
+
vals.push([path, encodeVal(v)]);
|
244
|
+
} else if (typeof v == "string") {
|
245
|
+
vals.push([path, encodeVal(v)]);
|
246
|
+
} else if (Array.isArray(v)) {
|
247
|
+
var i = 0;
|
248
|
+
var _iterator3 = _createForOfIteratorHelper(v),
|
249
|
+
_step3;
|
250
|
+
try {
|
251
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
252
|
+
var v2 = _step3.value;
|
253
|
+
var _iterator4 = _createForOfIteratorHelper(_encode(v2, [].concat(_toConsumableArray(path), [[0, 0, i]]))),
|
254
|
+
_step4;
|
255
|
+
try {
|
256
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
257
|
+
var v3 = _step4.value;
|
258
|
+
vals.push(v3);
|
259
|
+
}
|
260
|
+
} catch (err) {
|
261
|
+
_iterator4.e(err);
|
262
|
+
} finally {
|
263
|
+
_iterator4.f();
|
264
|
+
}
|
265
|
+
i++;
|
266
|
+
}
|
267
|
+
} catch (err) {
|
268
|
+
_iterator3.e(err);
|
269
|
+
} finally {
|
270
|
+
_iterator3.f();
|
271
|
+
}
|
272
|
+
} else if (_typeof(v) == "object") {
|
273
|
+
for (var _k2 in v) {
|
274
|
+
var key = _k2.split("").map(function (c) {
|
275
|
+
return c.charCodeAt(0);
|
276
|
+
});
|
277
|
+
var _iterator5 = _createForOfIteratorHelper(_encode(v[_k2], [].concat(_toConsumableArray(path), [[key.length].concat(_toConsumableArray(key.length == 0 ? [1] : key))]))),
|
278
|
+
_step5;
|
279
|
+
try {
|
280
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
281
|
+
var v4 = _step5.value;
|
282
|
+
vals.push(v4);
|
283
|
+
}
|
284
|
+
} catch (err) {
|
285
|
+
_iterator5.e(err);
|
286
|
+
} finally {
|
287
|
+
_iterator5.f();
|
288
|
+
}
|
289
|
+
}
|
290
|
+
}
|
291
|
+
return vals;
|
292
|
+
}
|
293
|
+
function encode(json) {
|
294
|
+
var flattened = _encode(json);
|
295
|
+
flattened.sort(function (a, b) {
|
296
|
+
var isUndefined = function isUndefined(v) {
|
297
|
+
return typeof v == "undefined";
|
298
|
+
};
|
299
|
+
var max = Math.max(a[0].length, b[0].length);
|
300
|
+
if (max > 0) {
|
301
|
+
for (var i = 0; i < max; i++) {
|
302
|
+
var exA = !isUndefined(a[0][i]);
|
303
|
+
var exB = !isUndefined(b[0][i]);
|
304
|
+
if (exA && !exB) return 1;
|
305
|
+
if (!exA && exB) return -1;
|
306
|
+
var max2 = Math.max(a[0][i].length, b[0][i].length);
|
307
|
+
if (max2 > 0) {
|
308
|
+
for (var i2 = 0; i2 < max2; i2++) {
|
309
|
+
var vA = a[0][i][i2];
|
310
|
+
var vB = b[0][i][i2];
|
311
|
+
var _exA = !isUndefined(vA);
|
312
|
+
var _exB = !isUndefined(vB);
|
313
|
+
if (_exA && !_exB) return 1;
|
314
|
+
if (!_exA && _exB) return -1;
|
315
|
+
if (vA > vB) return 1;
|
316
|
+
if (vA < vB) return -1;
|
317
|
+
}
|
318
|
+
}
|
319
|
+
}
|
320
|
+
}
|
321
|
+
return 0;
|
322
|
+
});
|
323
|
+
return flattened.reduce(function (arr, v) {
|
324
|
+
return arr.concat([].concat(_toConsumableArray(flattenPath(v[0])), _toConsumableArray(v[1])));
|
325
|
+
}, []);
|
326
|
+
}
|
327
|
+
function _decode(arr) {
|
328
|
+
var vals = [];
|
329
|
+
while (arr.length > 0) {
|
330
|
+
var plen = arr.shift();
|
331
|
+
var keys = [];
|
332
|
+
var _val3 = null;
|
333
|
+
while (plen > 0) {
|
334
|
+
var plen2 = arr.shift();
|
335
|
+
if (plen2 == 0) {
|
336
|
+
var plen3 = arr.shift();
|
337
|
+
if (plen3 == 1) {
|
338
|
+
keys.push([plen2, plen3]);
|
339
|
+
} else {
|
340
|
+
keys.push([plen2, plen3, arr.shift()]);
|
341
|
+
}
|
342
|
+
} else if (plen2 != 0) {
|
343
|
+
var _plen = plen2;
|
344
|
+
var key = [];
|
345
|
+
for (var i2 = 0; i2 < _plen; i2++) key.push(arr.shift());
|
346
|
+
keys.push([plen2].concat(key));
|
347
|
+
}
|
348
|
+
plen--;
|
349
|
+
}
|
350
|
+
var type = arr.shift();
|
351
|
+
_val3 = [type];
|
352
|
+
if (type == 2) {
|
353
|
+
_val3.push(arr.shift());
|
354
|
+
_val3.push(arr.shift());
|
355
|
+
_val3.push(arr.shift());
|
356
|
+
} else if (type == 1) {
|
357
|
+
_val3.push(arr.shift());
|
358
|
+
} else if (type == 3) {
|
359
|
+
var strlen = arr.shift();
|
360
|
+
_val3.push(strlen);
|
361
|
+
for (var _i4 = 0; _i4 < strlen; _i4++) _val3.push(arr.shift());
|
362
|
+
}
|
363
|
+
vals.push([keys, _val3]);
|
364
|
+
}
|
365
|
+
return vals;
|
366
|
+
}
|
367
|
+
function encodeVal(v) {
|
368
|
+
var vals = [];
|
369
|
+
if (typeof v == "number" || typeof v == "bigint") {
|
370
|
+
var _int = Number.isInteger(v);
|
371
|
+
var moved = 0;
|
372
|
+
var num = v;
|
373
|
+
while (num % 1 != 0) {
|
374
|
+
num *= 10;
|
375
|
+
moved += 1;
|
376
|
+
}
|
377
|
+
vals = v < 0 ? [2, 0, moved, -num] : [2, 1, moved, num];
|
378
|
+
} else if (typeof v == "boolean") {
|
379
|
+
vals = [1, v ? 1 : 0];
|
380
|
+
} else if (v == null) {
|
381
|
+
vals = [0];
|
382
|
+
} else if (typeof v == "string") {
|
383
|
+
vals = [3, v.length].concat(_toConsumableArray(v.split("").map(function (c) {
|
384
|
+
return c.charCodeAt(0);
|
385
|
+
})));
|
386
|
+
} else {
|
387
|
+
vals = [4].concat(_toConsumableArray(encode(v)));
|
388
|
+
}
|
389
|
+
return vals;
|
390
|
+
}
|
391
|
+
function decodeVal(arr) {
|
392
|
+
var type = arr[0];
|
393
|
+
var _val = arr[1];
|
394
|
+
var val = null;
|
395
|
+
if (type == 0) {
|
396
|
+
val = null;
|
397
|
+
} else if (type == 1) {
|
398
|
+
val = arr[1] ? true : false;
|
399
|
+
} else if (type == 2) {
|
400
|
+
val = (arr[1] == 0 ? -1 : 1) * arr[3];
|
401
|
+
for (var i = 0; i < arr[2]; i++) {
|
402
|
+
val /= 10;
|
403
|
+
}
|
404
|
+
} else if (type == 3) {
|
405
|
+
val = arr.slice(2).map(function (c) {
|
406
|
+
return String.fromCharCode(Number(c));
|
407
|
+
}).join("");
|
408
|
+
} else if (type == 4) {
|
409
|
+
val = decode(arr.slice(1));
|
410
|
+
}
|
411
|
+
return val;
|
412
|
+
}
|
413
|
+
function decode(arr) {
|
414
|
+
var _decoded$, _decoded$2;
|
415
|
+
var decoded = _decode((0, _ramda.clone)(arr));
|
416
|
+
var json = ((_decoded$ = decoded[0]) === null || _decoded$ === void 0 || (_decoded$ = _decoded$[0]) === null || _decoded$ === void 0 || (_decoded$ = _decoded$[0]) === null || _decoded$ === void 0 ? void 0 : _decoded$[0]) == 0 && ((_decoded$2 = decoded[0]) === null || _decoded$2 === void 0 || (_decoded$2 = _decoded$2[0]) === null || _decoded$2 === void 0 || (_decoded$2 = _decoded$2[0]) === null || _decoded$2 === void 0 ? void 0 : _decoded$2[1]) == 0 ? [] : {};
|
417
|
+
var _iterator6 = _createForOfIteratorHelper(decoded),
|
418
|
+
_step6;
|
419
|
+
try {
|
420
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
421
|
+
var v = _step6.value;
|
422
|
+
var keys = v[0].map(function (v2) {
|
423
|
+
if (v2[0] == 0) {
|
424
|
+
if (v2[1] == 1) return "";
|
425
|
+
return v2[2];
|
426
|
+
} else {
|
427
|
+
return v2.slice(1).map(function (c) {
|
428
|
+
return String.fromCharCode(Number(c));
|
429
|
+
}).join("");
|
430
|
+
}
|
431
|
+
});
|
432
|
+
if (keys.length == 0) {
|
433
|
+
json = decodeVal(v[1]);
|
434
|
+
} else {
|
435
|
+
var obj = json;
|
436
|
+
var i = 0;
|
437
|
+
var _iterator7 = _createForOfIteratorHelper(keys),
|
438
|
+
_step7;
|
439
|
+
try {
|
440
|
+
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
441
|
+
var _k3 = _step7.value;
|
442
|
+
if (typeof _k3 == "number") {
|
443
|
+
if (typeof keys[i + 1] == "undefined") {
|
444
|
+
obj[_k3] = decodeVal(v[1]);
|
445
|
+
} else {
|
446
|
+
if (typeof obj[_k3] == "undefined") {
|
447
|
+
if (typeof keys[i + 1] == "string") {
|
448
|
+
obj[_k3] = {};
|
449
|
+
} else {
|
450
|
+
obj[_k3] = [];
|
451
|
+
}
|
452
|
+
}
|
453
|
+
}
|
454
|
+
} else {
|
455
|
+
if (typeof obj[_k3] == "undefined") {
|
456
|
+
if (typeof keys[i + 1] == "undefined") {
|
457
|
+
obj[_k3] = decodeVal(v[1]);
|
458
|
+
} else if (typeof keys[i + 1] == "string") {
|
459
|
+
obj[_k3] = {};
|
460
|
+
} else {
|
461
|
+
obj[_k3] = [];
|
462
|
+
}
|
463
|
+
}
|
464
|
+
}
|
465
|
+
obj = obj[_k3];
|
466
|
+
i++;
|
467
|
+
}
|
468
|
+
} catch (err) {
|
469
|
+
_iterator7.e(err);
|
470
|
+
} finally {
|
471
|
+
_iterator7.f();
|
472
|
+
}
|
473
|
+
}
|
474
|
+
}
|
475
|
+
} catch (err) {
|
476
|
+
_iterator6.e(err);
|
477
|
+
} finally {
|
478
|
+
_iterator6.f();
|
479
|
+
}
|
480
|
+
return json;
|
481
|
+
}
|
482
|
+
function toIndex(rawStr) {
|
483
|
+
var b64url = Buffer.from(rawStr, "utf8").toString("base64url");
|
484
|
+
var bi = BigInt("0x" + Buffer.from(b64url, "base64url").toString("hex"));
|
485
|
+
return bi.toString(10);
|
486
|
+
}
|
487
|
+
function fromIndex(idxStr) {
|
488
|
+
var bi = BigInt(idxStr);
|
489
|
+
var hex = bi.toString(16);
|
490
|
+
if (hex.length % 2) hex = "0" + hex;
|
491
|
+
var buf = Buffer.from(hex, "hex");
|
492
|
+
var b64url = buf.toString("base64url");
|
493
|
+
return Buffer.from(b64url, "base64url").toString("utf8");
|
494
|
+
}
|
495
|
+
function toSignal(arr) {
|
496
|
+
var _arr = (0, _ramda.flatten)(arr.map(function (n) {
|
497
|
+
var str = (0, _ramda.splitEvery)(8, n.toString().split(""));
|
498
|
+
var i = 0;
|
499
|
+
str = str.map(function (s) {
|
500
|
+
var len = i == str.length - 1 ? s.length : 9;
|
501
|
+
i++;
|
502
|
+
return len.toString() + s.join("");
|
503
|
+
});
|
504
|
+
return str;
|
505
|
+
}));
|
506
|
+
var _arr2 = [];
|
507
|
+
var one = 0;
|
508
|
+
var i = 0;
|
509
|
+
var start = null;
|
510
|
+
var _iterator8 = _createForOfIteratorHelper(_arr),
|
511
|
+
_step8;
|
512
|
+
try {
|
513
|
+
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
514
|
+
var _v2 = _step8.value;
|
515
|
+
_arr2.push(_v2);
|
516
|
+
if (_v2.length - 1 == 1) {
|
517
|
+
if (start == null) start = i;
|
518
|
+
one += _v2.length - 1;
|
519
|
+
if (one == 9) {
|
520
|
+
_arr2[start] = "0".concat(one).concat(_arr2[start][1]);
|
521
|
+
for (var _i7 = start + 1; _i7 <= i; _i7++) _arr2[_i7] = "".concat(_arr2[_i7][1]);
|
522
|
+
one = 0;
|
523
|
+
start = null;
|
524
|
+
}
|
525
|
+
} else {
|
526
|
+
if (one > 2) {
|
527
|
+
_arr2[start] = "0".concat(one).concat(_arr2[start][1]);
|
528
|
+
for (var _i8 = start + 1; _i8 < i; _i8++) _arr2[_i8] = "".concat(_arr2[_i8][1]);
|
529
|
+
}
|
530
|
+
one = 0;
|
531
|
+
start = null;
|
532
|
+
}
|
533
|
+
i++;
|
534
|
+
}
|
535
|
+
} catch (err) {
|
536
|
+
_iterator8.e(err);
|
537
|
+
} finally {
|
538
|
+
_iterator8.f();
|
539
|
+
}
|
540
|
+
if (one > 2) {
|
541
|
+
_arr2[start] = "0".concat(one).concat(_arr2[start][1]);
|
542
|
+
for (var i2 = start + 1; i2 <= i - 1; i2++) _arr2[i2] = "".concat(_arr2[i2][1]);
|
543
|
+
}
|
544
|
+
var _arr3 = [];
|
545
|
+
var chain = null;
|
546
|
+
var cur = 0;
|
547
|
+
var num = "";
|
548
|
+
for (var _i5 = 0, _arr4 = _arr2; _i5 < _arr4.length; _i5++) {
|
549
|
+
var v = _arr4[_i5];
|
550
|
+
if (chain == null && +v[0] == 0) {
|
551
|
+
chain = +v[1];
|
552
|
+
cur = 1;
|
553
|
+
num = v;
|
554
|
+
} else if (chain != null) {
|
555
|
+
num += v;
|
556
|
+
cur++;
|
557
|
+
if (chain == cur) {
|
558
|
+
_arr3.push(num);
|
559
|
+
chain = null;
|
560
|
+
num = "";
|
561
|
+
cur = 0;
|
562
|
+
}
|
563
|
+
} else {
|
564
|
+
_arr3.push(v);
|
565
|
+
}
|
566
|
+
}
|
567
|
+
if (chain != null) _arr3.push(num);
|
568
|
+
var arrs2 = [];
|
569
|
+
var len2 = 0;
|
570
|
+
var str2 = "";
|
571
|
+
for (var _i6 = 0, _arr5 = _arr3; _i6 < _arr5.length; _i6++) {
|
572
|
+
var _v = _arr5[_i6];
|
573
|
+
if (len2 + _v.length > 75) {
|
574
|
+
arrs2.push("1" + str2);
|
575
|
+
if (+_v[0] == 0) {
|
576
|
+
var len3 = 75 - len2;
|
577
|
+
if (len3 == 2 || len3 == 3) {
|
578
|
+
arrs2[arrs2.length - 1] += "1".concat(_v[2]);
|
579
|
+
var new_len = +_v[1] - 1;
|
580
|
+
if (new_len == 2) {
|
581
|
+
_v = "1".concat(_v[3], "1").concat(_v[4]);
|
582
|
+
} else {
|
583
|
+
_v = "0".concat(new_len).concat(_v.slice(3));
|
584
|
+
}
|
585
|
+
} else if (len3 > 3) {
|
586
|
+
var _new_len = +_v[1] - 2;
|
587
|
+
var old_len = 2;
|
588
|
+
if (len3 == 4) {
|
589
|
+
arrs2[arrs2.length - 1] += "1".concat(_v[2], "1").concat(_v[3]);
|
590
|
+
} else {
|
591
|
+
old_len = len3 - 2;
|
592
|
+
_new_len = +_v[1] - old_len;
|
593
|
+
arrs2[arrs2.length - 1] += "0".concat(old_len).concat(_v.slice(2, 2 + old_len));
|
594
|
+
}
|
595
|
+
if (_new_len == 1) {
|
596
|
+
_v = "1".concat(_v[old_len + 2]);
|
597
|
+
} else if (_new_len == 2) {
|
598
|
+
_v = "1".concat(_v[old_len + 2], "1").concat(_v[old_len + 3]);
|
599
|
+
} else {
|
600
|
+
_v = "0".concat(_new_len).concat(_v.slice(old_len + 2));
|
601
|
+
}
|
602
|
+
}
|
603
|
+
}
|
604
|
+
len2 = 0;
|
605
|
+
str2 = "";
|
606
|
+
}
|
607
|
+
len2 += _v.length;
|
608
|
+
str2 += _v;
|
609
|
+
}
|
610
|
+
if (str2 != "") arrs2.push("1" + str2);
|
611
|
+
return arrs2;
|
612
|
+
}
|
613
|
+
function fromSignal(arr) {
|
614
|
+
var _arr = [];
|
615
|
+
var prev = "";
|
616
|
+
var _iterator9 = _createForOfIteratorHelper(arr),
|
617
|
+
_step9;
|
618
|
+
try {
|
619
|
+
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
620
|
+
var s = _step9.value;
|
621
|
+
s = s.slice(1);
|
622
|
+
var str = s.split("");
|
623
|
+
while (str.length > 0) {
|
624
|
+
var len = +str.shift();
|
625
|
+
if (len == 0) {
|
626
|
+
var len2 = +str.shift();
|
627
|
+
for (var i2 = 0; i2 < len2; i2++) {
|
628
|
+
_arr.push(+str[i2]);
|
629
|
+
}
|
630
|
+
str = str.slice(len2);
|
631
|
+
} else if (len == 9) {
|
632
|
+
prev += str.slice(0, 8).join("");
|
633
|
+
str = str.slice(8);
|
634
|
+
} else {
|
635
|
+
var nums = str.slice(0, len).join("");
|
636
|
+
str = str.slice(len);
|
637
|
+
_arr.push(+(prev + nums));
|
638
|
+
prev = "";
|
639
|
+
}
|
640
|
+
}
|
641
|
+
}
|
642
|
+
} catch (err) {
|
643
|
+
_iterator9.e(err);
|
644
|
+
} finally {
|
645
|
+
_iterator9.f();
|
646
|
+
}
|
647
|
+
return _arr;
|
648
|
+
}
|
649
|
+
var path = exports.path = function path(p) {
|
650
|
+
return toSignal(encodePath(p));
|
651
|
+
};
|
652
|
+
var val = exports.val = function val(v) {
|
653
|
+
return toSignal(encodeVal(v));
|
654
|
+
};
|
655
|
+
var query = exports.query = function query(v) {
|
656
|
+
return toSignal(encodeQuery(v));
|
657
|
+
};
|
658
|
+
function encodeQuery(v) {
|
659
|
+
if (!Array.isArray(v)) throw Error("query must be an array");
|
660
|
+
var op = v[0];
|
661
|
+
if ((0, _ramda.isNil)(ops[op])) throw Error("query not supported: ".concat(op));
|
662
|
+
return [ops[op]].concat(_toConsumableArray(encodeVal(v[1])));
|
663
|
+
}
|
664
|
+
function decodeQuery(v) {
|
665
|
+
var op = opMap[v[0]];
|
666
|
+
if ((0, _ramda.isNil)(op)) throw Error("op doens't exist");
|
667
|
+
return [op, decodeVal(v.slice(1))];
|
668
|
+
}
|