signify-ts 0.2.0 → 0.3.0-dev.e31e78d

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 (129) 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 +54 -18
  7. package/{src/keri/app/aiding.ts → dist/keri/app/aiding.js} +130 -236
  8. package/dist/keri/app/clienting.d.ts +59 -22
  9. package/{src/keri/app/clienting.ts → dist/keri/app/clienting.js} +146 -235
  10. package/dist/keri/app/contacting.d.ts +30 -23
  11. package/{src/keri/app/contacting.ts → dist/keri/app/contacting.js} +26 -63
  12. package/dist/keri/app/controller.d.ts +49 -6
  13. package/{src/keri/app/controller.ts → dist/keri/app/controller.js} +80 -186
  14. package/dist/keri/app/coring.d.ts +134 -25
  15. package/{src/keri/app/coring.ts → dist/keri/app/coring.js} +83 -56
  16. package/dist/keri/app/credentialing.d.ts +191 -67
  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 +5 -3
  21. package/{src/keri/app/escrowing.ts → dist/keri/app/escrowing.js} +3 -9
  22. package/dist/keri/app/exchanging.d.ts +243 -11
  23. package/dist/keri/app/exchanging.js +242 -0
  24. package/dist/keri/app/grouping.d.ts +11 -9
  25. package/{src/keri/app/grouping.ts → dist/keri/app/grouping.js} +10 -29
  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 +6 -6
  51. package/dist/keri/core/eventing.js +383 -0
  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 +113 -46
  57. package/dist/keri/core/keeping.js +347 -0
  58. package/{src/keri/core/kering.ts → dist/keri/core/kering.js} +1 -3
  59. package/dist/keri/core/keyState.d.ts +98 -0
  60. package/dist/keri/core/manager.d.ts +147 -12
  61. package/dist/keri/core/manager.js +880 -0
  62. package/dist/keri/core/matter.d.ts +1 -1
  63. package/dist/keri/core/matter.js +460 -0
  64. package/dist/keri/core/number.d.ts +2 -2
  65. package/{src/keri/core/number.ts → dist/keri/core/number.js} +26 -32
  66. package/dist/keri/core/pather.d.ts +2 -2
  67. package/{src/keri/core/pather.ts → dist/keri/core/pather.js} +12 -27
  68. package/dist/keri/core/prefixer.d.ts +10 -10
  69. package/dist/keri/core/prefixer.js +182 -0
  70. package/dist/keri/core/saider.d.ts +2 -12
  71. package/dist/keri/core/saider.js +107 -0
  72. package/dist/keri/core/salter.d.ts +44 -9
  73. package/dist/keri/core/salter.js +110 -0
  74. package/dist/keri/core/seqner.d.ts +1 -1
  75. package/{src/keri/core/seqner.ts → dist/keri/core/seqner.js} +20 -21
  76. package/dist/keri/core/serder.d.ts +25 -12
  77. package/dist/keri/core/serder.js +133 -0
  78. package/dist/keri/core/siger.d.ts +2 -2
  79. package/{src/keri/core/siger.ts → dist/keri/core/siger.js} +4 -14
  80. package/dist/keri/core/signer.d.ts +4 -4
  81. package/dist/keri/core/signer.js +84 -0
  82. package/{src/keri/core/tholder.ts → dist/keri/core/tholder.js} +69 -94
  83. package/dist/keri/core/utils.d.ts +1 -1
  84. package/{src/keri/core/utils.ts → dist/keri/core/utils.js} +30 -60
  85. package/dist/keri/core/vdring.d.ts +2 -2
  86. package/dist/keri/core/vdring.js +61 -0
  87. package/dist/keri/core/verfer.d.ts +2 -6
  88. package/dist/keri/core/verfer.js +37 -0
  89. package/dist/keri/end/ending.d.ts +10 -8
  90. package/dist/keri/end/ending.js +136 -0
  91. package/{src/ready.ts → dist/ready.js} +1 -2
  92. package/dist/types/keria-api-schema.d.ts +1158 -0
  93. package/dist/types/keria-api-schema.js +34 -0
  94. package/package.json +53 -52
  95. package/dist/math.d.ts +0 -1
  96. package/dist/signify-ts.cjs +0 -7835
  97. package/dist/signify-ts.cjs.development.js +0 -9501
  98. package/dist/signify-ts.cjs.development.js.map +0 -1
  99. package/dist/signify-ts.cjs.map +0 -7
  100. package/dist/signify-ts.cjs.production.min.js +0 -2
  101. package/dist/signify-ts.cjs.production.min.js.map +0 -1
  102. package/dist/signify-ts.esm.js +0 -9345
  103. package/dist/signify-ts.esm.js.map +0 -1
  104. package/dist/signify-ts.mjs +0 -7811
  105. package/dist/signify-ts.mjs.map +0 -7
  106. package/src/buffer-polyfill.ts +0 -5
  107. package/src/exports.ts +0 -44
  108. package/src/index.ts +0 -4
  109. package/src/keri/app/credentialing.ts +0 -820
  110. package/src/keri/app/exchanging.ts +0 -220
  111. package/src/keri/app/habery.ts +0 -185
  112. package/src/keri/core/cigar.ts +0 -18
  113. package/src/keri/core/core.ts +0 -326
  114. package/src/keri/core/counter.ts +0 -273
  115. package/src/keri/core/eventing.ts +0 -581
  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
  129. /package/dist/{buffer-polyfill.d.ts → keri/core/keyState.js} +0 -0
