signify-ts 0.2.1 → 0.3.0-rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +104 -34
  2. package/dist/exports.d.ts +40 -40
  3. package/dist/exports.js +40 -0
  4. package/dist/index.d.ts +2 -3
  5. package/dist/index.js +3 -8
  6. package/dist/keri/app/aiding.d.ts +34 -14
  7. package/{src/keri/app/aiding.ts → dist/keri/app/aiding.js} +104 -235
  8. package/dist/keri/app/clienting.d.ts +57 -22
  9. package/{src/keri/app/clienting.ts → dist/keri/app/clienting.js} +145 -234
  10. package/dist/keri/app/contacting.d.ts +33 -21
  11. package/{src/keri/app/contacting.ts → dist/keri/app/contacting.js} +25 -62
  12. package/dist/keri/app/controller.d.ts +49 -6
  13. package/{src/keri/app/controller.ts → dist/keri/app/controller.js} +79 -185
  14. package/dist/keri/app/coring.d.ts +30 -8
  15. package/{src/keri/app/coring.ts → dist/keri/app/coring.js} +62 -51
  16. package/dist/keri/app/credentialing.d.ts +183 -65
  17. package/dist/keri/app/credentialing.js +540 -0
  18. package/dist/keri/app/delegating.d.ts +18 -0
  19. package/dist/keri/app/delegating.js +24 -0
  20. package/dist/keri/app/escrowing.d.ts +1 -1
  21. package/{src/keri/app/escrowing.ts → dist/keri/app/escrowing.js} +2 -8
  22. package/dist/keri/app/exchanging.d.ts +7 -6
  23. package/{src/keri/app/exchanging.ts → dist/keri/app/exchanging.js} +33 -110
  24. package/dist/keri/app/grouping.d.ts +2 -2
  25. package/{src/keri/app/grouping.ts → dist/keri/app/grouping.js} +6 -25
  26. package/dist/keri/app/habery.d.ts +2 -2
  27. package/dist/keri/app/habery.js +117 -0
  28. package/dist/keri/app/notifying.d.ts +2 -2
  29. package/{src/keri/app/notifying.ts → dist/keri/app/notifying.js} +7 -17
  30. package/dist/keri/core/authing.d.ts +2 -2
  31. package/{src/keri/core/authing.ts → dist/keri/core/authing.js} +26 -42
  32. package/dist/keri/core/base64.d.ts +2 -0
  33. package/dist/keri/core/base64.js +16 -0
  34. package/dist/keri/core/bexter.d.ts +1 -1
  35. package/{src/keri/core/bexter.ts → dist/keri/core/bexter.js} +18 -32
  36. package/dist/keri/core/cigar.d.ts +2 -2
  37. package/dist/keri/core/cigar.js +13 -0
  38. package/dist/keri/core/cipher.d.ts +1 -1
  39. package/{src/keri/core/cipher.ts → dist/keri/core/cipher.js} +10 -19
  40. package/dist/keri/core/core.d.ts +117 -9
  41. package/dist/keri/core/core.js +385 -0
  42. package/dist/keri/core/counter.d.ts +2 -2
  43. package/dist/keri/core/counter.js +221 -0
  44. package/dist/keri/core/decrypter.d.ts +4 -4
  45. package/{src/keri/core/decrypter.ts → dist/keri/core/decrypter.js} +23 -40
  46. package/dist/keri/core/diger.d.ts +3 -3
  47. package/{src/keri/core/diger.ts → dist/keri/core/diger.js} +18 -33
  48. package/dist/keri/core/encrypter.d.ts +2 -2
  49. package/{src/keri/core/encrypter.ts → dist/keri/core/encrypter.js} +18 -38
  50. package/dist/keri/core/eventing.d.ts +4 -4
  51. package/{src/keri/core/eventing.ts → dist/keri/core/eventing.js} +134 -321
  52. package/dist/keri/core/httping.d.ts +11 -4
  53. package/{src/keri/core/httping.ts → dist/keri/core/httping.js} +36 -101
  54. package/dist/keri/core/indexer.d.ts +1 -1
  55. package/dist/keri/core/indexer.js +407 -0
  56. package/dist/keri/core/keeping.d.ts +98 -46
  57. package/dist/keri/core/keeping.js +365 -0
  58. package/{src/keri/core/kering.ts → dist/keri/core/kering.js} +1 -3
  59. package/dist/keri/core/keyState.d.ts +85 -0
  60. package/dist/keri/core/keyState.js +1 -0
  61. package/dist/keri/core/manager.d.ts +147 -12
  62. package/dist/keri/core/manager.js +880 -0
  63. package/dist/keri/core/matter.d.ts +1 -1
  64. package/dist/keri/core/matter.js +460 -0
  65. package/dist/keri/core/number.d.ts +1 -1
  66. package/{src/keri/core/number.ts → dist/keri/core/number.js} +21 -30
  67. package/dist/keri/core/pather.d.ts +2 -2
  68. package/{src/keri/core/pather.ts → dist/keri/core/pather.js} +12 -27
  69. package/dist/keri/core/prefixer.d.ts +10 -10
  70. package/dist/keri/core/prefixer.js +182 -0
  71. package/dist/keri/core/saider.d.ts +2 -12
  72. package/dist/keri/core/saider.js +107 -0
  73. package/dist/keri/core/salter.d.ts +45 -3
  74. package/dist/keri/core/salter.js +117 -0
  75. package/dist/keri/core/seqner.d.ts +1 -1
  76. package/{src/keri/core/seqner.ts → dist/keri/core/seqner.js} +20 -21
  77. package/dist/keri/core/serder.d.ts +25 -12
  78. package/dist/keri/core/serder.js +133 -0
  79. package/dist/keri/core/siger.d.ts +2 -2
  80. package/{src/keri/core/siger.ts → dist/keri/core/siger.js} +4 -14
  81. package/dist/keri/core/signer.d.ts +4 -4
  82. package/dist/keri/core/signer.js +84 -0
  83. package/{src/keri/core/tholder.ts → dist/keri/core/tholder.js} +69 -94
  84. package/dist/keri/core/utils.d.ts +1 -1
  85. package/{src/keri/core/utils.ts → dist/keri/core/utils.js} +30 -60
  86. package/dist/keri/core/vdring.d.ts +2 -2
  87. package/dist/keri/core/vdring.js +61 -0
  88. package/dist/keri/core/verfer.d.ts +2 -6
  89. package/dist/keri/core/verfer.js +37 -0
  90. package/dist/keri/end/ending.d.ts +10 -8
  91. package/dist/keri/end/ending.js +136 -0
  92. package/{src/ready.ts → dist/ready.js} +1 -2
  93. package/dist/types/keria-api-schema.d.ts +304 -0
  94. package/dist/types/keria-api-schema.js +2 -0
  95. package/package.json +53 -50
  96. package/dist/buffer-polyfill.d.ts +0 -1
  97. package/dist/math.d.ts +0 -1
  98. package/dist/signify-ts.cjs +0 -7842
  99. package/dist/signify-ts.cjs.development.js +0 -9501
  100. package/dist/signify-ts.cjs.development.js.map +0 -1
  101. package/dist/signify-ts.cjs.map +0 -7
  102. package/dist/signify-ts.cjs.production.min.js +0 -2
  103. package/dist/signify-ts.cjs.production.min.js.map +0 -1
  104. package/dist/signify-ts.esm.js +0 -9345
  105. package/dist/signify-ts.esm.js.map +0 -1
  106. package/dist/signify-ts.mjs +0 -7818
  107. package/dist/signify-ts.mjs.map +0 -7
  108. package/src/buffer-polyfill.ts +0 -5
  109. package/src/exports.ts +0 -44
  110. package/src/index.ts +0 -4
  111. package/src/keri/app/credentialing.ts +0 -841
  112. package/src/keri/app/habery.ts +0 -185
  113. package/src/keri/core/cigar.ts +0 -18
  114. package/src/keri/core/core.ts +0 -326
  115. package/src/keri/core/counter.ts +0 -273
  116. package/src/keri/core/indexer.ts +0 -509
  117. package/src/keri/core/keeping.ts +0 -684
  118. package/src/keri/core/manager.ts +0 -1183
  119. package/src/keri/core/matter.ts +0 -521
  120. package/src/keri/core/prefixer.ts +0 -233
  121. package/src/keri/core/saider.ts +0 -186
  122. package/src/keri/core/salter.ts +0 -120
  123. package/src/keri/core/serder.ts +0 -163
  124. package/src/keri/core/signer.ts +0 -133
  125. package/src/keri/core/vdring.ts +0 -94
  126. package/src/keri/core/verfer.ts +0 -47
  127. package/src/keri/end/ending.ts +0 -170
  128. package/src/math.ts +0 -3
