cesr-ts 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/src/adapters/async-iterable.js +8 -0
- package/esm/src/adapters/effection.js +6 -0
- package/esm/src/annotate/annotator.js +12 -0
- package/esm/src/annotate/cli.js +12 -0
- package/esm/src/annotate/comments.js +5 -1
- package/esm/src/annotate/denot.js +6 -0
- package/esm/src/annotate/render.js +15 -3
- package/esm/src/core/bytes.js +9 -0
- package/esm/src/core/errors.js +3 -0
- package/esm/src/core/parser-engine.js +1 -1
- package/esm/src/core/parser-frame-parser.js +22 -18
- package/esm/src/core/vocabulary.js +47 -0
- package/esm/src/index.js +5 -0
- package/esm/src/parser/attachment-parser.js +4 -0
- package/esm/src/parser/cold-start.js +6 -0
- package/esm/src/parser/group-dispatch.js +2 -2
- package/esm/src/primitives/aggor.js +374 -30
- package/esm/src/primitives/bexter.js +2 -3
- package/esm/src/primitives/blinder.js +6 -0
- package/esm/src/primitives/byte-like.js +19 -0
- package/esm/src/primitives/cigar.js +17 -3
- package/esm/src/primitives/cipher.js +91 -6
- package/esm/src/primitives/codex.js +39 -6
- package/esm/src/primitives/compactor.js +307 -3
- package/esm/src/primitives/counter.js +6 -2
- package/esm/src/primitives/dater.js +1 -2
- package/esm/src/primitives/decimer.js +7 -11
- package/esm/src/primitives/decrypter.js +123 -7
- package/esm/src/primitives/diger.js +57 -3
- package/esm/src/primitives/disclosure.js +300 -0
- package/esm/src/primitives/encrypter.js +130 -7
- package/esm/src/primitives/hydrate.js +49 -0
- package/esm/src/primitives/ilker.js +2 -3
- package/esm/src/primitives/indexer.js +21 -4
- package/esm/src/primitives/labeler.js +1 -2
- package/esm/src/primitives/mapper.js +612 -35
- package/esm/src/primitives/matter.js +133 -3
- package/esm/src/primitives/mediar.js +6 -0
- package/esm/src/primitives/noncer.js +2 -3
- package/esm/src/primitives/number.js +1 -2
- package/esm/src/primitives/pather.js +102 -5
- package/esm/src/primitives/prefixer.js +1 -2
- package/esm/src/primitives/primitive.js +14 -0
- package/esm/src/primitives/registry.js +2 -0
- package/esm/src/primitives/saider.js +80 -3
- package/esm/src/primitives/salter.js +96 -2
- package/esm/src/primitives/sealed-box.js +41 -0
- package/esm/src/primitives/seqner.js +1 -2
- package/esm/src/primitives/siger.js +58 -3
- package/esm/src/primitives/signer.js +243 -9
- package/esm/src/primitives/streamer.js +28 -0
- package/esm/src/primitives/structing.js +727 -0
- package/esm/src/primitives/structor.js +20 -0
- package/esm/src/primitives/tagger.js +1 -2
- package/esm/src/primitives/texter.js +1 -2
- package/esm/src/primitives/tholder.js +552 -10
- package/esm/src/primitives/traitor.js +2 -3
- package/esm/src/primitives/verfer.js +50 -6
- package/esm/src/primitives/verser.js +16 -6
- package/esm/src/router/router-stub.js +1 -0
- package/esm/src/serder/native.js +1326 -0
- package/esm/src/serder/serder.js +1558 -59
- package/esm/src/serder/serdery.js +92 -7
- package/esm/src/serder/smell.js +26 -1
- package/esm/src/tables/codex-utils.js +2 -0
- package/esm/src/tables/counter-codex.js +2 -0
- package/esm/src/tables/counter-groups.js +6 -0
- package/esm/src/tables/versions.js +4 -0
- package/esm/src/version.js +5 -2
- package/package.json +5 -2
- package/types/src/adapters/async-iterable.d.ts +8 -0
- package/types/src/adapters/async-iterable.d.ts.map +1 -1
- package/types/src/adapters/effection.d.ts +7 -0
- package/types/src/adapters/effection.d.ts.map +1 -1
- package/types/src/annotate/annotator.d.ts +12 -0
- package/types/src/annotate/annotator.d.ts.map +1 -1
- package/types/src/annotate/cli.d.ts +13 -0
- package/types/src/annotate/cli.d.ts.map +1 -1
- package/types/src/annotate/comments.d.ts +4 -0
- package/types/src/annotate/comments.d.ts.map +1 -1
- package/types/src/annotate/denot.d.ts +6 -0
- package/types/src/annotate/denot.d.ts.map +1 -1
- package/types/src/annotate/render.d.ts.map +1 -1
- package/types/src/annotate/types.d.ts +2 -0
- package/types/src/annotate/types.d.ts.map +1 -1
- package/types/src/bench/parser-benchmark.d.ts +3 -0
- package/types/src/bench/parser-benchmark.d.ts.map +1 -1
- package/types/src/core/bytes.d.ts +9 -0
- package/types/src/core/bytes.d.ts.map +1 -1
- package/types/src/core/errors.d.ts +3 -0
- package/types/src/core/errors.d.ts.map +1 -1
- package/types/src/core/parser-engine.d.ts +4 -0
- package/types/src/core/parser-engine.d.ts.map +1 -1
- package/types/src/core/parser-frame-parser.d.ts.map +1 -1
- package/types/src/core/types.d.ts +2 -0
- package/types/src/core/types.d.ts.map +1 -1
- package/types/src/core/vocabulary.d.ts +48 -0
- package/types/src/core/vocabulary.d.ts.map +1 -0
- package/types/src/index.d.ts +5 -0
- package/types/src/index.d.ts.map +1 -1
- package/types/src/parser/attachment-parser.d.ts +4 -0
- package/types/src/parser/attachment-parser.d.ts.map +1 -1
- package/types/src/parser/cold-start.d.ts +6 -0
- package/types/src/parser/cold-start.d.ts.map +1 -1
- package/types/src/parser/group-dispatch.d.ts.map +1 -1
- package/types/src/primitives/aggor.d.ts +100 -13
- package/types/src/primitives/aggor.d.ts.map +1 -1
- package/types/src/primitives/bexter.d.ts.map +1 -1
- package/types/src/primitives/blinder.d.ts +6 -0
- package/types/src/primitives/blinder.d.ts.map +1 -1
- package/types/src/primitives/byte-like.d.ts +7 -0
- package/types/src/primitives/byte-like.d.ts.map +1 -0
- package/types/src/primitives/cigar.d.ts +11 -1
- package/types/src/primitives/cigar.d.ts.map +1 -1
- package/types/src/primitives/cipher.d.ts +73 -2
- package/types/src/primitives/cipher.d.ts.map +1 -1
- package/types/src/primitives/codex.d.ts +34 -4
- package/types/src/primitives/codex.d.ts.map +1 -1
- package/types/src/primitives/compactor.d.ts +94 -2
- package/types/src/primitives/compactor.d.ts.map +1 -1
- package/types/src/primitives/counter.d.ts.map +1 -1
- package/types/src/primitives/dater.d.ts.map +1 -1
- package/types/src/primitives/decimer.d.ts.map +1 -1
- package/types/src/primitives/decrypter.d.ts +64 -3
- package/types/src/primitives/decrypter.d.ts.map +1 -1
- package/types/src/primitives/diger.d.ts +16 -0
- package/types/src/primitives/diger.d.ts.map +1 -1
- package/types/src/primitives/disclosure.d.ts +201 -0
- package/types/src/primitives/disclosure.d.ts.map +1 -0
- package/types/src/primitives/encrypter.d.ts +66 -4
- package/types/src/primitives/encrypter.d.ts.map +1 -1
- package/types/src/primitives/hydrate.d.ts +20 -0
- package/types/src/primitives/hydrate.d.ts.map +1 -0
- package/types/src/primitives/ilker.d.ts.map +1 -1
- package/types/src/primitives/indexer.d.ts.map +1 -1
- package/types/src/primitives/labeler.d.ts.map +1 -1
- package/types/src/primitives/mapper.d.ts +132 -11
- package/types/src/primitives/mapper.d.ts.map +1 -1
- package/types/src/primitives/matter.d.ts +33 -1
- package/types/src/primitives/matter.d.ts.map +1 -1
- package/types/src/primitives/mediar.d.ts +6 -0
- package/types/src/primitives/mediar.d.ts.map +1 -1
- package/types/src/primitives/noncer.d.ts.map +1 -1
- package/types/src/primitives/number.d.ts.map +1 -1
- package/types/src/primitives/pather.d.ts +21 -0
- package/types/src/primitives/pather.d.ts.map +1 -1
- package/types/src/primitives/prefixer.d.ts.map +1 -1
- package/types/src/primitives/primitive.d.ts +26 -0
- package/types/src/primitives/primitive.d.ts.map +1 -1
- package/types/src/primitives/registry.d.ts +3 -0
- package/types/src/primitives/registry.d.ts.map +1 -1
- package/types/src/primitives/saider.d.ts +41 -0
- package/types/src/primitives/saider.d.ts.map +1 -1
- package/types/src/primitives/salter.d.ts +56 -1
- package/types/src/primitives/salter.d.ts.map +1 -1
- package/types/src/primitives/sealed-box.d.ts +29 -0
- package/types/src/primitives/sealed-box.d.ts.map +1 -0
- package/types/src/primitives/seqner.d.ts.map +1 -1
- package/types/src/primitives/siger.d.ts +14 -0
- package/types/src/primitives/siger.d.ts.map +1 -1
- package/types/src/primitives/signer.d.ts +80 -4
- package/types/src/primitives/signer.d.ts.map +1 -1
- package/types/src/primitives/streamer.d.ts +31 -0
- package/types/src/primitives/streamer.d.ts.map +1 -0
- package/types/src/primitives/structing.d.ts +4114 -0
- package/types/src/primitives/structing.d.ts.map +1 -0
- package/types/src/primitives/structor.d.ts +6 -0
- package/types/src/primitives/structor.d.ts.map +1 -1
- package/types/src/primitives/tagger.d.ts.map +1 -1
- package/types/src/primitives/texter.d.ts.map +1 -1
- package/types/src/primitives/tholder.d.ts +150 -5
- package/types/src/primitives/tholder.d.ts.map +1 -1
- package/types/src/primitives/traitor.d.ts.map +1 -1
- package/types/src/primitives/unknown.d.ts +1 -0
- package/types/src/primitives/unknown.d.ts.map +1 -1
- package/types/src/primitives/verfer.d.ts +12 -0
- package/types/src/primitives/verfer.d.ts.map +1 -1
- package/types/src/primitives/verser.d.ts +14 -3
- package/types/src/primitives/verser.d.ts.map +1 -1
- package/types/src/router/router-stub.d.ts +3 -0
- package/types/src/router/router-stub.d.ts.map +1 -1
- package/types/src/serder/native.d.ts +115 -0
- package/types/src/serder/native.d.ts.map +1 -0
- package/types/src/serder/serder.d.ts +187 -9
- package/types/src/serder/serder.d.ts.map +1 -1
- package/types/src/serder/serdery.d.ts +42 -0
- package/types/src/serder/serdery.d.ts.map +1 -1
- package/types/src/serder/smell.d.ts +22 -0
- package/types/src/serder/smell.d.ts.map +1 -1
- package/types/src/tables/codex-utils.d.ts +3 -0
- package/types/src/tables/codex-utils.d.ts.map +1 -1
- package/types/src/tables/counter-codex.d.ts +4 -0
- package/types/src/tables/counter-codex.d.ts.map +1 -1
- package/types/src/tables/counter-groups.d.ts +6 -0
- package/types/src/tables/counter-groups.d.ts.map +1 -1
- package/types/src/tables/counter.tables.generated.d.ts.map +1 -1
- package/types/src/tables/indexer.codex.generated.d.ts.map +1 -1
- package/types/src/tables/matter.codex.generated.d.ts.map +1 -1
- package/types/src/tables/table-types.d.ts +6 -0
- package/types/src/tables/table-types.d.ts.map +1 -1
- package/types/src/tables/versions.d.ts +6 -0
- package/types/src/tables/versions.d.ts.map +1 -1
- package/types/src/version.d.ts +5 -2
- package/types/src/version.d.ts.map +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { b, b64ToInt, codeB2ToB64, codeB64ToB2, concatBytes, decodeB64, encodeB64, intToB64, nabSextets, sceil, } from "../core/bytes.js";
|
|
2
2
|
import { DeserializeError, ShortageError, UnknownCodeError } from "../core/errors.js";
|
|
3
3
|
import { INDEXER_HARDS, INDEXER_SIZES } from "../tables/indexer.tables.generated.js";
|
|
4
|
+
import { INDEXED_BOTH_SIG_CODES } from "./codex.js";
|
|
4
5
|
const INDEXER_BARDS = new Map([...INDEXER_HARDS.entries()].map(([code, hs]) => [
|
|
5
6
|
String.fromCharCode(codeB64ToB2(code)[0]),
|
|
6
7
|
hs,
|
|
@@ -10,6 +11,7 @@ function isIndexerData(value) {
|
|
|
10
11
|
&& "code" in value && "raw" in value && "qb64" in value
|
|
11
12
|
&& "fullSize" in value && "fullSizeB2" in value && "index" in value;
|
|
12
13
|
}
|
|
14
|
+
/** Resolve the effective indexer code from the text-domain hard-selector prefix. */
|
|
13
15
|
function parseIndexerCodeFromText(txt) {
|
|
14
16
|
const hs = INDEXER_HARDS.get(txt[0]);
|
|
15
17
|
if (!hs) {
|
|
@@ -21,6 +23,7 @@ function parseIndexerCodeFromText(txt) {
|
|
|
21
23
|
}
|
|
22
24
|
return { code };
|
|
23
25
|
}
|
|
26
|
+
/** Decode index and optional ondex soft fields from a fully qualified indexer token. */
|
|
24
27
|
function parseIndexFields(code, qb64) {
|
|
25
28
|
const sizage = INDEXER_SIZES.get(code);
|
|
26
29
|
if (!sizage) {
|
|
@@ -30,9 +33,12 @@ function parseIndexFields(code, qb64) {
|
|
|
30
33
|
const soft = qb64.slice(sizage.hs, cs);
|
|
31
34
|
const ms = sizage.ss - sizage.os;
|
|
32
35
|
const index = ms > 0 ? b64ToInt(soft.slice(0, ms)) : 0;
|
|
33
|
-
const ondex = sizage.os > 0
|
|
36
|
+
const ondex = sizage.os > 0
|
|
37
|
+
? b64ToInt(soft.slice(ms, sizage.ss))
|
|
38
|
+
: (INDEXED_BOTH_SIG_CODES.has(code) ? index : undefined);
|
|
34
39
|
return { index, ondex };
|
|
35
40
|
}
|
|
41
|
+
/** Inhale one text-domain indexer token into normalized indexer data fields. */
|
|
36
42
|
function parseIndexerFromTextData(input) {
|
|
37
43
|
const txt = String.fromCharCode(...input);
|
|
38
44
|
if (txt.length === 0) {
|
|
@@ -47,7 +53,8 @@ function parseIndexerFromTextData(input) {
|
|
|
47
53
|
throw new ShortageError(fullSize, txt.length);
|
|
48
54
|
}
|
|
49
55
|
const qb64 = txt.slice(0, fullSize);
|
|
50
|
-
const
|
|
56
|
+
const ps = cs % 4;
|
|
57
|
+
const raw = decodeB64("A".repeat(ps) + qb64.slice(cs)).slice(ps + sizage.ls);
|
|
51
58
|
const { index, ondex } = parseIndexFields(code, qb64);
|
|
52
59
|
return {
|
|
53
60
|
code,
|
|
@@ -59,6 +66,7 @@ function parseIndexerFromTextData(input) {
|
|
|
59
66
|
ondex,
|
|
60
67
|
};
|
|
61
68
|
}
|
|
69
|
+
/** Inhale one qb2 indexer token into the canonical text-oriented indexer shape. */
|
|
62
70
|
function parseIndexerFromBinaryData(input) {
|
|
63
71
|
if (input.length === 0) {
|
|
64
72
|
throw new ShortageError(1, 0);
|
|
@@ -91,7 +99,8 @@ function parseIndexerFromBinaryData(input) {
|
|
|
91
99
|
}
|
|
92
100
|
const qb2 = input.slice(0, bfs);
|
|
93
101
|
const qb64 = codeB2ToB64(qb2, fs);
|
|
94
|
-
const
|
|
102
|
+
const ps = cs % 4;
|
|
103
|
+
const raw = decodeB64("A".repeat(ps) + qb64.slice(cs)).slice(ps + sizage.ls);
|
|
95
104
|
const { index, ondex } = parseIndexFields(hard, qb64);
|
|
96
105
|
return {
|
|
97
106
|
code: hard,
|
|
@@ -103,6 +112,7 @@ function parseIndexerFromBinaryData(input) {
|
|
|
103
112
|
ondex,
|
|
104
113
|
};
|
|
105
114
|
}
|
|
115
|
+
/** Exhale raw bytes plus index metadata into fully qualified indexer encodings. */
|
|
106
116
|
function encodeIndexerFromRaw(code, raw, index, ondex) {
|
|
107
117
|
const sizage = INDEXER_SIZES.get(code);
|
|
108
118
|
if (!sizage) {
|
|
@@ -115,10 +125,16 @@ function encodeIndexerFromRaw(code, raw, index, ondex) {
|
|
|
115
125
|
if (!Number.isInteger(index) || index < 0) {
|
|
116
126
|
throw new DeserializeError(`Invalid index ${index} for ${code}`);
|
|
117
127
|
}
|
|
118
|
-
const ondexValue = sizage.os > 0
|
|
128
|
+
const ondexValue = sizage.os > 0
|
|
129
|
+
? (ondex ?? index)
|
|
130
|
+
: (INDEXED_BOTH_SIG_CODES.has(code) ? index : undefined);
|
|
119
131
|
if (sizage.os > 0 && (ondexValue === undefined || ondexValue < 0)) {
|
|
120
132
|
throw new DeserializeError(`Invalid ondex ${ondexValue} for ${code}`);
|
|
121
133
|
}
|
|
134
|
+
if (sizage.os === 0 && INDEXED_BOTH_SIG_CODES.has(code)
|
|
135
|
+
&& typeof ondex === "number" && ondex !== index) {
|
|
136
|
+
throw new DeserializeError(`Invalid ondex ${ondex} for both-signature code ${code} with index ${index}`);
|
|
137
|
+
}
|
|
122
138
|
const cs = sizage.hs + sizage.ss;
|
|
123
139
|
const ps = cs % 4;
|
|
124
140
|
const paw = concatBytes(new Uint8Array(ps + sizage.ls), raw);
|
|
@@ -139,6 +155,7 @@ function encodeIndexerFromRaw(code, raw, index, ondex) {
|
|
|
139
155
|
ondex: ondexValue,
|
|
140
156
|
};
|
|
141
157
|
}
|
|
158
|
+
/** Normalize the supported constructor variants into one shared indexer payload. */
|
|
142
159
|
function parseIndexerInit(init) {
|
|
143
160
|
if (init.raw && init.code) {
|
|
144
161
|
return encodeIndexerFromRaw(init.code, init.raw, init.index ?? 0, init.ondex);
|
|
@@ -35,8 +35,7 @@ function decodeLabelText(matter) {
|
|
|
35
35
|
*/
|
|
36
36
|
export class Labeler extends Matter {
|
|
37
37
|
constructor(init) {
|
|
38
|
-
|
|
39
|
-
super(matter);
|
|
38
|
+
super(init);
|
|
40
39
|
if (!isLabelerCode(this.code)) {
|
|
41
40
|
throw new UnknownCodeError(`Expected labeler code, got ${this.code}`);
|
|
42
41
|
}
|