@@ -1,54 +1,47 @@
1
- import { SignifyClient } from './clienting';
2
1
  import libsodium from 'libsodium-wrappers-sumo';
3
- import { Salter } from '../core/salter';
4
- import { Matter, MtrDex } from '../core/matter';
5
-
6
- export function randomPasscode(): string {
2
+ import { Salter } from "../core/salter.js";
3
+ import { Matter, MtrDex } from "../core/matter.js";
4
+ export function randomPasscode() {
7
5
  const raw = libsodium.randombytes_buf(16);
8
6
  const salter = new Salter({ raw: raw });
9
-
10
- return salter.qb64.substring(2);
7
+ // https://github.com/WebOfTrust/signify-ts/issues/242
8
+ return salter.qb64.substring(2, 23);
11
9
  }
12
-
13
- export function randomNonce(): string {
10
+ export function randomNonce() {
14
11
  const seed = libsodium.randombytes_buf(libsodium.crypto_sign_SEEDBYTES);
15
12
  const seedqb64 = new Matter({ raw: seed, code: MtrDex.Ed25519_Seed });
16
13
  return seedqb64.qb64;
17
14
  }
18
-
19
15
  export class Oobis {
20
- public client: SignifyClient;
21
16
  /**
22
17
  * Oobis
23
18
  * @param {SignifyClient} client
24
19
  */
25
- constructor(client: SignifyClient) {
20
+ constructor(client) {
26
21
  this.client = client;
27
22
  }
28
-
29
23
  /**
30
24
  * Get the OOBI(s) for a managed indentifier for a given role
31
25
  * @param {string} name Name or alias of the identifier
32
26
  * @param {string} role Authorized role
33
- * @returns {Promise<any>} A promise to the OOBI(s)
27
+ * @returns {Promise<OOBI>} A promise to the OOBI(s)
34
28
  */
35
- async get(name: string, role: string = 'agent'): Promise<any> {
29
+ async get(name, role = 'agent') {
36
30
  const path = `/identifiers/${name}/oobis?role=${role}`;
37
31
  const method = 'GET';
38
32
  const res = await this.client.fetch(path, method, null);
39
33
  return await res.json();
40
34
  }
41
-
42
35
  /**
43
36
  * Resolve an OOBI
44
37
  * @async
45
38
  * @param {string} oobi The OOBI to be resolver
46
39
  * @param {string} [alias] Optional name or alias to link the OOBI resolution to a contact
47
- * @returns {Promise<any>} A promise to the long-running operation
40
+ * @returns {Promise<OOBIOperation>} A promise to the long-running operation
48
41
  */
49
- async resolve(oobi: string, alias?: string): Promise<any> {
42
+ async resolve(oobi, alias) {
50
43
  const path = `/oobis`;
51
- const data: any = {
44
+ const data = {
52
45
  url: oobi,
53
46
  };
54
47
  if (alias !== undefined) {
@@ -59,40 +52,41 @@ export class Oobis {
59
52
  return await res.json();
60
53
  }
61
54
  }
62
-
63
- export interface Operation<T = unknown> {
64
- name: string;
65
- metadata?: {
66
- depends?: Operation;
67
- [property: string]: any;
68
- };
69
- done?: boolean;
70
- error?: any;
71
- response?: T;
72
- }
73
-
74
55
  /**
75
56
  * Operations
76
57
  * @remarks
77
58
  * Operations represent the status and result of long running tasks performed by KERIA agent
78
59
  */
79
60
  export class Operations {
80
- public client: SignifyClient;
81
61
  /**
82
62
  * Operations
83
63
  * @param {SignifyClient} client
84
64
  */
85
- constructor(client: SignifyClient) {
65
+ constructor(client) {
86
66
  this.client = client;
87
67
  }
88
-
68
+ hasDepends(op) {
69
+ return op.metadata !== undefined && 'depends' in op.metadata;
70
+ }
71
+ /**
72
+ * Check if operation failed and throw error with details
73
+ * @throws {Error} If operation has an error
74
+ */
75
+ throwIfFailed(op) {
76
+ if ('error' in op && op.error !== null) {
77
+ const details = op.error.details
78
+ ? ` Details: ${JSON.stringify(op.error.details)}`
79
+ : '';
80
+ throw new Error(`Operation '${op.name}' failed [Code ${op.error.code}]: ${op.error.message}${details}`);
81
+ }
82
+ }
89
83
  /**
90
84
  * Get operation status
91
85
  * @async
92
86
  * @param {string} name Name of the operation
93
87
  * @returns {Promise<Operation>} A promise to the status of the operation
94
88
  */
95
- async get<T = unknown>(name: string): Promise<Operation<T>> {
89
+ async get(name) {
96
90
  const path = `/operations/${name}`;
97
91
  const data = null;
98
92
  const method = 'GET';
@@ -105,7 +99,7 @@ export class Operations {
105
99
  * @param {string} type Select operations by type
106
100
  * @returns {Promise<Operation[]>} A list of operations
107
101
  */
108
- async list(type?: string): Promise<Operation<any>[]> {
102
+ async list(type) {
109
103
  const params = new URLSearchParams();
110
104
  if (type !== undefined) {
111
105
  params.append('type', type);
@@ -121,34 +115,58 @@ export class Operations {
121
115
  * @async
122
116
  * @param {string} name Name of the operation
123
117
  */
124
- async delete(name: string): Promise<void> {
118
+ async delete(name) {
125
119
  const path = `/operations/${name}`;
126
120
  const data = null;
127
121
  const method = 'DELETE';
128
122
  await this.client.fetch(path, method, data);
129
123
  }
124
+ async wait(op, options = {}) {
125
+ var _a, _b, _c, _d;
126
+ const minSleep = (_a = options.minSleep) !== null && _a !== void 0 ? _a : 10;
127
+ const maxSleep = (_b = options.maxSleep) !== null && _b !== void 0 ? _b : 10000;
128
+ const increaseFactor = (_c = options.increaseFactor) !== null && _c !== void 0 ? _c : 50;
129
+ if (this.hasDepends(op) &&
130
+ op.metadata.depends &&
131
+ !op.metadata.depends.done) {
132
+ await this.wait(op.metadata.depends, options);
133
+ }
134
+ if (op.done === true) {
135
+ this.throwIfFailed(op);
136
+ return op;
137
+ }
138
+ let retries = 0;
139
+ while (true) {
140
+ op = await this.get(op.name);
141
+ if (op.done === true) {
142
+ this.throwIfFailed(op);
143
+ return op;
144
+ }
145
+ const delay = Math.max(minSleep, Math.min(maxSleep, 2 ** retries * increaseFactor));
146
+ retries++;
147
+ await new Promise((resolve) => setTimeout(resolve, delay));
148
+ (_d = options.signal) === null || _d === void 0 ? void 0 : _d.throwIfAborted();
149
+ }
150
+ }
130
151
  }
131
-
132
152
  /**
133
153
  * KeyEvents
134
154
  */
135
155
  export class KeyEvents {
136
- public client: SignifyClient;
137
156
  /**
138
157
  * KeyEvents
139
158
  * @param {SignifyClient} client
140
159
  */
141
- constructor(client: SignifyClient) {
160
+ constructor(client) {
142
161
  this.client = client;
143
162
  }
144
-
145
163
  /**
146
164
  * Retrieve key events for an identifier
147
165
  * @async
148
166
  * @param {string} pre Identifier prefix
149
- * @returns {Promise<any>} A promise to the key events
167
+ * @returns {Promise<KeyEventRecord[]>} A promise to the key events
150
168
  */
151
- async get(pre: string): Promise<any> {
169
+ async get(pre) {
152
170
  const path = `/events?pre=${pre}`;
153
171
  const data = null;
154
172
  const method = 'GET';
@@ -156,59 +174,54 @@ export class KeyEvents {
156
174
  return await res.json();
157
175
  }
158
176
  }
159
-
160
177
  /**
161
178
  * KeyStates
162
179
  */
163
180
  export class KeyStates {
164
- public client: SignifyClient;
165
181
  /**
166
182
  * KeyStates
167
183
  * @param {SignifyClient} client
168
184
  */
169
- constructor(client: SignifyClient) {
185
+ constructor(client) {
170
186
  this.client = client;
171
187
  }
172
-
173
188
  /**
174
189
  * Retriene the key state for an identifier
175
190
  * @async
176
191
  * @param {string} pre Identifier prefix
177
- * @returns {Promise<any>} A promise to the key states
192
+ * @returns {Promise<KeyState[]>} A promise to the key states
178
193
  */
179
- async get(pre: string): Promise<any> {
194
+ async get(pre) {
180
195
  const path = `/states?pre=${pre}`;
181
196
  const data = null;
182
197
  const method = 'GET';
183
198
  const res = await this.client.fetch(path, method, data);
184
199
  return await res.json();
185
200
  }
186
-
187
201
  /**
188
202
  * Retrieve the key state for a list of identifiers
189
203
  * @async
190
204
  * @param {Array<string>} pres List of identifier prefixes
191
205
  * @returns {Promise<any>} A promise to the key states
192
206
  */
193
- async list(pres: string[]): Promise<any> {
207
+ async list(pres) {
194
208
  const path = `/states?${pres.map((pre) => `pre=${pre}`).join('&')}`;
195
209
  const data = null;
196
210
  const method = 'GET';
197
211
  const res = await this.client.fetch(path, method, data);
198
212
  return await res.json();
199
213
  }
200
-
201
214
  /**
202
215
  * Query the key state of an identifier for a given sequence number or anchor
203
216
  * @async
204
217
  * @param {string} pre Identifier prefix
205
218
  * @param {number} [sn] Optional sequence number
206
219
  * @param {any} [anchor] Optional anchor
207
- * @returns {Promise<any>} A promise to the long-running operation
220
+ * @returns {Promise<QueryOperation>} A promise to the long-running operation
208
221
  */
209
- async query(pre: string, sn?: string, anchor?: any): Promise<any> {
222
+ async query(pre, sn, anchor) {
210
223
  const path = `/queries`;
211
- const data: any = {
224
+ const data = {
212
225
  pre: pre,
213
226
  };
214
227
  if (sn !== undefined) {
@@ -217,9 +230,23 @@ export class KeyStates {
217
230
  if (anchor !== undefined) {
218
231
  data.anchor = anchor;
219
232
  }
220
-
221
233
  const method = 'POST';
222
234
  const res = await this.client.fetch(path, method, data);
223
235
  return await res.json();
224
236
  }
225
237
  }
238
+ export class Config {
239
+ /**
240
+ * Config
241
+ * @param {SignifyClient} client
242
+ */
243
+ constructor(client) {
244
+ this.client = client;
245
+ }
246
+ async get() {
247
+ const path = `/config`;
248
+ const method = 'GET';
249
+ const res = await this.client.fetch(path, method, null);
250
+ return await res.json();
251
+ }
252
+ }
@@ -1,7 +1,11 @@
1
- import { SignifyClient } from './clienting';
2
- import { Dict } from '../core/core';
3
- import { Serder } from '../core/serder';
4
- import { Operation } from './coring';
1
+ import { SignifyClient } from './clienting.ts';
2
+ import { Dict } from '../core/core.ts';
3
+ import { Serder } from '../core/serder.ts';
4
+ import { ExchangeOperation, CredentialOperation, GroupOperation, DelegationOperation, WitnessOperation, DoneOperation, HabState, RegistryOperation } from '../core/keyState.ts';
5
+ import { components } from '../../types/keria-api-schema.ts';
6
+ export type CredentialResult = components['schemas']['Credential'];
7
+ export type Registry = components['schemas']['Registry'];
8
+ export type Schema = components['schemas']['Schema'];
5
9
  /** Types of credentials */
6
10
  export declare class CredentialTypes {
7
11
  static issued: string;
@@ -14,49 +18,132 @@ export interface CredentialFilter {
14
18
  skip?: number;
15
19
  limit?: number;
16
20
  }
17
- export interface IssueCredentialArgs {
21
+ export interface CredentialSubject {
18
22
  /**
19
- * Name of the issuer identifier
23
+ * Issuee, or holder of the credential.
20
24
  */
21
- issuerName: string;
25
+ i?: string;
22
26
  /**
23
- * QB64 AID of credential registry
27
+ * Timestamp of issuance.
24
28
  */
25
- registryId: string;
29
+ dt?: string;
26
30
  /**
27
- * SAID Of the schema
31
+ * Privacy salt
28
32
  */
29
- schemaId: string;
33
+ u?: string;
34
+ [key: string]: unknown;
35
+ }
36
+ export interface CredentialData {
37
+ v?: string;
38
+ d?: string;
30
39
  /**
31
- * Prefix of recipient identifier
40
+ * Privacy salt
32
41
  */
33
- recipient?: string;
42
+ u?: string;
34
43
  /**
35
- * Credential data
44
+ * Issuer of the credential.
36
45
  */
37
- data?: Record<string, unknown>;
46
+ i?: string;
38
47
  /**
39
- * Credential rules
48
+ * Registry id.
40
49
  */
41
- rules?: string | Record<string, unknown>;
50
+ ri?: string;
42
51
  /**
43
- * Credential sources
52
+ * Schema id
44
53
  */
45
- source?: Record<string, unknown>;
54
+ s?: string;
46
55
  /**
47
- * Datetime to set for the credential
56
+ * Credential subject data
48
57
  */
49
- datetime?: string;
58
+ a: CredentialSubject;
59
+ /**
60
+ * Credential source section
61
+ */
62
+ e?: {
63
+ [key: string]: unknown;
64
+ };
50
65
  /**
51
- * Flag to issue a credential with privacy preserving features
66
+ * Credential rules section
52
67
  */
53
- privacy?: boolean;
68
+ r?: {
69
+ [key: string]: unknown;
70
+ };
54
71
  }
55
72
  export interface IssueCredentialResult {
56
73
  acdc: Serder;
57
74
  anc: Serder;
58
75
  iss: Serder;
59
- op: Operation;
76
+ op: CredentialOperation;
77
+ }
78
+ export interface RevokeCredentialResult {
79
+ anc: Serder;
80
+ rev: Serder;
81
+ op: GroupOperation | DelegationOperation | WitnessOperation | DoneOperation;
82
+ }
83
+ export interface IpexApplyArgs {
84
+ /**
85
+ * Alias for the IPEX sender AID
86
+ */
87
+ senderName: string;
88
+ /**
89
+ * Prefix of the IPEX recipient AID
90
+ */
91
+ recipient: string;
92
+ /**
93
+ * Message to send
94
+ */
95
+ message?: string;
96
+ /**
97
+ * SAID of schema to apply for
98
+ */
99
+ schemaSaid: string;
100
+ /**
101
+ * Optional attributes for selective disclosure
102
+ */
103
+ attributes?: Record<string, unknown>;
104
+ datetime?: string;
105
+ }
106
+ export interface IpexOfferArgs {
107
+ /**
108
+ * Alias for the IPEX sender AID
109
+ */
110
+ senderName: string;
111
+ /**
112
+ * Prefix of the IPEX recipient AID
113
+ */
114
+ recipient: string;
115
+ /**
116
+ * Message to send
117
+ */
118
+ message?: string;
119
+ /**
120
+ * ACDC to offer
121
+ */
122
+ acdc: Serder;
123
+ /**
124
+ * Optional qb64 SAID of apply message this offer is responding to
125
+ */
126
+ applySaid?: string;
127
+ datetime?: string;
128
+ }
129
+ export interface IpexAgreeArgs {
130
+ /**
131
+ * Alias for the IPEX sender AID
132
+ */
133
+ senderName: string;
134
+ /**
135
+ * Prefix of the IPEX recipient AID
136
+ */
137
+ recipient: string;
138
+ /**
139
+ * Message to send
140
+ */
141
+ message?: string;
142
+ /**
143
+ * qb64 SAID of offer message this agree is responding to
144
+ */
145
+ offerSaid: string;
146
+ datetime?: string;
60
147
  }
61
148
  export interface IpexGrantArgs {
62
149
  /**
@@ -74,7 +161,7 @@ export interface IpexGrantArgs {
74
161
  /**
75
162
  * qb64 SAID of agree message this grant is responding to
76
163
  */
77
- agree?: string;
164
+ agreeSaid?: string;
78
165
  datetime?: string;
79
166
  acdc: Serder;
80
167
  acdcAttachment?: string;
@@ -83,6 +170,26 @@ export interface IpexGrantArgs {
83
170
  anc: Serder;
84
171
  ancAttachment?: string;
85
172
  }
173
+ export interface IpexAdmitArgs {
174
+ /**
175
+ * Alias for the IPEX sender AID
176
+ */
177
+ senderName: string;
178
+ /**
179
+ * Prefix of the IPEX recipient AID
180
+ */
181
+ recipient: string;
182
+ /**
183
+ * Message to send
184
+ */
185
+ message?: string;
186
+ /**
187
+ * qb64 SAID of agree message this admit is responding to
188
+ */
189
+ grantSaid: string;
190
+ datetime?: string;
191
+ }
192
+ export type CredentialState = components['schemas']['CredentialState'];
86
193
  /**
87
194
  * Credentials
88
195
  */
@@ -97,49 +204,48 @@ export declare class Credentials {
97
204
  * List credentials
98
205
  * @async
99
206
  * @param {CredentialFilter} [kargs] Optional parameters to filter the credentials
100
- * @returns {Promise<any>} A promise to the list of credentials
207
+ * @returns {Promise<CredentialResult[]>} A promise to the list of credentials
101
208
  */
102
- list(kargs?: CredentialFilter): Promise<any>;
209
+ list(kargs?: CredentialFilter): Promise<CredentialResult[]>;
103
210
  /**
104
211
  * Get a credential
105
212
  * @async
106
213
  * @param {string} said - SAID of the credential
107
214
  * @param {boolean} [includeCESR=false] - Optional flag export the credential in CESR format
108
- * @returns {Promise<any>} A promise to the credential
215
+ * @returns {Promise<CredentialResult | string>} A promise to the credential
109
216
  */
110
- get(said: string, includeCESR?: boolean): Promise<any>;
217
+ get(said: string): Promise<CredentialResult>;
218
+ get(said: string, includeCESR: false): Promise<CredentialResult>;
219
+ get(said: string, includeCESR: true): Promise<string>;
220
+ get(said: string, includeCESR: boolean): Promise<CredentialResult | string>;
111
221
  /**
112
- * Issue a credential
222
+ * Delete a credential from the DB
223
+ * @async
224
+ * @param {string} said - SAID of the credential
225
+ * @returns {Promise<void>}
113
226
  */
114
- issue(args: IssueCredentialArgs): Promise<IssueCredentialResult>;
227
+ delete(said: string): Promise<void>;
115
228
  /**
116
- * Revoke credential
229
+ * Get the state of a credential
117
230
  * @async
118
- * @param {string} name Name or alias of the identifier
119
- * @param {string} said SAID of the credential
120
- * @returns {Promise<any>} A promise to the long-running operation
231
+ * @param {string} ri - management registry identifier
232
+ * @param {string} said - SAID of the credential
233
+ * @returns {Promise<CredentialState>} A promise to the credential registry state
121
234
  */
122
- revoke(name: string, said: string): Promise<any>;
235
+ state(ri: string, said: string): Promise<CredentialState>;
123
236
  /**
124
- * Present a credential
125
- * @async
126
- * @param {string} name Name or alias of the identifier
127
- * @param {string} said SAID of the credential
128
- * @param {string} recipient Identifier prefix of the receiver of the presentation
129
- * @param {boolean} [include=true] Flag to indicate whether to stream credential alongside presentation exchange message
130
- * @returns {Promise<string>} A promise to the long-running operation
237
+ * Creates a credential in the specified registry to be GRANTed with IPEX to the intended recipient
131
238
  */
132
- present(name: string, said: string, recipient: string, include?: boolean): Promise<string>;
239
+ issue(name: string, args: CredentialData): Promise<IssueCredentialResult>;
133
240
  /**
134
- * Request a presentation of a credential
241
+ * Revoke credential
135
242
  * @async
136
243
  * @param {string} name Name or alias of the identifier
137
- * @param {string} recipient Identifier prefix of the receiver of the presentation
138
- * @param {string} schema SAID of the schema
139
- * @param {string} [issuer] Optional prefix of the issuer of the credential
140
- * @returns {Promise<string>} A promise to the long-running operation
244
+ * @param {string} said SAID of the credential
245
+ * @param {string} datetime date time of revocation
246
+ * @returns {Promise<RevokeCredentialResult>} A promise to the long-running operation
141
247
  */
142
- request(name: string, recipient: string, schema: string, issuer?: string): Promise<string>;
248
+ revoke(name: string, said: string, datetime?: string): Promise<RevokeCredentialResult>;
143
249
  }
144
250
  export interface CreateRegistryArgs {
145
251
  name: string;
@@ -158,7 +264,7 @@ export declare class RegistryResult {
158
264
  get regser(): any;
159
265
  get serder(): Serder;
160
266
  get sigs(): string[];
161
- op(): Promise<any>;
267
+ op(): Promise<RegistryOperation>;
162
268
  }
163
269
  /**
164
270
  * Registries
@@ -174,9 +280,9 @@ export declare class Registries {
174
280
  * List registries
175
281
  * @async
176
282
  * @param {string} name Name or alias of the identifier
177
- * @returns {Promise<any>} A promise to the list of registries
283
+ * @returns {Promise<Registry[]>} A promise to the list of registries
178
284
  */
179
- list(name: string): Promise<any>;
285
+ list(name: string): Promise<Registry[]>;
180
286
  /**
181
287
  * Create a registry
182
288
  * @async
@@ -184,7 +290,16 @@ export declare class Registries {
184
290
  * @returns {Promise<[any, Serder, any[], object]> } A promise to the long-running operation
185
291
  */
186
292
  create({ name, registryName, noBackers, toad, baks, nonce, }: CreateRegistryArgs): Promise<RegistryResult>;
187
- createFromEvents(hab: Dict<any>, name: string, registryName: string, vcp: Dict<any>, ixn: Dict<any>, sigs: any[]): Promise<Response>;
293
+ createFromEvents(hab: HabState, name: string, registryName: string, vcp: Dict<any>, ixn: Dict<any>, sigs: any[]): Promise<Response>;
294
+ /**
295
+ * Rename a registry
296
+ * @async
297
+ * @param {string} name Name or alias of the identifier
298
+ * @param {string} registryName Current registry name
299
+ * @param {string} newName New registry name
300
+ * @returns {Promise<Registry>} A promise to the registry record
301
+ */
302
+ rename(name: string, registryName: string, newName: string): Promise<Registry>;
188
303
  }
189
304
  /**
190
305
  * Schemas
@@ -200,15 +315,15 @@ export declare class Schemas {
200
315
  * Get a schema
201
316
  * @async
202
317
  * @param {string} said SAID of the schema
203
- * @returns {Promise<any>} A promise to the schema
318
+ * @returns {Promise<Schema>} A promise to the schema
204
319
  */
205
- get(said: string): Promise<any>;
320
+ get(said: string): Promise<Schema>;
206
321
  /**
207
322
  * List schemas
208
323
  * @async
209
- * @returns {Promise<any>} A promise to the list of schemas
324
+ * @returns {Promise<Schema[]>} A promise to the list of schemas
210
325
  */
211
- list(): Promise<any>;
326
+ list(): Promise<Schema[]>;
212
327
  }
213
328
  /**
214
329
  * Ipex
@@ -220,20 +335,29 @@ export declare class Ipex {
220
335
  * @param {SignifyClient} client
221
336
  */
222
337
  constructor(client: SignifyClient);
338
+ /**
339
+ * Create an IPEX apply EXN message
340
+ */
341
+ apply(args: IpexApplyArgs): Promise<[Serder, string[], string]>;
342
+ submitApply(name: string, exn: Serder, sigs: string[], recp: string[]): Promise<ExchangeOperation>;
343
+ /**
344
+ * Create an IPEX offer EXN message
345
+ */
346
+ offer(args: IpexOfferArgs): Promise<[Serder, string[], string]>;
347
+ submitOffer(name: string, exn: Serder, sigs: string[], atc: string, recp: string[]): Promise<ExchangeOperation>;
348
+ /**
349
+ * Create an IPEX agree EXN message
350
+ */
351
+ agree(args: IpexAgreeArgs): Promise<[Serder, string[], string]>;
352
+ submitAgree(name: string, exn: Serder, sigs: string[], recp: string[]): Promise<ExchangeOperation>;
223
353
  /**
224
354
  * Create an IPEX grant EXN message
225
355
  */
226
356
  grant(args: IpexGrantArgs): Promise<[Serder, string[], string]>;
227
- submitGrant(name: string, exn: Serder, sigs: string[], atc: string, recp: string[]): Promise<any>;
357
+ submitGrant(name: string, exn: Serder, sigs: string[], atc: string, recp: string[]): Promise<ExchangeOperation>;
228
358
  /**
229
359
  * Create an IPEX admit EXN message
230
- * @async
231
- * @param {string} name Name or alias of the identifier
232
- * @param {string} message accompany human readable description of the credential being admitted
233
- * @param {string} grant qb64 SAID of grant message this admit is responding to
234
- * @param {string} datetime Optional datetime to set for the credential
235
- * @returns {Promise<[Serder, string[], string]>} A promise to the long-running operation
236
360
  */
237
- admit(name: string, message: string, grant: string, datetime?: string): Promise<[Serder, string[], string]>;
238
- submitAdmit(name: string, exn: Serder, sigs: string[], atc: string, recp: string[]): Promise<any>;
361
+ admit(args: IpexAdmitArgs): Promise<[Serder, string[], string]>;
362
+ submitAdmit(name: string, exn: Serder, sigs: string[], atc: string, recp: string[]): Promise<ExchangeOperation>;
239
363
  }