signify-ts 0.1.1 → 0.2.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.
Files changed (115) hide show
  1. package/README.md +96 -47
  2. package/dist/buffer-polyfill.d.ts +1 -0
  3. package/dist/exports.d.ts +40 -0
  4. package/dist/index.d.ts +4 -3
  5. package/dist/keri/app/aiding.d.ts +138 -0
  6. package/dist/keri/app/clienting.d.ts +182 -0
  7. package/dist/keri/app/contacting.d.ts +93 -0
  8. package/dist/keri/app/controller.d.ts +49 -0
  9. package/dist/keri/app/coring.d.ts +121 -0
  10. package/dist/keri/app/credentialing.d.ts +239 -0
  11. package/dist/keri/app/escrowing.d.ts +19 -0
  12. package/dist/keri/app/exchanging.d.ts +60 -0
  13. package/dist/keri/app/grouping.d.ts +44 -0
  14. package/dist/keri/app/habery.d.ts +48 -47
  15. package/dist/keri/app/notifying.d.ts +34 -0
  16. package/dist/keri/core/authing.d.ts +10 -9
  17. package/dist/keri/core/bexter.d.ts +7 -0
  18. package/dist/keri/core/cigar.d.ts +8 -8
  19. package/dist/keri/core/cipher.d.ts +5 -5
  20. package/dist/keri/core/core.d.ts +59 -53
  21. package/dist/keri/core/counter.d.ts +43 -43
  22. package/dist/keri/core/decrypter.d.ts +10 -10
  23. package/dist/keri/core/diger.d.ts +21 -21
  24. package/dist/keri/core/encrypter.d.ts +9 -9
  25. package/dist/keri/core/eventing.d.ts +54 -21
  26. package/dist/keri/core/httping.d.ts +44 -34
  27. package/dist/keri/core/indexer.d.ts +98 -88
  28. package/dist/keri/core/keeping.d.ts +103 -1
  29. package/dist/keri/core/kering.d.ts +5 -5
  30. package/dist/keri/core/manager.d.ts +174 -172
  31. package/dist/keri/core/matter.d.ts +116 -69
  32. package/dist/keri/core/number.d.ts +7 -6
  33. package/dist/keri/core/pather.d.ts +7 -0
  34. package/dist/keri/core/prefixer.d.ts +15 -15
  35. package/dist/keri/core/saider.d.ts +23 -23
  36. package/dist/keri/core/salter.d.ts +23 -23
  37. package/dist/keri/core/seqner.d.ts +15 -0
  38. package/dist/keri/core/serder.d.ts +31 -23
  39. package/dist/keri/core/siger.d.ts +18 -18
  40. package/dist/keri/core/signer.d.ts +34 -34
  41. package/dist/keri/core/tholder.d.ts +29 -14
  42. package/dist/keri/core/utils.d.ts +20 -15
  43. package/dist/keri/core/vdring.d.ts +16 -0
  44. package/dist/keri/core/verfer.d.ts +13 -12
  45. package/dist/keri/end/ending.d.ts +13 -13
  46. package/dist/math.d.ts +1 -0
  47. package/dist/ready.d.ts +1 -0
  48. package/dist/signify-ts.cjs +7835 -0
  49. package/dist/signify-ts.cjs.development.js +6369 -256
  50. package/dist/signify-ts.cjs.development.js.map +1 -1
  51. package/dist/signify-ts.cjs.map +7 -0
  52. package/dist/signify-ts.cjs.production.min.js +1 -1
  53. package/dist/signify-ts.cjs.production.min.js.map +1 -1
  54. package/dist/signify-ts.esm.js +6205 -229
  55. package/dist/signify-ts.esm.js.map +1 -1
  56. package/dist/signify-ts.mjs +7811 -0
  57. package/dist/signify-ts.mjs.map +7 -0
  58. package/package.json +49 -49
  59. package/src/buffer-polyfill.ts +5 -0
  60. package/src/exports.ts +44 -0
  61. package/src/index.ts +4 -5
  62. package/src/keri/app/aiding.ts +493 -0
  63. package/src/keri/app/clienting.ts +492 -0
  64. package/src/keri/app/contacting.ts +188 -0
  65. package/src/keri/app/controller.ts +372 -0
  66. package/src/keri/app/coring.ts +225 -0
  67. package/src/keri/app/credentialing.ts +820 -0
  68. package/src/keri/app/escrowing.ts +34 -0
  69. package/src/keri/app/exchanging.ts +220 -0
  70. package/src/keri/app/grouping.ts +90 -0
  71. package/src/keri/app/habery.ts +118 -85
  72. package/src/keri/app/notifying.ts +69 -0
  73. package/src/keri/core/authing.ts +73 -85
  74. package/src/keri/core/bexter.ts +138 -0
  75. package/src/keri/core/cigar.ts +10 -11
  76. package/src/keri/core/cipher.ts +23 -14
  77. package/src/keri/core/core.ts +223 -81
  78. package/src/keri/core/counter.ts +182 -116
  79. package/src/keri/core/decrypter.ts +48 -34
  80. package/src/keri/core/diger.ts +23 -22
  81. package/src/keri/core/encrypter.ts +37 -27
  82. package/src/keri/core/eventing.ts +468 -106
  83. package/src/keri/core/httping.ts +151 -105
  84. package/src/keri/core/indexer.ts +313 -211
  85. package/src/keri/core/keeping.ts +679 -3
  86. package/src/keri/core/kering.ts +4 -6
  87. package/src/keri/core/manager.ts +660 -499
  88. package/src/keri/core/matter.ts +382 -148
  89. package/src/keri/core/number.ts +56 -11
  90. package/src/keri/core/pather.ts +98 -0
  91. package/src/keri/core/prefixer.ts +122 -101
  92. package/src/keri/core/saider.ts +104 -76
  93. package/src/keri/core/salter.ts +71 -40
  94. package/src/keri/core/seqner.ts +46 -0
  95. package/src/keri/core/serder.ts +102 -38
  96. package/src/keri/core/siger.ts +19 -18
  97. package/src/keri/core/signer.ts +73 -53
  98. package/src/keri/core/tholder.ts +196 -30
  99. package/src/keri/core/utils.ts +121 -50
  100. package/src/keri/core/vdring.ts +94 -0
  101. package/src/keri/core/verfer.ts +22 -9
  102. package/src/keri/end/ending.ts +111 -101
  103. package/src/math.ts +3 -0
  104. package/src/ready.ts +5 -0
  105. package/dist/keri/app/accountant.d.ts +0 -10
  106. package/dist/keri/app/apping.d.ts +0 -1
  107. package/dist/keri/app/client.d.ts +0 -7
  108. package/dist/keri/app/signify.d.ts +0 -6
  109. package/src/keri/app/accountant.ts +0 -35
  110. package/src/keri/app/apping.ts +0 -12
  111. package/src/keri/app/client.ts +0 -30
  112. package/src/keri/app/signify.ts +0 -12
  113. package/src/keri/app/tsconfig.json +0 -100
  114. package/src/keri/core/tsconfig.json +0 -100
  115. package/src/keri/end/tsconfig.json +0 -100