@@ -1,185 +0,0 @@
1
- import { Algos, Manager } from '../core/manager';
2
- import { MtrDex } from '../core/matter';
3
- import { Salter } from '../core/salter';
4
- import { Verfer } from '../core/verfer';
5
- import { Diger } from '../core/diger';
6
- import { incept } from '../core/eventing';
7
- import { Serder } from '../core/serder';
8
-
9
- export class TraitCodex {
10
- EstOnly: string = 'EO'; // Only allow establishment events
11
- DoNotDelegate: string = 'DND'; // Dot not allow delegated identifiers
12
- NoBackers: string = 'NB'; // Do not allow backers
13
- }
14
-
15
- export const TraitDex = new TraitCodex();
16
-
17
- export interface HaberyArgs {
18
- name: string;
19
- passcode?: string;
20
- seed?: string | undefined;
21
- aeid?: string | undefined;
22
- pidx?: number | undefined;
23
- salt?: string | undefined;
24
- tier?: string | undefined;
25
- }
26
-
27
- export interface MakeHabArgs {
28
- code?: string;
29
- transferable?: boolean;
30
- isith?: string;
31
- icount?: number;
32
- nsith?: string;
33
- ncount?: number;
34
- toad?: string | number;
35
- wits?: Array<string>;
36
- delpre?: string;
37
- estOnly?: boolean;
38
- DnD?: boolean;
39
- data?: any;
40
- }
41
-
42
- export class Hab {
43
- public name: string;
44
- public serder: Serder;
45
-
46
- constructor(name: string, icp: Serder) {
47
- this.name = name;
48
- this.serder = icp;
49
- }
50
-
51
- get pre(): string {
52
- return this.serder.ked['i'];
53
- }
54
- }
55
-
56
- export class Habery {
57
- private readonly _name: string;
58
- private readonly _mgr: Manager;
59
- private readonly _habs: Map<string, Hab> = new Map<string, Hab>();
60
-
61
- constructor({ name, passcode, seed, aeid, pidx, salt }: HaberyArgs) {
62
- this._name = name;
63
- if (passcode != undefined && seed == undefined) {
64
- if (passcode.length < 21) {
65
- throw new Error('Bran (passcode seed material) too short.');
66
- }
67
-
68
- const bran = MtrDex.Salt_128 + 'A' + passcode.substring(0, 21); // qb64 salt for seed
69
- const signer = new Salter({ qb64: bran }).signer(
70
- MtrDex.Ed25519_Seed,
71
- false
72
- );
73
- seed = signer.qb64;
74
- if (aeid == undefined) {
75
- aeid = signer.verfer.qb64; // lest it remove encryption
76
- }
77
- }
78
- let algo;
79
- const salter =
80
- salt != undefined ? new Salter({ qb64: salt }) : undefined;
81
- if (salt != undefined) {
82
- algo = Algos.salty;
83
- } else {
84
- algo = Algos.randy;
85
- }
86
-
87
- this._mgr = new Manager({
88
- seed: seed,
89
- aeid: aeid,
90
- pidx: pidx,
91
- algo: algo,
92
- salter: salter,
93
- });
94
- }
95
-
96
- get mgr(): Manager {
97
- return this._mgr;
98
- }
99
-
100
- get habs(): Array<Hab> {
101
- return Array.from(this._habs.values());
102
- }
103
-
104
- habByName(name: string): Hab | undefined {
105
- return this._habs.get(name);
106
- }
107
-
108
- makeHab(
109
- name: string,
110
- {
111
- code = MtrDex.Blake3_256,
112
- transferable = true,
113
- isith = undefined,
114
- icount = 1,
115
- nsith = undefined,
116
- ncount = undefined,
117
- toad = undefined,
118
- wits = undefined,
119
- delpre = undefined,
120
- estOnly = false,
121
- DnD = false,
122
- data = undefined,
123
- }: MakeHabArgs
124
- ): Hab {
125
- if (nsith == undefined) {
126
- nsith = isith;
127
- }
128
- if (ncount == undefined) {
129
- ncount = icount;
130
- }
131
- if (!transferable) {
132
- ncount = 0;
133
- nsith = '0';
134
- code = MtrDex.Ed25519N;
135
- }
136
-
137
- const [verfers, digers] = this._mgr.incept({
138
- icount: icount,
139
- ncount: ncount,
140
- stem: this.name,
141
- transferable: transferable,
142
- temp: false,
143
- });
144
-
145
- icount = verfers.length;
146
- ncount = digers != undefined ? digers.length : 0;
147
- if (isith == undefined) {
148
- isith = `${Math.max(1, Math.ceil(icount / 2)).toString(16)}`;
149
- }
150
- if (nsith == undefined) {
151
- nsith = `${Math.max(1, Math.ceil(ncount / 2)).toString(16)}`;
152
- }
153
-
154
- const cnfg = new Array<string>();
155
- if (estOnly) {
156
- cnfg.push(TraitDex.EstOnly);
157
- }
158
- if (DnD) {
159
- cnfg.push(TraitDex.DoNotDelegate);
160
- }
161
-
162
- const keys = Array.from(verfers, (verfer: Verfer) => verfer.qb64);
163
- const ndigs = Array.from(digers, (diger: Diger) => diger.qb64);
164
-
165
- const icp = incept({
166
- keys,
167
- isith,
168
- ndigs,
169
- nsith,
170
- toad,
171
- wits,
172
- cnfg,
173
- data,
174
- code,
175
- delpre,
176
- });
177
- const hab = new Hab(name, icp);
178
- this._habs.set(name, hab);
179
- return hab;
180
- }
181
-
182
- get name(): string {
183
- return this._name;
184
- }
185
- }
@@ -1,18 +0,0 @@
1
- import { Verfer } from './verfer';
2
- import { Matter, MatterArgs } from './matter';
3
-
4
- export class Cigar extends Matter {
5
- private _verfer: Verfer | undefined;
6
- constructor({ raw, code, qb64, qb64b, qb2 }: MatterArgs, verfer?: Verfer) {
7
- super({ raw, code, qb64, qb64b, qb2 });
8
- this._verfer = verfer;
9
- }
10
-
11
- get verfer(): Verfer | undefined {
12
- return this._verfer;
13
- }
14
-
15
- set verfer(verfer: Verfer | undefined) {
16
- this._verfer = verfer;
17
- }
18
- }
@@ -1,326 +0,0 @@
1
- export enum Serials {
2
- JSON = 'JSON',
3
- }
4
-
5
- export enum Ident {
6
- KERI = 'KERI',
7
- ACDC = 'ACDC',
8
- }
9
-
10
- export class Version {
11
- public major: number;
12
- public minor: number;
13
-
14
- constructor(major: number = 1, minor: number = 0) {
15
- this.major = major;
16
- this.minor = minor;
17
- }
18
- }
19
-
20
- export const Versionage = new Version();
21
-
22
- export const Ilks = {
23
- icp: 'icp',
24
- rot: 'rot',
25
- ixn: 'ixn',
26
- dip: 'dip',
27
- drt: 'drt',
28
- rct: 'rct',
29
- vrc: 'vrc',
30
- rpy: 'rpy',
31
- exn: 'exn',
32
- vcp: 'vcp',
33
- iss: 'iss',
34
- rev: 'rev',
35
- };
36
-
37
- export const IcpLabels = [
38
- 'v',
39
- 'i',
40
- 's',
41
- 't',
42
- 'kt',
43
- 'k',
44
- 'n',
45
- 'bt',
46
- 'b',
47
- 'c',
48
- 'a',
49
- ];
50
-
51
- export const DipLabels = [
52
- 'v',
53
- 'i',
54
- 's',
55
- 't',
56
- 'kt',
57
- 'k',
58
- 'n',
59
- 'bt',
60
- 'b',
61
- 'c',
62
- 'a',
63
- 'di',
64
- ];
65
-
66
- export const RotLabels = [
67
- 'v',
68
- 'i',
69
- 's',
70
- 't',
71
- 'p',
72
- 'kt',
73
- 'k',
74
- 'n',
75
- 'bt',
76
- 'br',
77
- 'ba',
78
- 'a',
79
- ];
80
- export const DrtLabels = [
81
- 'v',
82
- 'i',
83
- 's',
84
- 't',
85
- 'p',
86
- 'kt',
87
- 'k',
88
- 'n',
89
- 'bt',
90
- 'br',
91
- 'ba',
92
- 'a',
93
- ];
94
- export const IxnLabels = ['v', 'i', 's', 't', 'p', 'a'];
95
-
96
- export const KsnLabels = [
97
- 'v',
98
- 'i',
99
- 's',
100
- 't',
101
- 'p',
102
- 'd',
103
- 'f',
104
- 'dt',
105
- 'et',
106
- 'kt',
107
- 'k',
108
- 'n',
109
- 'bt',
110
- 'b',
111
- 'c',
112
- 'ee',
113
- 'di',
114
- 'r',
115
- ];
116
-
117
- export const RpyLabels = ['v', 't', 'd', 'dt', 'r', 'a'];
118
-
119
- const encoder = new TextEncoder();
120
- const decoder = new TextDecoder();
121
-
122
- export const VERFULLSIZE = 17;
123
- export const MINSNIFFSIZE = 12 + VERFULLSIZE;
124
- export const MINSIGSIZE = 4;
125
-
126
- // const version_pattern = 'KERI(?P<major>[0-9a-f])(?P<minor>[0-9a-f])
127
- // (?P<kind>[A-Z]{4})(?P<size>[0-9a-f]{6})'
128
- // const version_pattern1 = `KERI\(\?P<major>\[0\-9a\-f\]\)\(\?P<minor>\[0\-9a\-f\]\)\
129
- // (\?P<kind>\[A\-Z\]\{4\}\)\(\?P<size>\[0\-9a\-f\]\{6\}\)_`
130
-
131
- export const VEREX = '(KERI|ACDC)([0-9a-f])([0-9a-f])([A-Z]{4})([0-9a-f]{6})_';
132
-
133
- export interface Dict<TValue> {
134
- [id: string]: TValue;
135
- }
136
-
137
- // Regex pattern matching
138
-
139
- /**
140
- * @description This function is use to deversify the version
141
- * Here we will use regex to to validate and extract serialization kind,size and version
142
- * @param {string} versionString version string
143
- * @return {Object} contaning prototol (KERI or ACDC), kind of serialization like cbor,json,mgpk
144
- * version = version of object ,size = raw size integer
145
- */
146
- export function deversify(
147
- versionString: string
148
- ): [Ident, Serials, Version, string] {
149
- let kind;
150
- let size;
151
- let proto;
152
- const version = Versionage;
153
-
154
- // we need to identify how to match the buffers pattern ,like we do regex matching for strings
155
- const re = new RegExp(VEREX);
156
-
157
- const match = re.exec(versionString);
158
-
159
- if (match) {
160
- [proto, version.major, version.minor, kind, size] = [
161
- match[1],
162
- +match[2],
163
- +match[3],
164
- match[4],
165
- match[5],
166
- ];
167
- if (!Object.values(Serials).includes(kind as Serials)) {
168
- throw new Error(`Invalid serialization kind = ${kind}`);
169
- }
170
- if (!Object.values(Ident).includes(proto as Ident)) {
171
- throw new Error(`Invalid serialization kind = ${kind}`);
172
- }
173
-
174
- const ta = kind as keyof typeof Serials;
175
- kind = Serials[ta];
176
- const pa = proto as keyof typeof Ident;
177
- proto = Ident[pa];
178
-
179
- return [proto, kind, version, size];
180
- }
181
- throw new Error(`Invalid version string = ${versionString}`);
182
- }
183
-
184
- export function versify(
185
- ident: Ident = Ident.KERI,
186
- version?: Version,
187
- kind: Serials = Serials.JSON,
188
- size: number = 0
189
- ) {
190
- version = version == undefined ? Versionage : version;
191
-
192
- return `${ident}${version.major.toString(
193
- 16
194
- )}${version.minor.toString()}${kind}${size.toString(16).padStart(6, '0')}_`;
195
- }
196
-
197
- export const B64ChrByIdx = new Map<number, string>([
198
- [0, 'A'],
199
- [1, 'B'],
200
- [2, 'C'],
201
- [3, 'D'],
202
- [4, 'E'],
203
- [5, 'F'],
204
- [6, 'G'],
205
- [7, 'H'],
206
- [8, 'I'],
207
- [9, 'J'],
208
- [10, 'K'],
209
- [11, 'L'],
210
- [12, 'M'],
211
- [13, 'N'],
212
- [14, 'O'],
213
- [15, 'P'],
214
- [16, 'Q'],
215
- [17, 'R'],
216
- [18, 'S'],
217
- [19, 'T'],
218
- [20, 'U'],
219
- [21, 'V'],
220
- [22, 'W'],
221
- [23, 'X'],
222
- [24, 'Y'],
223
- [25, 'Z'],
224
- [26, 'a'],
225
- [27, 'b'],
226
- [28, 'c'],
227
- [29, 'd'],
228
- [30, 'e'],
229
- [31, 'f'],
230
- [32, 'g'],
231
- [33, 'h'],
232
- [34, 'i'],
233
- [35, 'j'],
234
- [36, 'k'],
235
- [37, 'l'],
236
- [38, 'm'],
237
- [39, 'n'],
238
- [40, 'o'],
239
- [41, 'p'],
240
- [42, 'q'],
241
- [43, 'r'],
242
- [44, 's'],
243
- [45, 't'],
244
- [46, 'u'],
245
- [47, 'v'],
246
- [48, 'w'],
247
- [49, 'x'],
248
- [50, 'y'],
249
- [51, 'z'],
250
- [52, '0'],
251
- [53, '1'],
252
- [54, '2'],
253
- [55, '3'],
254
- [56, '4'],
255
- [57, '5'],
256
- [58, '6'],
257
- [59, '7'],
258
- [60, '8'],
259
- [61, '9'],
260
- [62, '-'],
261
- [63, '_'],
262
- ]);
263
-
264
- export const B64IdxByChr = new Map<string, number>(
265
- Array.from(B64ChrByIdx, (entry) => [entry[1], entry[0]])
266
- );
267
-
268
- export function intToB64(i: number, l = 1): string {
269
- let out = '';
270
- while (l != 0) {
271
- out = B64ChrByIdx.get(i % 64) + out;
272
- i = Math.floor(i / 64);
273
- if (i == 0) {
274
- break;
275
- }
276
- }
277
-
278
- const x = l - out.length;
279
- for (let i = 0; i < x; i++) {
280
- out = 'A' + out;
281
- }
282
-
283
- return out;
284
- }
285
-
286
- export function intToB64b(n: number, l: number = 1): Uint8Array {
287
- const s = intToB64(n, l);
288
- return b(s);
289
- }
290
-
291
- export function b64ToInt(s: string): number {
292
- if (s.length == 0) {
293
- throw new Error('Empty string, conversion undefined.');
294
- }
295
-
296
- let i = 0;
297
- const rev = s.split('').reverse();
298
- rev.forEach((c: string, e: number) => {
299
- i |= B64IdxByChr.get(c)! << (e * 6);
300
- });
301
-
302
- return i;
303
- }
304
-
305
- export function b(s?: string): Uint8Array {
306
- return encoder.encode(s);
307
- }
308
-
309
- export function d(u?: Uint8Array): string {
310
- return decoder.decode(u);
311
- }
312
-
313
- export function concat(one: Uint8Array, two: Uint8Array): Uint8Array {
314
- const out = new Uint8Array(one.length + two.length);
315
- out.set(one);
316
- out.set(two, one.length);
317
- return out;
318
- }
319
-
320
- export function readInt(array: Uint8Array) {
321
- let value = 0;
322
- for (let i = 0; i < array.length; i++) {
323
- value = value * 256 + array[i];
324
- }
325
- return value;
326
- }