edge-core-js 2.45.0 → 2.46.1
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/CHANGELOG.md +10 -0
- package/README.md +1 -1
- package/android/src/main/assets/edge-core-js/edge-core.js +1 -1
- package/lib/core/account/account-api.js +35 -1
- package/lib/core/account/memory-wallet.js +2 -1
- package/lib/core/actions.js +15 -0
- package/lib/core/currency/wallet/currency-wallet-api.js +16 -0
- package/lib/core/currency/wallet/currency-wallet-cleaners.js +4 -0
- package/lib/core/currency/wallet/currency-wallet-files.js +57 -3
- package/lib/core/currency/wallet/currency-wallet-pixie.js +36 -6
- package/lib/core/currency/wallet/currency-wallet-reducer.js +14 -0
- package/lib/core/login/splitting.js +5 -9
- package/lib/node/index.js +4682 -4546
- package/lib/types/types.js +9 -0
- package/package.json +2 -7
- package/src/types/types.ts +9 -0
- package/lib/flow/error.js +0 -448
- package/lib/flow/exports.js +0 -140
- package/lib/flow/fake-types.js +0 -187
- package/lib/flow/server-cleaners.js +0 -444
- package/lib/flow/server-types.js +0 -342
- package/lib/flow/type-helpers.js +0 -60
- package/lib/flow/types.js +0 -2250
- package/lib/node/index.js.flow +0 -4
- package/types.js.flow +0 -4
package/lib/flow/fake-types.js
DELETED
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import type { Cleaner } from "cleaners";
|
|
4
|
-
import {
|
|
5
|
-
asArray,
|
|
6
|
-
asDate,
|
|
7
|
-
asNumber,
|
|
8
|
-
asObject,
|
|
9
|
-
asOptional,
|
|
10
|
-
asString,
|
|
11
|
-
asValue,
|
|
12
|
-
uncleaner,
|
|
13
|
-
} from "cleaners";
|
|
14
|
-
|
|
15
|
-
import {
|
|
16
|
-
asBase32,
|
|
17
|
-
asBase64,
|
|
18
|
-
asEdgeBox,
|
|
19
|
-
asEdgeKeyBox,
|
|
20
|
-
asEdgeSnrp,
|
|
21
|
-
asRecovery2Auth,
|
|
22
|
-
} from "./server-cleaners";
|
|
23
|
-
import type { EdgeBox, EdgeKeyBox, EdgeSnrp } from "./server-types";
|
|
24
|
-
|
|
25
|
-
export type EdgeRepoDump = {
|
|
26
|
-
[key: string]: EdgeBox;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export type EdgeVoucherDump = {
|
|
30
|
-
// Identity:
|
|
31
|
-
loginId: Uint8Array;
|
|
32
|
-
voucherAuth: Uint8Array;
|
|
33
|
-
voucherId: string;
|
|
34
|
-
|
|
35
|
-
// Login capability:
|
|
36
|
-
created: Date;
|
|
37
|
-
activates: Date; // Automatically becomes approved on this date
|
|
38
|
-
status: "pending" | "approved" | "rejected";
|
|
39
|
-
|
|
40
|
-
// Information about the login:
|
|
41
|
-
ip: string;
|
|
42
|
-
ipDescription: string;
|
|
43
|
-
deviceDescription: string | void;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export type EdgeLoginDump = {
|
|
47
|
-
// Identity:
|
|
48
|
-
appId: string;
|
|
49
|
-
created: Date;
|
|
50
|
-
loginId: Uint8Array;
|
|
51
|
-
|
|
52
|
-
// Nested logins:
|
|
53
|
-
parentBox?: EdgeBox;
|
|
54
|
-
parentId?: Uint8Array; // loginId
|
|
55
|
-
|
|
56
|
-
// 2-factor login:
|
|
57
|
-
otpKey?: Uint8Array;
|
|
58
|
-
otpResetAuth?: string;
|
|
59
|
-
otpResetDate?: Date;
|
|
60
|
-
otpTimeout?: number;
|
|
61
|
-
|
|
62
|
-
// Password login:
|
|
63
|
-
passwordAuth?: Uint8Array;
|
|
64
|
-
passwordAuthBox?: EdgeBox;
|
|
65
|
-
passwordAuthSnrp?: EdgeSnrp;
|
|
66
|
-
passwordBox?: EdgeBox;
|
|
67
|
-
passwordKeySnrp?: EdgeSnrp;
|
|
68
|
-
|
|
69
|
-
// PIN v2 login:
|
|
70
|
-
pin2Id?: Uint8Array; // base64
|
|
71
|
-
pin2Auth?: Uint8Array;
|
|
72
|
-
pin2Box?: EdgeBox;
|
|
73
|
-
pin2KeyBox?: EdgeBox;
|
|
74
|
-
pin2TextBox?: EdgeBox;
|
|
75
|
-
|
|
76
|
-
// Recovery v2 login:
|
|
77
|
-
recovery2Id?: Uint8Array; // base64
|
|
78
|
-
recovery2Auth?: Uint8Array[];
|
|
79
|
-
recovery2Box?: EdgeBox;
|
|
80
|
-
recovery2KeyBox?: EdgeBox;
|
|
81
|
-
question2Box?: EdgeBox;
|
|
82
|
-
|
|
83
|
-
// Secret-key login:
|
|
84
|
-
loginAuth?: Uint8Array;
|
|
85
|
-
loginAuthBox?: EdgeBox;
|
|
86
|
-
|
|
87
|
-
// Username:
|
|
88
|
-
userId?: Uint8Array;
|
|
89
|
-
userTextBox?: EdgeBox;
|
|
90
|
-
|
|
91
|
-
// Resources:
|
|
92
|
-
children: EdgeLoginDump[];
|
|
93
|
-
keyBoxes: EdgeKeyBox[];
|
|
94
|
-
mnemonicBox?: EdgeBox;
|
|
95
|
-
rootKeyBox?: EdgeBox;
|
|
96
|
-
syncKeyBox?: EdgeBox;
|
|
97
|
-
vouchers: EdgeVoucherDump[];
|
|
98
|
-
|
|
99
|
-
// Obsolete:
|
|
100
|
-
pinBox?: EdgeBox;
|
|
101
|
-
pinId?: string;
|
|
102
|
-
pinKeyBox?: EdgeBox;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
export const asEdgeRepoDump: Cleaner<EdgeRepoDump> = asObject(asEdgeBox);
|
|
106
|
-
|
|
107
|
-
export const asEdgeVoucherDump: Cleaner<EdgeVoucherDump> = asObject({
|
|
108
|
-
// Identity:
|
|
109
|
-
loginId: asBase64,
|
|
110
|
-
voucherAuth: asBase64,
|
|
111
|
-
voucherId: asString,
|
|
112
|
-
|
|
113
|
-
// Login capability:
|
|
114
|
-
created: asDate,
|
|
115
|
-
activates: asDate, // Automatically becomes approved on this date
|
|
116
|
-
status: asValue("pending", "approved", "rejected"),
|
|
117
|
-
|
|
118
|
-
// Information about the login:
|
|
119
|
-
ip: asString,
|
|
120
|
-
ipDescription: asString,
|
|
121
|
-
deviceDescription: asOptional(asString),
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
export const asEdgeLoginDump: Cleaner<EdgeLoginDump> = asObject({
|
|
125
|
-
// Identity:
|
|
126
|
-
appId: asString,
|
|
127
|
-
created: asOptional(asDate, () => new Date()),
|
|
128
|
-
loginId: asBase64,
|
|
129
|
-
|
|
130
|
-
// Nested logins:
|
|
131
|
-
children: asOptional(
|
|
132
|
-
asArray((raw) => asEdgeLoginDump(raw)),
|
|
133
|
-
() => [],
|
|
134
|
-
),
|
|
135
|
-
parentBox: asOptional(asEdgeBox),
|
|
136
|
-
parentId: (): Uint8Array | void => undefined,
|
|
137
|
-
|
|
138
|
-
// 2-factor login:
|
|
139
|
-
otpKey: asOptional(asBase32),
|
|
140
|
-
otpResetAuth: asOptional(asString),
|
|
141
|
-
otpResetDate: asOptional(asDate),
|
|
142
|
-
otpTimeout: asOptional(asNumber),
|
|
143
|
-
|
|
144
|
-
// Password login:
|
|
145
|
-
passwordAuth: asOptional(asBase64),
|
|
146
|
-
passwordAuthBox: asOptional(asEdgeBox),
|
|
147
|
-
passwordAuthSnrp: asOptional(asEdgeSnrp),
|
|
148
|
-
passwordBox: asOptional(asEdgeBox),
|
|
149
|
-
passwordKeySnrp: asOptional(asEdgeSnrp),
|
|
150
|
-
|
|
151
|
-
// PIN v2 login:
|
|
152
|
-
pin2Id: asOptional(asBase64),
|
|
153
|
-
pin2Auth: asOptional(asBase64),
|
|
154
|
-
pin2Box: asOptional(asEdgeBox),
|
|
155
|
-
pin2KeyBox: asOptional(asEdgeBox),
|
|
156
|
-
pin2TextBox: asOptional(asEdgeBox),
|
|
157
|
-
|
|
158
|
-
// Recovery v2 login:
|
|
159
|
-
recovery2Id: asOptional(asBase64),
|
|
160
|
-
recovery2Auth: asOptional(asRecovery2Auth),
|
|
161
|
-
question2Box: asOptional(asEdgeBox),
|
|
162
|
-
recovery2Box: asOptional(asEdgeBox),
|
|
163
|
-
recovery2KeyBox: asOptional(asEdgeBox),
|
|
164
|
-
|
|
165
|
-
// Secret-key login:
|
|
166
|
-
loginAuth: asOptional(asBase64),
|
|
167
|
-
loginAuthBox: asOptional(asEdgeBox),
|
|
168
|
-
|
|
169
|
-
// Username:
|
|
170
|
-
userId: asOptional(asBase64),
|
|
171
|
-
userTextBox: asOptional(asEdgeBox),
|
|
172
|
-
|
|
173
|
-
// Keys and assorted goodies:
|
|
174
|
-
keyBoxes: asOptional(asArray(asEdgeKeyBox), () => []),
|
|
175
|
-
mnemonicBox: asOptional(asEdgeBox),
|
|
176
|
-
rootKeyBox: asOptional(asEdgeBox),
|
|
177
|
-
syncKeyBox: asOptional(asEdgeBox),
|
|
178
|
-
vouchers: asOptional(asArray(asEdgeVoucherDump), () => []),
|
|
179
|
-
|
|
180
|
-
// Obsolete:
|
|
181
|
-
pinBox: asOptional(asEdgeBox),
|
|
182
|
-
pinId: asOptional(asString),
|
|
183
|
-
pinKeyBox: asOptional(asEdgeBox),
|
|
184
|
-
});
|
|
185
|
-
|
|
186
|
-
export const wasEdgeLoginDump = uncleaner<EdgeLoginDump>(asEdgeLoginDump);
|
|
187
|
-
export const wasEdgeRepoDump = uncleaner<EdgeRepoDump>(asEdgeRepoDump);
|
|
@@ -1,444 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import type { Cleaner } from "cleaners";
|
|
4
|
-
import {
|
|
5
|
-
asArray,
|
|
6
|
-
asBoolean,
|
|
7
|
-
asCodec,
|
|
8
|
-
asDate,
|
|
9
|
-
asEither,
|
|
10
|
-
asNumber,
|
|
11
|
-
asObject,
|
|
12
|
-
asOptional,
|
|
13
|
-
asString,
|
|
14
|
-
asUnknown,
|
|
15
|
-
asValue,
|
|
16
|
-
uncleaner,
|
|
17
|
-
} from "cleaners";
|
|
18
|
-
import { base16, base32, base64 } from "rfc4648";
|
|
19
|
-
|
|
20
|
-
import type {
|
|
21
|
-
ChallengeErrorPayload,
|
|
22
|
-
ChangeOtpPayload,
|
|
23
|
-
ChangePasswordPayload,
|
|
24
|
-
ChangePin2IdPayload,
|
|
25
|
-
ChangePin2Payload,
|
|
26
|
-
ChangeRecovery2IdPayload,
|
|
27
|
-
ChangeRecovery2Payload,
|
|
28
|
-
ChangeSecretPayload,
|
|
29
|
-
ChangeUsernamePayload,
|
|
30
|
-
ChangeVouchersPayload,
|
|
31
|
-
CreateChallengePayload,
|
|
32
|
-
CreateKeysPayload,
|
|
33
|
-
CreateLoginPayload,
|
|
34
|
-
EdgeBox,
|
|
35
|
-
EdgeKeyBox,
|
|
36
|
-
EdgeLobbyReply,
|
|
37
|
-
EdgeLobbyRequest,
|
|
38
|
-
EdgeSnrp,
|
|
39
|
-
LobbyPayload,
|
|
40
|
-
LoginPayload,
|
|
41
|
-
LoginRequestBody,
|
|
42
|
-
LoginResponseBody,
|
|
43
|
-
MessagesPayload,
|
|
44
|
-
OtpErrorPayload,
|
|
45
|
-
OtpResetPayload,
|
|
46
|
-
PasswordErrorPayload,
|
|
47
|
-
Recovery2InfoPayload,
|
|
48
|
-
UsernameInfoPayload,
|
|
49
|
-
} from "./server-types";
|
|
50
|
-
import type { EdgePendingVoucher } from "./types";
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* A string of hex-encoded binary data.
|
|
54
|
-
*/
|
|
55
|
-
export const asBase16: Cleaner<Uint8Array> = asCodec(
|
|
56
|
-
(raw) => base16.parse(asString(raw)),
|
|
57
|
-
(clean) => base16.stringify(clean).toLowerCase(),
|
|
58
|
-
);
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* A string of base32-encoded binary data.
|
|
62
|
-
*/
|
|
63
|
-
export const asBase32: Cleaner<Uint8Array> = asCodec(
|
|
64
|
-
(raw) => base32.parse(asString(raw), { loose: true }),
|
|
65
|
-
(clean) => base32.stringify(clean, { pad: false }),
|
|
66
|
-
);
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* A string of base64-encoded binary data.
|
|
70
|
-
*/
|
|
71
|
-
export const asBase64: Cleaner<Uint8Array> = asCodec(
|
|
72
|
-
(raw) => base64.parse(asString(raw)),
|
|
73
|
-
(clean) => base64.stringify(clean),
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
// ---------------------------------------------------------------------
|
|
77
|
-
// public Edge types
|
|
78
|
-
// ---------------------------------------------------------------------
|
|
79
|
-
|
|
80
|
-
export const asEdgePendingVoucher: Cleaner<EdgePendingVoucher> = asObject({
|
|
81
|
-
voucherId: asString,
|
|
82
|
-
activates: asDate,
|
|
83
|
-
created: asDate,
|
|
84
|
-
ip: asString,
|
|
85
|
-
ipDescription: asString,
|
|
86
|
-
deviceDescription: asOptional(asString),
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
// ---------------------------------------------------------------------
|
|
90
|
-
// internal Edge types
|
|
91
|
-
// ---------------------------------------------------------------------
|
|
92
|
-
|
|
93
|
-
export const asEdgeBox: Cleaner<EdgeBox> = asObject({
|
|
94
|
-
encryptionType: asNumber,
|
|
95
|
-
data_base64: asBase64,
|
|
96
|
-
iv_hex: asBase16,
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
export const asEdgeKeyBox: Cleaner<EdgeKeyBox> = asObject({
|
|
100
|
-
created: asOptional(asDate),
|
|
101
|
-
data_base64: asBase64,
|
|
102
|
-
encryptionType: asNumber,
|
|
103
|
-
iv_hex: asBase16,
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
export const asEdgeSnrp: Cleaner<EdgeSnrp> = asObject({
|
|
107
|
-
salt_hex: asBase16,
|
|
108
|
-
n: asNumber,
|
|
109
|
-
r: asNumber,
|
|
110
|
-
p: asNumber,
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
export const asEdgeLobbyRequest: Cleaner<EdgeLobbyRequest> = asObject({
|
|
114
|
-
loginRequest: asOptional(asObject({ appId: asString }).withRest),
|
|
115
|
-
publicKey: asBase64,
|
|
116
|
-
timeout: asOptional(asNumber),
|
|
117
|
-
}).withRest;
|
|
118
|
-
|
|
119
|
-
export const asEdgeLobbyReply: Cleaner<EdgeLobbyReply> = asObject({
|
|
120
|
-
publicKey: asBase64,
|
|
121
|
-
box: asEdgeBox,
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* An array of base64-encoded hashed recovery answers.
|
|
126
|
-
*/
|
|
127
|
-
export const asRecovery2Auth: Cleaner<Uint8Array[]> = asArray(asBase64);
|
|
128
|
-
|
|
129
|
-
// ---------------------------------------------------------------------
|
|
130
|
-
// top-level request & response bodies
|
|
131
|
-
// ---------------------------------------------------------------------
|
|
132
|
-
|
|
133
|
-
export const asLoginRequestBody: Cleaner<LoginRequestBody> = asObject({
|
|
134
|
-
// The request payload:
|
|
135
|
-
data: asUnknown,
|
|
136
|
-
|
|
137
|
-
// Common fields for all login methods:
|
|
138
|
-
challengeId: asOptional(asString),
|
|
139
|
-
deviceDescription: asOptional(asString),
|
|
140
|
-
otp: asOptional(asString),
|
|
141
|
-
syncToken: asOptional(asString),
|
|
142
|
-
voucherId: asOptional(asString),
|
|
143
|
-
voucherAuth: asOptional(asBase64),
|
|
144
|
-
|
|
145
|
-
// Secret-key login:
|
|
146
|
-
loginId: asOptional(asBase64),
|
|
147
|
-
loginAuth: asOptional(asBase64),
|
|
148
|
-
|
|
149
|
-
// Password login:
|
|
150
|
-
userId: asOptional(asBase64),
|
|
151
|
-
passwordAuth: asOptional(asBase64),
|
|
152
|
-
|
|
153
|
-
// PIN login:
|
|
154
|
-
pin2Id: asOptional(asBase64),
|
|
155
|
-
pin2Auth: asOptional(asBase64),
|
|
156
|
-
|
|
157
|
-
// Recovery login:
|
|
158
|
-
recovery2Id: asOptional(asBase64),
|
|
159
|
-
recovery2Auth: asOptional(asRecovery2Auth),
|
|
160
|
-
|
|
161
|
-
// Messages:
|
|
162
|
-
loginIds: asOptional(asArray(asBase64)),
|
|
163
|
-
|
|
164
|
-
// OTP reset:
|
|
165
|
-
otpResetAuth: asOptional(asString),
|
|
166
|
-
|
|
167
|
-
// Legacy:
|
|
168
|
-
did: asOptional(asString),
|
|
169
|
-
l1: asOptional(asBase64),
|
|
170
|
-
lp1: asOptional(asBase64),
|
|
171
|
-
lpin1: asOptional(asBase64),
|
|
172
|
-
lra1: asOptional(asBase64),
|
|
173
|
-
recoveryAuth: asOptional(asBase64), // lra1
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
export const asLoginResponseBody: Cleaner<LoginResponseBody> = asObject({
|
|
177
|
-
// The response payload:
|
|
178
|
-
results: asOptional(asUnknown),
|
|
179
|
-
|
|
180
|
-
// What type of response is this (success or failure)?:
|
|
181
|
-
status_code: asNumber,
|
|
182
|
-
message: asString,
|
|
183
|
-
});
|
|
184
|
-
|
|
185
|
-
// ---------------------------------------------------------------------
|
|
186
|
-
// request payloads
|
|
187
|
-
// ---------------------------------------------------------------------
|
|
188
|
-
|
|
189
|
-
export const asChangeOtpPayload: Cleaner<ChangeOtpPayload> = asObject({
|
|
190
|
-
otpTimeout: asOptional(asNumber, 7 * 24 * 60 * 60), // seconds
|
|
191
|
-
otpKey: asBase32,
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
export const asChangePasswordPayload: Cleaner<ChangePasswordPayload> = asObject(
|
|
195
|
-
{
|
|
196
|
-
passwordAuth: asBase64,
|
|
197
|
-
passwordAuthBox: asEdgeBox,
|
|
198
|
-
passwordAuthSnrp: asEdgeSnrp,
|
|
199
|
-
passwordBox: asEdgeBox,
|
|
200
|
-
passwordKeySnrp: asEdgeSnrp,
|
|
201
|
-
},
|
|
202
|
-
);
|
|
203
|
-
|
|
204
|
-
export const asChangePin2IdPayload: Cleaner<ChangePin2IdPayload> = asObject({
|
|
205
|
-
pin2Id: asBase64,
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
export const asChangePin2Payload: Cleaner<ChangePin2Payload> = asObject({
|
|
209
|
-
pin2Id: asOptional(asBase64),
|
|
210
|
-
pin2Auth: asOptional(asBase64),
|
|
211
|
-
pin2Box: asOptional(asEdgeBox),
|
|
212
|
-
pin2KeyBox: asOptional(asEdgeBox),
|
|
213
|
-
pin2TextBox: asEdgeBox,
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
export const asChangeRecovery2IdPayload: Cleaner<ChangeRecovery2IdPayload> =
|
|
217
|
-
asObject({
|
|
218
|
-
recovery2Id: asBase64,
|
|
219
|
-
});
|
|
220
|
-
|
|
221
|
-
export const asChangeRecovery2Payload: Cleaner<ChangeRecovery2Payload> =
|
|
222
|
-
asObject({
|
|
223
|
-
recovery2Id: asBase64,
|
|
224
|
-
recovery2Auth: asRecovery2Auth,
|
|
225
|
-
recovery2Box: asEdgeBox,
|
|
226
|
-
recovery2KeyBox: asEdgeBox,
|
|
227
|
-
question2Box: asEdgeBox,
|
|
228
|
-
});
|
|
229
|
-
|
|
230
|
-
export const asChangeSecretPayload: Cleaner<ChangeSecretPayload> = asObject({
|
|
231
|
-
loginAuthBox: asEdgeBox,
|
|
232
|
-
loginAuth: asBase64,
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
export const asChangeUsernamePayload: Cleaner<ChangeUsernamePayload> = asObject(
|
|
236
|
-
{
|
|
237
|
-
userId: asBase64,
|
|
238
|
-
userTextBox: asEdgeBox,
|
|
239
|
-
},
|
|
240
|
-
);
|
|
241
|
-
|
|
242
|
-
export const asChangeVouchersPayload: Cleaner<ChangeVouchersPayload> = asObject(
|
|
243
|
-
{
|
|
244
|
-
approvedVouchers: asOptional(asArray(asString)),
|
|
245
|
-
rejectedVouchers: asOptional(asArray(asString)),
|
|
246
|
-
},
|
|
247
|
-
);
|
|
248
|
-
|
|
249
|
-
export const asCreateKeysPayload: Cleaner<CreateKeysPayload> = asObject({
|
|
250
|
-
allowExisting: asOptional(asBoolean, false),
|
|
251
|
-
keyBoxes: asArray(asEdgeBox),
|
|
252
|
-
newSyncKeys: asOptional(asArray(asString), () => []),
|
|
253
|
-
});
|
|
254
|
-
|
|
255
|
-
export const asCreateLoginPayload: Cleaner<CreateLoginPayload> = asObject({
|
|
256
|
-
appId: asString,
|
|
257
|
-
loginId: asBase64,
|
|
258
|
-
parentBox: asOptional(asEdgeBox),
|
|
259
|
-
});
|
|
260
|
-
|
|
261
|
-
// ---------------------------------------------------------------------
|
|
262
|
-
// response payloads
|
|
263
|
-
// ---------------------------------------------------------------------
|
|
264
|
-
|
|
265
|
-
export const asChallengeErrorPayload: Cleaner<ChallengeErrorPayload> = asObject(
|
|
266
|
-
{
|
|
267
|
-
challengeId: asString,
|
|
268
|
-
challengeUri: asString,
|
|
269
|
-
},
|
|
270
|
-
);
|
|
271
|
-
|
|
272
|
-
export const asCreateChallengePayload: Cleaner<CreateChallengePayload> =
|
|
273
|
-
asObject({
|
|
274
|
-
challengeId: asString,
|
|
275
|
-
challengeUri: asOptional(asString),
|
|
276
|
-
});
|
|
277
|
-
|
|
278
|
-
export const asLobbyPayload: Cleaner<LobbyPayload> = asObject({
|
|
279
|
-
request: asEdgeLobbyRequest,
|
|
280
|
-
replies: asArray(asEdgeLobbyReply),
|
|
281
|
-
});
|
|
282
|
-
|
|
283
|
-
const asTrue = asValue(true);
|
|
284
|
-
|
|
285
|
-
export const asLoginPayload: Cleaner<LoginPayload> = asObject({
|
|
286
|
-
// Identity:
|
|
287
|
-
appId: asString,
|
|
288
|
-
created: asDate,
|
|
289
|
-
loginId: asBase64,
|
|
290
|
-
syncToken: asOptional(asString),
|
|
291
|
-
|
|
292
|
-
// Nested logins:
|
|
293
|
-
children: asOptional(asArray((raw) => asLoginPayload(raw))),
|
|
294
|
-
parentBox: asOptional(asEdgeBox),
|
|
295
|
-
|
|
296
|
-
// 2-factor login:
|
|
297
|
-
otpKey: asOptional(asEither(asTrue, asBase32)),
|
|
298
|
-
otpResetDate: asOptional(asDate),
|
|
299
|
-
otpTimeout: asOptional(asNumber),
|
|
300
|
-
|
|
301
|
-
// Password login:
|
|
302
|
-
passwordAuthBox: asOptional(asEdgeBox),
|
|
303
|
-
passwordAuthSnrp: asOptional(asEdgeSnrp),
|
|
304
|
-
passwordBox: asOptional(asEither(asTrue, asEdgeBox)),
|
|
305
|
-
passwordKeySnrp: asOptional(asEdgeSnrp),
|
|
306
|
-
|
|
307
|
-
// PIN v2 login:
|
|
308
|
-
pin2Box: asOptional(asEither(asTrue, asEdgeBox)),
|
|
309
|
-
pin2KeyBox: asOptional(asEdgeBox),
|
|
310
|
-
pin2TextBox: asOptional(asEdgeBox),
|
|
311
|
-
|
|
312
|
-
// Recovery v2 login:
|
|
313
|
-
question2Box: asOptional(asEdgeBox),
|
|
314
|
-
recovery2Box: asOptional(asEither(asTrue, asEdgeBox)),
|
|
315
|
-
recovery2KeyBox: asOptional(asEdgeBox),
|
|
316
|
-
|
|
317
|
-
// Secret-key login:
|
|
318
|
-
loginAuthBox: asOptional(asEdgeBox),
|
|
319
|
-
|
|
320
|
-
// Username:
|
|
321
|
-
userId: asOptional(asBase64),
|
|
322
|
-
userTextBox: asOptional(asEdgeBox),
|
|
323
|
-
|
|
324
|
-
// Voucher login:
|
|
325
|
-
pendingVouchers: asOptional(asArray(asEdgePendingVoucher), () => []),
|
|
326
|
-
|
|
327
|
-
// Resources:
|
|
328
|
-
keyBoxes: asOptional(asArray(asEdgeKeyBox)),
|
|
329
|
-
mnemonicBox: asOptional(asEdgeBox),
|
|
330
|
-
rootKeyBox: asOptional(asEdgeBox),
|
|
331
|
-
syncKeyBox: asOptional(asEdgeBox),
|
|
332
|
-
});
|
|
333
|
-
|
|
334
|
-
export const asMessagesPayload: Cleaner<MessagesPayload> = asArray(
|
|
335
|
-
asObject({
|
|
336
|
-
loginId: asBase64,
|
|
337
|
-
otpResetPending: asOptional(asBoolean, false),
|
|
338
|
-
pendingVouchers: asOptional(asArray(asEdgePendingVoucher), () => []),
|
|
339
|
-
recovery2Corrupt: asOptional(asBoolean, false),
|
|
340
|
-
}),
|
|
341
|
-
);
|
|
342
|
-
|
|
343
|
-
export const asOtpErrorPayload: Cleaner<OtpErrorPayload> = asObject({
|
|
344
|
-
login_id: asOptional(asBase64),
|
|
345
|
-
otp_reset_auth: asOptional(asString),
|
|
346
|
-
otp_timeout_date: asOptional(asDate),
|
|
347
|
-
reason: asOptional(asValue("ip", "otp"), "otp"),
|
|
348
|
-
voucher_activates: asOptional(asDate),
|
|
349
|
-
voucher_auth: asOptional(asBase64),
|
|
350
|
-
voucher_id: asOptional(asString),
|
|
351
|
-
});
|
|
352
|
-
|
|
353
|
-
export const asOtpResetPayload: Cleaner<OtpResetPayload> = asObject({
|
|
354
|
-
otpResetDate: asDate,
|
|
355
|
-
});
|
|
356
|
-
|
|
357
|
-
export const asPasswordErrorPayload: Cleaner<PasswordErrorPayload> = asObject({
|
|
358
|
-
wait_seconds: asOptional(asNumber),
|
|
359
|
-
});
|
|
360
|
-
|
|
361
|
-
export const asRecovery2InfoPayload: Cleaner<Recovery2InfoPayload> = asObject({
|
|
362
|
-
question2Box: asEdgeBox,
|
|
363
|
-
});
|
|
364
|
-
|
|
365
|
-
export const asUsernameInfoPayload: Cleaner<UsernameInfoPayload> = asObject({
|
|
366
|
-
loginId: asBase64,
|
|
367
|
-
|
|
368
|
-
// Password login:
|
|
369
|
-
passwordAuthSnrp: asOptional(asEdgeSnrp),
|
|
370
|
-
|
|
371
|
-
// Recovery v1 login:
|
|
372
|
-
questionBox: asOptional(asEdgeBox),
|
|
373
|
-
questionKeySnrp: asOptional(asEdgeSnrp),
|
|
374
|
-
recoveryAuthSnrp: asOptional(asEdgeSnrp),
|
|
375
|
-
});
|
|
376
|
-
|
|
377
|
-
// ---------------------------------------------------------------------
|
|
378
|
-
// uncleaners
|
|
379
|
-
// ---------------------------------------------------------------------
|
|
380
|
-
|
|
381
|
-
// Common types:
|
|
382
|
-
export const wasEdgeBox = uncleaner<EdgeBox>(asEdgeBox);
|
|
383
|
-
export const wasEdgeLobbyReply = uncleaner<EdgeLobbyReply>(asEdgeLobbyReply);
|
|
384
|
-
export const wasEdgeLobbyRequest =
|
|
385
|
-
uncleaner<EdgeLobbyRequest>(asEdgeLobbyRequest);
|
|
386
|
-
|
|
387
|
-
// Top-level request / response bodies:
|
|
388
|
-
export const wasLoginRequestBody =
|
|
389
|
-
uncleaner<LoginRequestBody>(asLoginRequestBody);
|
|
390
|
-
export const wasLoginResponseBody =
|
|
391
|
-
uncleaner<LoginResponseBody>(asLoginResponseBody);
|
|
392
|
-
|
|
393
|
-
// Request payloads:
|
|
394
|
-
export const wasChangeOtpPayload =
|
|
395
|
-
uncleaner<ChangeOtpPayload>(asChangeOtpPayload);
|
|
396
|
-
export const wasChangePasswordPayload = uncleaner<ChangePasswordPayload>(
|
|
397
|
-
asChangePasswordPayload,
|
|
398
|
-
);
|
|
399
|
-
export const wasChangePin2IdPayload = uncleaner<ChangePin2IdPayload>(
|
|
400
|
-
asChangePin2IdPayload,
|
|
401
|
-
);
|
|
402
|
-
export const wasChangePin2Payload =
|
|
403
|
-
uncleaner<ChangePin2Payload>(asChangePin2Payload);
|
|
404
|
-
export const wasChangeRecovery2IdPayload = uncleaner<ChangeRecovery2IdPayload>(
|
|
405
|
-
asChangeRecovery2IdPayload,
|
|
406
|
-
);
|
|
407
|
-
export const wasChangeRecovery2Payload = uncleaner<ChangeRecovery2Payload>(
|
|
408
|
-
asChangeRecovery2Payload,
|
|
409
|
-
);
|
|
410
|
-
export const wasChangeSecretPayload = uncleaner<ChangeSecretPayload>(
|
|
411
|
-
asChangeSecretPayload,
|
|
412
|
-
);
|
|
413
|
-
export const wasChangeUsernamePayload = uncleaner<ChangeUsernamePayload>(
|
|
414
|
-
asChangeUsernamePayload,
|
|
415
|
-
);
|
|
416
|
-
export const wasChangeVouchersPayload = uncleaner<ChangeVouchersPayload>(
|
|
417
|
-
asChangeVouchersPayload,
|
|
418
|
-
);
|
|
419
|
-
export const wasCreateKeysPayload =
|
|
420
|
-
uncleaner<CreateKeysPayload>(asCreateKeysPayload);
|
|
421
|
-
export const wasCreateLoginPayload =
|
|
422
|
-
uncleaner<CreateLoginPayload>(asCreateLoginPayload);
|
|
423
|
-
|
|
424
|
-
// Response payloads:
|
|
425
|
-
export const wasChallengeErrorPayload = uncleaner<ChallengeErrorPayload>(
|
|
426
|
-
asChallengeErrorPayload,
|
|
427
|
-
);
|
|
428
|
-
export const wasCreateChallengePayload = uncleaner<CreateChallengePayload>(
|
|
429
|
-
asCreateChallengePayload,
|
|
430
|
-
);
|
|
431
|
-
export const wasLobbyPayload = uncleaner<LobbyPayload>(asLobbyPayload);
|
|
432
|
-
export const wasLoginPayload = uncleaner<LoginPayload>(asLoginPayload);
|
|
433
|
-
export const wasMessagesPayload = uncleaner<MessagesPayload>(asMessagesPayload);
|
|
434
|
-
export const wasOtpErrorPayload = uncleaner<OtpErrorPayload>(asOtpErrorPayload);
|
|
435
|
-
export const wasOtpResetPayload = uncleaner<OtpResetPayload>(asOtpResetPayload);
|
|
436
|
-
export const wasPasswordErrorPayload = uncleaner<PasswordErrorPayload>(
|
|
437
|
-
asPasswordErrorPayload,
|
|
438
|
-
);
|
|
439
|
-
export const wasRecovery2InfoPayload = uncleaner<Recovery2InfoPayload>(
|
|
440
|
-
asRecovery2InfoPayload,
|
|
441
|
-
);
|
|
442
|
-
export const wasUsernameInfoPayload = uncleaner<UsernameInfoPayload>(
|
|
443
|
-
asUsernameInfoPayload,
|
|
444
|
-
);
|