@@ -1,25 +1,23 @@
1
- import {TextEncoder, TextDecoder} from 'util'
2
-
3
1
  export enum Serials {
4
- JSON = "JSON",
2
+ JSON = 'JSON',
5
3
  }
6
4
 
7
5
  export enum Ident {
8
- KERI = "KERI"
6
+ KERI = 'KERI',
7
+ ACDC = 'ACDC',
9
8
  }
10
9
 
11
10
  export class Version {
12
- public major: number
13
- public minor: number
11
+ public major: number;
12
+ public minor: number;
14
13
 
15
14
  constructor(major: number = 1, minor: number = 0) {
16
- this.major = major
17
- this.minor = minor
15
+ this.major = major;
16
+ this.minor = minor;
18
17
  }
19
18
  }
20
19
 
21
- export const Versionage = new Version()
22
-
20
+ export const Versionage = new Version();
23
21
 
24
22
  export const Ilks = {
25
23
  icp: 'icp',
@@ -29,27 +27,97 @@ export const Ilks = {
29
27
  drt: 'drt',
30
28
  rct: 'rct',
31
29
  vrc: 'vrc',
30
+ rpy: 'rpy',
31
+ exn: 'exn',
32
+ vcp: 'vcp',
33
+ iss: 'iss',
34
+ rev: 'rev',
32
35
  };
33
36
 
34
- export const IcpLabels = ["v", "i", "s", "t", "kt", "k", "n",
35
- "bt", "b", "c", "a"];
36
-
37
- export const DipLabels = ["v", "i", "s", "t", "kt", "k", "n",
38
- "bt", "b", "c", "a", "di"];
39
-
40
- export const RotLabels = ["v", "i", "s", "t", "p", "kt", "k", "n",
41
- "bt", "br", "ba", "a"]
42
- export const DrtLabels = ["v", "i", "s", "t", "p", "kt", "k", "n",
43
- "bt", "br", "ba", "a"]
44
- export const IxnLabels = ["v", "i", "s", "t", "p", "a"]
45
-
46
- export const KsnLabels = ["v", "i", "s", "t", "p", "d", "f", "dt", "et", "kt", "k", "n",
47
- "bt", "b", "c", "ee", "di", "r"]
48
-
49
- export const RpyLabels = ["v", "t", "d", "dt", "r", "a"]
50
-
51
- const encoder = new TextEncoder()
52
- const decoder = new TextDecoder()
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();
53
121
 
54
122
  export const VERFULLSIZE = 17;
55
123
  export const MINSNIFFSIZE = 12 + VERFULLSIZE;
@@ -60,7 +128,7 @@ export const MINSIGSIZE = 4;
60
128
  // const version_pattern1 = `KERI\(\?P<major>\[0\-9a\-f\]\)\(\?P<minor>\[0\-9a\-f\]\)\
61
129
  // (\?P<kind>\[A\-Z\]\{4\}\)\(\?P<size>\[0\-9a\-f\]\{6\}\)_`
62
130
 
63
- export const VEREX = 'KERI([0-9a-f])([0-9a-f])([A-Z]{4})([0-9a-f]{6})_';
131
+ export const VEREX = '(KERI|ACDC)([0-9a-f])([0-9a-f])([A-Z]{4})([0-9a-f]{6})_';
64
132
 
65
133
  export interface Dict<TValue> {
66
134
  [id: string]: TValue;
@@ -72,12 +140,15 @@ export interface Dict<TValue> {
72
140
  * @description This function is use to deversify the version
73
141
  * Here we will use regex to to validate and extract serialization kind,size and version
74
142
  * @param {string} versionString version string
75
- * @return {Object} contaning kind of serialization like cbor,json,mgpk
143
+ * @return {Object} contaning prototol (KERI or ACDC), kind of serialization like cbor,json,mgpk
76
144
  * version = version of object ,size = raw size integer
77
145
  */
78
- export function deversify(versionString: string): [Serials, Version, string] {
146
+ export function deversify(
147
+ versionString: string
148
+ ): [Ident, Serials, Version, string] {
79
149
  let kind;
80
150
  let size;
151
+ let proto;
81
152
  const version = Versionage;
82
153
 
83
154
  // we need to identify how to match the buffers pattern ,like we do regex matching for strings
@@ -86,99 +157,170 @@ export function deversify(versionString: string): [Serials, Version, string] {
86
157
  const match = re.exec(versionString);
87
158
 
88
159
  if (match) {
89
- [version.major, version.minor, kind, size] = [
90
- +match[1],
160
+ [proto, version.major, version.minor, kind, size] = [
161
+ match[1],
91
162
  +match[2],
92
- match[3],
163
+ +match[3],
93
164
  match[4],
165
+ match[5],
94
166
  ];
95
167
  if (!Object.values(Serials).includes(kind as Serials)) {
96
168
  throw new Error(`Invalid serialization kind = ${kind}`);
97
169
  }
170
+ if (!Object.values(Ident).includes(proto as Ident)) {
171
+ throw new Error(`Invalid serialization kind = ${kind}`);
172
+ }
98
173
 
99
- let ta = kind as keyof typeof Serials
100
- kind = Serials[ta]
174
+ const ta = kind as keyof typeof Serials;
175
+ kind = Serials[ta];
176
+ const pa = proto as keyof typeof Ident;
177
+ proto = Ident[pa];
101
178
 
102
- return [kind, version, size];
179
+ return [proto, kind, version, size];
103
180
  }
104
181
  throw new Error(`Invalid version string = ${versionString}`);
105
182
  }
106
183
 
107
- export function versify(ident: Ident = Ident.KERI, version?: Version, kind: Serials=Serials.JSON, size:number = 0) {
108
- version = version == undefined ? Versionage : version
109
-
110
- return `${ident}${version.major.toString(16)}${version.minor.toString()}${kind}${size.toString(16).padStart(6, '0')}_`
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')}_`;
111
195
  }
112
196
 
113
-
114
- export const B64ChrByIdx = new Map<number, string>([[0, 'A'], [1, 'B'], [2, 'C'], [3, 'D'], [4, 'E'], [5, 'F'],
115
- [6, 'G'], [7, 'H'], [8, 'I'], [9, 'J'], [10, 'K'], [11, 'L'], [12, 'M'], [13, 'N'], [14, 'O'], [15, 'P'],
116
- [16, 'Q'], [17, 'R'], [18, 'S'], [19, 'T'], [20, 'U'], [21, 'V'], [22, 'W'], [23, 'X'], [24, 'Y'], [25, 'Z'],
117
- [26, 'a'], [27, 'b'], [28, 'c'], [29, 'd'], [30, 'e'], [31, 'f'], [32, 'g'], [33, 'h'], [34, 'i'], [35, 'j'],
118
- [36, 'k'], [37, 'l'], [38, 'm'], [39, 'n'], [40, 'o'], [41, 'p'], [42, 'q'], [43, 'r'], [44, 's'], [45, 't'],
119
- [46, 'u'], [47, 'v'], [48, 'w'], [49, 'x'], [50, 'y'], [51, 'z'],[ 52, '0'], [53, '1'], [54, '2'], [55, '3'],
120
- [56, '4'], [57, '5'], [58, '6'], [59, '7'], [60, '8'], [61, '9'], [62, '-'], [63, '_']]);
121
-
122
- export const B64IdxByChr = new Map<string, number>(Array.from(B64ChrByIdx, entry => [entry[1], entry[0]]))
123
-
124
-
125
- export function intToB64(i:number, l=1): string {
126
- let out = ""
127
- while(l != 0) {
128
- out = B64ChrByIdx.get(i % 64) + out
129
- i = Math.floor(i / 64)
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);
130
273
  if (i == 0) {
131
- break
274
+ break;
132
275
  }
133
276
  }
134
277
 
135
- let x = (l - out.length)
136
- for(let i = 0; i < x; i++) {
137
- out = "A" + out
278
+ const x = l - out.length;
279
+ for (let i = 0; i < x; i++) {
280
+ out = 'A' + out;
138
281
  }
139
282
 
140
- return out
283
+ return out;
141
284
  }
142
285
 
143
286
  export function intToB64b(n: number, l: number = 1): Uint8Array {
144
- let s = intToB64(n, l)
145
- return b(s)
287
+ const s = intToB64(n, l);
288
+ return b(s);
146
289
  }
147
290
 
148
291
  export function b64ToInt(s: string): number {
149
292
  if (s.length == 0) {
150
- throw new Error("Empty string, conversion undefined.")
293
+ throw new Error('Empty string, conversion undefined.');
151
294
  }
152
295
 
153
- let i = 0
154
- let rev = [...s].reverse()
296
+ let i = 0;
297
+ const rev = s.split('').reverse();
155
298
  rev.forEach((c: string, e: number) => {
156
- i |= B64IdxByChr.get(c)! << (e * 6)
157
- })
299
+ i |= B64IdxByChr.get(c)! << (e * 6);
300
+ });
158
301
 
159
- return i
302
+ return i;
160
303
  }
161
304
 
162
305
  export function b(s?: string): Uint8Array {
163
- return encoder.encode(s)
306
+ return encoder.encode(s);
164
307
  }
165
308
 
166
- export function d(u? :Uint8Array): string {
167
- return decoder.decode(u)
309
+ export function d(u?: Uint8Array): string {
310
+ return decoder.decode(u);
168
311
  }
169
312
 
170
313
  export function concat(one: Uint8Array, two: Uint8Array): Uint8Array {
171
- let out = new Uint8Array(one.length + two.length)
172
- out.set(one)
173
- out.set(two, one.length)
174
- return out
314
+ const out = new Uint8Array(one.length + two.length);
315
+ out.set(one);
316
+ out.set(two, one.length);
317
+ return out;
175
318
  }
176
319
 
177
-
178
320
  export function readInt(array: Uint8Array) {
179
321
  let value = 0;
180
322
  for (let i = 0; i < array.length; i++) {
181
- value = (value * 256) + array[i];
323
+ value = value * 256 + array[i];
182
324
  }
183
325
  return value;
184
326
  }