autopass 3.4.0 → 3.4.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/package.json +1 -1
- package/spec/db/db.json +30 -16
- package/spec/db/index.js +91 -120
- package/spec/db/messages.js +95 -88
- package/spec/hyperdispatch/dispatch.json +1 -1
- package/spec/hyperdispatch/index.js +8 -8
- package/spec/hyperdispatch/messages.js +68 -68
- package/spec/schema/index.js +68 -68
- package/spec/schema/schema.json +57 -57
package/spec/db/messages.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// This file is autogenerated by the hyperschema compiler
|
|
2
|
-
// Schema Version:
|
|
2
|
+
// Schema Version: 4
|
|
3
3
|
/* eslint-disable camelcase */
|
|
4
4
|
/* eslint-disable quotes */
|
|
5
5
|
/* eslint-disable space-before-function-paren */
|
|
6
6
|
|
|
7
7
|
const { c } = require('hyperschema/runtime')
|
|
8
8
|
|
|
9
|
-
const VERSION =
|
|
9
|
+
const VERSION = 4
|
|
10
10
|
|
|
11
11
|
// eslint-disable-next-line no-unused-vars
|
|
12
12
|
let version = VERSION
|
|
@@ -64,24 +64,24 @@ const encoding2 = {
|
|
|
64
64
|
c.buffer.preencode(state, m.key)
|
|
65
65
|
state.end++ // max flag is 2 so always one byte
|
|
66
66
|
|
|
67
|
-
if (m.name) c.string.preencode(state, m.name)
|
|
67
|
+
if (version >= 4 && m.name) c.string.preencode(state, m.name)
|
|
68
68
|
},
|
|
69
69
|
encode(state, m) {
|
|
70
|
-
const flags = (m.name ? 1 : 0) | (m.readOnly ? 2 : 0)
|
|
70
|
+
const flags = ((version >= 4 && m.name) ? 1 : 0) | ((version >= 4 && m.readOnly) ? 2 : 0)
|
|
71
71
|
|
|
72
72
|
c.buffer.encode(state, m.key)
|
|
73
73
|
c.uint.encode(state, flags)
|
|
74
74
|
|
|
75
|
-
if (m.name) c.string.encode(state, m.name)
|
|
75
|
+
if (version >= 4 && m.name) c.string.encode(state, m.name)
|
|
76
76
|
},
|
|
77
77
|
decode(state) {
|
|
78
78
|
const r0 = c.buffer.decode(state)
|
|
79
|
-
const flags = c.uint.decode(state)
|
|
79
|
+
const flags = state.start < state.end ? c.uint.decode(state) : 0
|
|
80
80
|
|
|
81
81
|
return {
|
|
82
82
|
key: r0,
|
|
83
|
-
name: (flags & 1) !== 0 ? c.string.decode(state) : null,
|
|
84
|
-
readOnly: (flags & 2) !== 0
|
|
83
|
+
name: (version >= 4 && (flags & 1) !== 0) ? c.string.decode(state) : null,
|
|
84
|
+
readOnly: (version >= 4 && (flags & 2) !== 0)
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
}
|
|
@@ -103,54 +103,68 @@ const encoding3 = {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
// @autopass/
|
|
106
|
+
// @autopass/invite
|
|
107
107
|
const encoding4 = {
|
|
108
108
|
preencode(state, m) {
|
|
109
|
-
c.
|
|
110
|
-
state.
|
|
109
|
+
c.buffer.preencode(state, m.id)
|
|
110
|
+
c.buffer.preencode(state, m.invite)
|
|
111
|
+
c.buffer.preencode(state, m.publicKey)
|
|
112
|
+
c.int.preencode(state, m.expires)
|
|
113
|
+
state.end++ // max flag is 2 so always one byte
|
|
111
114
|
|
|
112
|
-
if (m.
|
|
115
|
+
if (version >= 3 && m.additional) encoding4_5.preencode(state, m.additional)
|
|
113
116
|
},
|
|
114
117
|
encode(state, m) {
|
|
115
|
-
const flags = m.
|
|
118
|
+
const flags = ((version >= 2 && m.readOnly) ? 1 : 0) | ((version >= 3 && m.additional) ? 2 : 0)
|
|
116
119
|
|
|
117
|
-
c.
|
|
120
|
+
c.buffer.encode(state, m.id)
|
|
121
|
+
c.buffer.encode(state, m.invite)
|
|
122
|
+
c.buffer.encode(state, m.publicKey)
|
|
123
|
+
c.int.encode(state, m.expires)
|
|
118
124
|
c.uint.encode(state, flags)
|
|
119
125
|
|
|
120
|
-
if (m.
|
|
126
|
+
if (version >= 3 && m.additional) encoding4_5.encode(state, m.additional)
|
|
121
127
|
},
|
|
122
128
|
decode(state) {
|
|
123
|
-
const r0 = c.
|
|
124
|
-
const
|
|
129
|
+
const r0 = c.buffer.decode(state)
|
|
130
|
+
const r1 = c.buffer.decode(state)
|
|
131
|
+
const r2 = c.buffer.decode(state)
|
|
132
|
+
const r3 = c.int.decode(state)
|
|
133
|
+
const flags = state.start < state.end ? c.uint.decode(state) : 0
|
|
125
134
|
|
|
126
135
|
return {
|
|
127
|
-
|
|
128
|
-
|
|
136
|
+
id: r0,
|
|
137
|
+
invite: r1,
|
|
138
|
+
publicKey: r2,
|
|
139
|
+
expires: r3,
|
|
140
|
+
readOnly: (version >= 2 && (flags & 1) !== 0),
|
|
141
|
+
additional: (version >= 3 && (flags & 2) !== 0) ? encoding4_5.decode(state) : null
|
|
129
142
|
}
|
|
130
143
|
}
|
|
131
144
|
}
|
|
132
145
|
|
|
133
|
-
// @autopass/
|
|
146
|
+
// @autopass/del-invite
|
|
134
147
|
const encoding5 = {
|
|
135
148
|
preencode(state, m) {
|
|
136
|
-
state.
|
|
149
|
+
c.buffer.preencode(state, m.id)
|
|
137
150
|
},
|
|
138
151
|
encode(state, m) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
c.uint.encode(state, flags)
|
|
152
|
+
c.buffer.encode(state, m.id)
|
|
142
153
|
},
|
|
143
154
|
decode(state) {
|
|
144
|
-
const
|
|
155
|
+
const r0 = c.buffer.decode(state)
|
|
145
156
|
|
|
146
157
|
return {
|
|
147
|
-
|
|
158
|
+
id: r0
|
|
148
159
|
}
|
|
149
160
|
}
|
|
150
161
|
}
|
|
151
162
|
|
|
163
|
+
// @autopass/del-mirror
|
|
164
|
+
const encoding6 = encoding1
|
|
165
|
+
|
|
152
166
|
// @autopass/additional-invite-data
|
|
153
|
-
const
|
|
167
|
+
const encoding7 = {
|
|
154
168
|
preencode(state, m) {
|
|
155
169
|
c.buffer.preencode(state, m.data)
|
|
156
170
|
c.buffer.preencode(state, m.signature)
|
|
@@ -170,69 +184,52 @@ const encoding6 = {
|
|
|
170
184
|
}
|
|
171
185
|
}
|
|
172
186
|
|
|
173
|
-
// @autopass/
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
// @autopass/invite
|
|
177
|
-
const encoding7 = {
|
|
187
|
+
// @autopass/invitee
|
|
188
|
+
const encoding8 = {
|
|
178
189
|
preencode(state, m) {
|
|
179
|
-
c.
|
|
180
|
-
|
|
181
|
-
c.buffer.preencode(state, m.publicKey)
|
|
182
|
-
c.int.preencode(state, m.expires)
|
|
183
|
-
state.end++ // max flag is 2 so always one byte
|
|
190
|
+
c.fixed32.preencode(state, m.key)
|
|
191
|
+
state.end++ // max flag is 1 so always one byte
|
|
184
192
|
|
|
185
|
-
if (m.
|
|
193
|
+
if (version >= 4 && m.name) c.string.preencode(state, m.name)
|
|
186
194
|
},
|
|
187
195
|
encode(state, m) {
|
|
188
|
-
const flags = (
|
|
196
|
+
const flags = (version >= 4 && m.name) ? 1 : 0
|
|
189
197
|
|
|
190
|
-
c.
|
|
191
|
-
c.buffer.encode(state, m.invite)
|
|
192
|
-
c.buffer.encode(state, m.publicKey)
|
|
193
|
-
c.int.encode(state, m.expires)
|
|
198
|
+
c.fixed32.encode(state, m.key)
|
|
194
199
|
c.uint.encode(state, flags)
|
|
195
200
|
|
|
196
|
-
if (m.
|
|
201
|
+
if (version >= 4 && m.name) c.string.encode(state, m.name)
|
|
197
202
|
},
|
|
198
203
|
decode(state) {
|
|
199
|
-
const r0 = c.
|
|
200
|
-
const r1 = c.buffer.decode(state)
|
|
201
|
-
const r2 = c.buffer.decode(state)
|
|
202
|
-
const r3 = c.int.decode(state)
|
|
204
|
+
const r0 = c.fixed32.decode(state)
|
|
203
205
|
const flags = c.uint.decode(state)
|
|
204
206
|
|
|
205
207
|
return {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
publicKey: r2,
|
|
209
|
-
expires: r3,
|
|
210
|
-
readOnly: (flags & 1) !== 0,
|
|
211
|
-
additional: (flags & 2) !== 0 ? encoding7_5.decode(state) : null
|
|
208
|
+
key: r0,
|
|
209
|
+
name: (version >= 4 && (flags & 1) !== 0) ? c.string.decode(state) : null
|
|
212
210
|
}
|
|
213
211
|
}
|
|
214
212
|
}
|
|
215
213
|
|
|
216
|
-
// @autopass/
|
|
217
|
-
const
|
|
214
|
+
// @autopass/public-invite-metadata
|
|
215
|
+
const encoding9 = {
|
|
218
216
|
preencode(state, m) {
|
|
219
|
-
|
|
217
|
+
state.end++ // max flag is 1 so always one byte
|
|
220
218
|
},
|
|
221
219
|
encode(state, m) {
|
|
222
|
-
|
|
220
|
+
const flags = (version >= 4 && m.readOnly) ? 1 : 0
|
|
221
|
+
|
|
222
|
+
c.uint.encode(state, flags)
|
|
223
223
|
},
|
|
224
224
|
decode(state) {
|
|
225
|
-
const
|
|
225
|
+
const flags = c.uint.decode(state)
|
|
226
226
|
|
|
227
227
|
return {
|
|
228
|
-
|
|
228
|
+
readOnly: (version >= 4 && (flags & 1) !== 0)
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
|
|
233
|
-
// @autopass/del-mirror
|
|
234
|
-
const encoding9 = encoding1
|
|
235
|
-
|
|
236
233
|
// @autopass/records/hyperdb#0
|
|
237
234
|
const encoding10 = {
|
|
238
235
|
preencode(state, m) {
|
|
@@ -260,9 +257,6 @@ const encoding10 = {
|
|
|
260
257
|
}
|
|
261
258
|
}
|
|
262
259
|
|
|
263
|
-
// @autopass/invite/hyperdb#1.additional
|
|
264
|
-
const encoding11_5 = encoding7_5
|
|
265
|
-
|
|
266
260
|
// @autopass/invite/hyperdb#1
|
|
267
261
|
const encoding11 = {
|
|
268
262
|
preencode(state, m) {
|
|
@@ -271,39 +265,43 @@ const encoding11 = {
|
|
|
271
265
|
c.int.preencode(state, m.expires)
|
|
272
266
|
state.end++ // max flag is 2 so always one byte
|
|
273
267
|
|
|
274
|
-
if (m.additional) encoding11_5.preencode(state, m.additional)
|
|
268
|
+
if (version >= 3 && m.additional) encoding11_5.preencode(state, m.additional)
|
|
275
269
|
},
|
|
276
270
|
encode(state, m) {
|
|
277
|
-
const flags = (m.readOnly ? 1 : 0) | (m.additional ? 2 : 0)
|
|
271
|
+
const flags = ((version >= 2 && m.readOnly) ? 1 : 0) | ((version >= 3 && m.additional) ? 2 : 0)
|
|
278
272
|
|
|
279
273
|
c.buffer.encode(state, m.invite)
|
|
280
274
|
c.buffer.encode(state, m.publicKey)
|
|
281
275
|
c.int.encode(state, m.expires)
|
|
282
276
|
c.uint.encode(state, flags)
|
|
283
277
|
|
|
284
|
-
if (m.additional) encoding11_5.encode(state, m.additional)
|
|
278
|
+
if (version >= 3 && m.additional) encoding11_5.encode(state, m.additional)
|
|
285
279
|
},
|
|
286
280
|
decode(state) {
|
|
287
281
|
const r1 = c.buffer.decode(state)
|
|
288
282
|
const r2 = c.buffer.decode(state)
|
|
289
283
|
const r3 = c.int.decode(state)
|
|
290
|
-
const flags = c.uint.decode(state)
|
|
284
|
+
const flags = state.start < state.end ? c.uint.decode(state) : 0
|
|
291
285
|
|
|
292
286
|
return {
|
|
293
287
|
id: null,
|
|
294
288
|
invite: r1,
|
|
295
289
|
publicKey: r2,
|
|
296
290
|
expires: r3,
|
|
297
|
-
readOnly: (flags & 1) !== 0,
|
|
298
|
-
additional: (flags & 2) !== 0 ? encoding11_5.decode(state) : null
|
|
291
|
+
readOnly: (version >= 2 && (flags & 1) !== 0),
|
|
292
|
+
additional: (version >= 3 && (flags & 2) !== 0) ? encoding11_5.decode(state) : null
|
|
299
293
|
}
|
|
300
294
|
}
|
|
301
295
|
}
|
|
302
296
|
|
|
303
297
|
// @autopass/mirrors/hyperdb#2
|
|
304
298
|
const encoding12 = {
|
|
305
|
-
preencode(state, m) {
|
|
306
|
-
|
|
299
|
+
preencode(state, m) {
|
|
300
|
+
|
|
301
|
+
},
|
|
302
|
+
encode(state, m) {
|
|
303
|
+
|
|
304
|
+
},
|
|
307
305
|
decode(state) {
|
|
308
306
|
return {
|
|
309
307
|
key: null
|
|
@@ -316,22 +314,22 @@ const encoding13 = {
|
|
|
316
314
|
preencode(state, m) {
|
|
317
315
|
state.end++ // max flag is 2 so always one byte
|
|
318
316
|
|
|
319
|
-
if (m.name) c.string.preencode(state, m.name)
|
|
317
|
+
if (version >= 4 && m.name) c.string.preencode(state, m.name)
|
|
320
318
|
},
|
|
321
319
|
encode(state, m) {
|
|
322
|
-
const flags = (m.name ? 1 : 0) | (m.readOnly ? 2 : 0)
|
|
320
|
+
const flags = ((version >= 4 && m.name) ? 1 : 0) | ((version >= 4 && m.readOnly) ? 2 : 0)
|
|
323
321
|
|
|
324
322
|
c.uint.encode(state, flags)
|
|
325
323
|
|
|
326
|
-
if (m.name) c.string.encode(state, m.name)
|
|
324
|
+
if (version >= 4 && m.name) c.string.encode(state, m.name)
|
|
327
325
|
},
|
|
328
326
|
decode(state) {
|
|
329
|
-
const flags = c.uint.decode(state)
|
|
327
|
+
const flags = state.start < state.end ? c.uint.decode(state) : 0
|
|
330
328
|
|
|
331
329
|
return {
|
|
332
330
|
key: null,
|
|
333
|
-
name: (flags & 1) !== 0 ? c.string.decode(state) : null,
|
|
334
|
-
readOnly: (flags & 2) !== 0
|
|
331
|
+
name: (version >= 4 && (flags & 1) !== 0) ? c.string.decode(state) : null,
|
|
332
|
+
readOnly: (version >= 4 && (flags & 2) !== 0)
|
|
335
333
|
}
|
|
336
334
|
}
|
|
337
335
|
}
|
|
@@ -341,8 +339,12 @@ const encoding14 = encoding12
|
|
|
341
339
|
|
|
342
340
|
// @autopass/del-invite/hyperdb#5
|
|
343
341
|
const encoding15 = {
|
|
344
|
-
preencode(state, m) {
|
|
345
|
-
|
|
342
|
+
preencode(state, m) {
|
|
343
|
+
|
|
344
|
+
},
|
|
345
|
+
encode(state, m) {
|
|
346
|
+
|
|
347
|
+
},
|
|
346
348
|
decode(state) {
|
|
347
349
|
return {
|
|
348
350
|
id: null
|
|
@@ -353,6 +355,11 @@ const encoding15 = {
|
|
|
353
355
|
// @autopass/del-mirror/hyperdb#6
|
|
354
356
|
const encoding16 = encoding12
|
|
355
357
|
|
|
358
|
+
// @autopass/invite.additional, deferred due to recusive use
|
|
359
|
+
const encoding4_5 = c.frame(encoding7)
|
|
360
|
+
// @autopass/invite/hyperdb#1.additional, deferred due to recusive use
|
|
361
|
+
const encoding11_5 = encoding4_5
|
|
362
|
+
|
|
356
363
|
function setVersion(v) {
|
|
357
364
|
version = v
|
|
358
365
|
}
|
|
@@ -384,17 +391,17 @@ function getEncoding(name) {
|
|
|
384
391
|
return encoding2
|
|
385
392
|
case '@autopass/delete':
|
|
386
393
|
return encoding3
|
|
387
|
-
case '@autopass/
|
|
394
|
+
case '@autopass/invite':
|
|
388
395
|
return encoding4
|
|
389
|
-
case '@autopass/
|
|
396
|
+
case '@autopass/del-invite':
|
|
390
397
|
return encoding5
|
|
391
|
-
case '@autopass/
|
|
398
|
+
case '@autopass/del-mirror':
|
|
392
399
|
return encoding6
|
|
393
|
-
case '@autopass/invite':
|
|
400
|
+
case '@autopass/additional-invite-data':
|
|
394
401
|
return encoding7
|
|
395
|
-
case '@autopass/
|
|
402
|
+
case '@autopass/invitee':
|
|
396
403
|
return encoding8
|
|
397
|
-
case '@autopass/
|
|
404
|
+
case '@autopass/public-invite-metadata':
|
|
398
405
|
return encoding9
|
|
399
406
|
case '@autopass/records/hyperdb#0':
|
|
400
407
|
return encoding10
|
|
@@ -7,7 +7,7 @@ const { version, getEncoding, setVersion } = require('./messages.js')
|
|
|
7
7
|
const defaultVersion = version
|
|
8
8
|
|
|
9
9
|
class Router {
|
|
10
|
-
constructor() {
|
|
10
|
+
constructor () {
|
|
11
11
|
this._handler0 = null
|
|
12
12
|
this._handler1 = null
|
|
13
13
|
this._handler2 = null
|
|
@@ -20,7 +20,7 @@ class Router {
|
|
|
20
20
|
this._missing = 8
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
add(name, handler) {
|
|
23
|
+
add (name, handler) {
|
|
24
24
|
switch (name) {
|
|
25
25
|
case '@autopass/remove-writer':
|
|
26
26
|
this._handler0 = handler
|
|
@@ -52,7 +52,7 @@ class Router {
|
|
|
52
52
|
this._missing--
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
_checkAll() {
|
|
55
|
+
_checkAll () {
|
|
56
56
|
assert(this._handler0 !== null, 'Missing handler for "@autopass/remove-writer"')
|
|
57
57
|
assert(this._handler1 !== null, 'Missing handler for "@autopass/add-writer"')
|
|
58
58
|
assert(this._handler2 !== null, 'Missing handler for "@autopass/put"')
|
|
@@ -63,7 +63,7 @@ class Router {
|
|
|
63
63
|
assert(this._handler7 !== null, 'Missing handler for "@autopass/del-invite"')
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
async dispatch(message, context) {
|
|
66
|
+
async dispatch (message, context) {
|
|
67
67
|
if (this._missing > 0) {
|
|
68
68
|
this._checkAll()
|
|
69
69
|
}
|
|
@@ -95,7 +95,7 @@ class Router {
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
function encode(name, message, { version = defaultVersion } = {}) {
|
|
98
|
+
function encode (name, message, { version = defaultVersion } = {}) {
|
|
99
99
|
const state = { buffer: null, start: 0, end: 0 }
|
|
100
100
|
|
|
101
101
|
const route = getRouteByName(name)
|
|
@@ -111,7 +111,7 @@ function encode(name, message, { version = defaultVersion } = {}) {
|
|
|
111
111
|
return state.buffer
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
function decode(buffer, { version = defaultVersion } = {}) {
|
|
114
|
+
function decode (buffer, { version = defaultVersion } = {}) {
|
|
115
115
|
const state = { buffer, start: 0, end: buffer.length }
|
|
116
116
|
|
|
117
117
|
const id = c.uint.decode(state)
|
|
@@ -170,7 +170,7 @@ const route7 = {
|
|
|
170
170
|
enc: getEncoding('@autopass/del-invite')
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
-
function getRouteByName(name) {
|
|
173
|
+
function getRouteByName (name) {
|
|
174
174
|
switch (name) {
|
|
175
175
|
case '@autopass/remove-writer':
|
|
176
176
|
return route0
|
|
@@ -193,7 +193,7 @@ function getRouteByName(name) {
|
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
-
function getRouteById(id) {
|
|
196
|
+
function getRouteById (id) {
|
|
197
197
|
switch (id) {
|
|
198
198
|
case 0:
|
|
199
199
|
return route0
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// This file is autogenerated by the hyperschema compiler
|
|
2
|
-
// Schema Version:
|
|
2
|
+
// Schema Version: 4
|
|
3
3
|
/* eslint-disable camelcase */
|
|
4
4
|
/* eslint-disable quotes */
|
|
5
5
|
/* eslint-disable space-before-function-paren */
|
|
6
6
|
|
|
7
7
|
const { c } = require('hyperschema/runtime')
|
|
8
8
|
|
|
9
|
-
const VERSION =
|
|
9
|
+
const VERSION = 4
|
|
10
10
|
|
|
11
11
|
// eslint-disable-next-line no-unused-vars
|
|
12
12
|
let version = VERSION
|
|
@@ -64,24 +64,24 @@ const encoding2 = {
|
|
|
64
64
|
c.buffer.preencode(state, m.key)
|
|
65
65
|
state.end++ // max flag is 2 so always one byte
|
|
66
66
|
|
|
67
|
-
if (m.name) c.string.preencode(state, m.name)
|
|
67
|
+
if (version >= 4 && m.name) c.string.preencode(state, m.name)
|
|
68
68
|
},
|
|
69
69
|
encode(state, m) {
|
|
70
|
-
const flags = (m.name ? 1 : 0) | (m.readOnly ? 2 : 0)
|
|
70
|
+
const flags = ((version >= 4 && m.name) ? 1 : 0) | ((version >= 4 && m.readOnly) ? 2 : 0)
|
|
71
71
|
|
|
72
72
|
c.buffer.encode(state, m.key)
|
|
73
73
|
c.uint.encode(state, flags)
|
|
74
74
|
|
|
75
|
-
if (m.name) c.string.encode(state, m.name)
|
|
75
|
+
if (version >= 4 && m.name) c.string.encode(state, m.name)
|
|
76
76
|
},
|
|
77
77
|
decode(state) {
|
|
78
78
|
const r0 = c.buffer.decode(state)
|
|
79
|
-
const flags = c.uint.decode(state)
|
|
79
|
+
const flags = state.start < state.end ? c.uint.decode(state) : 0
|
|
80
80
|
|
|
81
81
|
return {
|
|
82
82
|
key: r0,
|
|
83
|
-
name: (flags & 1) !== 0 ? c.string.decode(state) : null,
|
|
84
|
-
readOnly: (flags & 2) !== 0
|
|
83
|
+
name: (version >= 4 && (flags & 1) !== 0) ? c.string.decode(state) : null,
|
|
84
|
+
readOnly: (version >= 4 && (flags & 2) !== 0)
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
}
|
|
@@ -103,54 +103,68 @@ const encoding3 = {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
// @autopass/
|
|
106
|
+
// @autopass/invite
|
|
107
107
|
const encoding4 = {
|
|
108
108
|
preencode(state, m) {
|
|
109
|
-
c.
|
|
110
|
-
state.
|
|
109
|
+
c.buffer.preencode(state, m.id)
|
|
110
|
+
c.buffer.preencode(state, m.invite)
|
|
111
|
+
c.buffer.preencode(state, m.publicKey)
|
|
112
|
+
c.int.preencode(state, m.expires)
|
|
113
|
+
state.end++ // max flag is 2 so always one byte
|
|
111
114
|
|
|
112
|
-
if (m.
|
|
115
|
+
if (version >= 3 && m.additional) encoding4_5.preencode(state, m.additional)
|
|
113
116
|
},
|
|
114
117
|
encode(state, m) {
|
|
115
|
-
const flags = m.
|
|
118
|
+
const flags = ((version >= 2 && m.readOnly) ? 1 : 0) | ((version >= 3 && m.additional) ? 2 : 0)
|
|
116
119
|
|
|
117
|
-
c.
|
|
120
|
+
c.buffer.encode(state, m.id)
|
|
121
|
+
c.buffer.encode(state, m.invite)
|
|
122
|
+
c.buffer.encode(state, m.publicKey)
|
|
123
|
+
c.int.encode(state, m.expires)
|
|
118
124
|
c.uint.encode(state, flags)
|
|
119
125
|
|
|
120
|
-
if (m.
|
|
126
|
+
if (version >= 3 && m.additional) encoding4_5.encode(state, m.additional)
|
|
121
127
|
},
|
|
122
128
|
decode(state) {
|
|
123
|
-
const r0 = c.
|
|
124
|
-
const
|
|
129
|
+
const r0 = c.buffer.decode(state)
|
|
130
|
+
const r1 = c.buffer.decode(state)
|
|
131
|
+
const r2 = c.buffer.decode(state)
|
|
132
|
+
const r3 = c.int.decode(state)
|
|
133
|
+
const flags = state.start < state.end ? c.uint.decode(state) : 0
|
|
125
134
|
|
|
126
135
|
return {
|
|
127
|
-
|
|
128
|
-
|
|
136
|
+
id: r0,
|
|
137
|
+
invite: r1,
|
|
138
|
+
publicKey: r2,
|
|
139
|
+
expires: r3,
|
|
140
|
+
readOnly: (version >= 2 && (flags & 1) !== 0),
|
|
141
|
+
additional: (version >= 3 && (flags & 2) !== 0) ? encoding4_5.decode(state) : null
|
|
129
142
|
}
|
|
130
143
|
}
|
|
131
144
|
}
|
|
132
145
|
|
|
133
|
-
// @autopass/
|
|
146
|
+
// @autopass/del-invite
|
|
134
147
|
const encoding5 = {
|
|
135
148
|
preencode(state, m) {
|
|
136
|
-
state.
|
|
149
|
+
c.buffer.preencode(state, m.id)
|
|
137
150
|
},
|
|
138
151
|
encode(state, m) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
c.uint.encode(state, flags)
|
|
152
|
+
c.buffer.encode(state, m.id)
|
|
142
153
|
},
|
|
143
154
|
decode(state) {
|
|
144
|
-
const
|
|
155
|
+
const r0 = c.buffer.decode(state)
|
|
145
156
|
|
|
146
157
|
return {
|
|
147
|
-
|
|
158
|
+
id: r0
|
|
148
159
|
}
|
|
149
160
|
}
|
|
150
161
|
}
|
|
151
162
|
|
|
163
|
+
// @autopass/del-mirror
|
|
164
|
+
const encoding6 = encoding1
|
|
165
|
+
|
|
152
166
|
// @autopass/additional-invite-data
|
|
153
|
-
const
|
|
167
|
+
const encoding7 = {
|
|
154
168
|
preencode(state, m) {
|
|
155
169
|
c.buffer.preencode(state, m.data)
|
|
156
170
|
c.buffer.preencode(state, m.signature)
|
|
@@ -170,68 +184,54 @@ const encoding6 = {
|
|
|
170
184
|
}
|
|
171
185
|
}
|
|
172
186
|
|
|
173
|
-
// @autopass/
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
// @autopass/invite
|
|
177
|
-
const encoding7 = {
|
|
187
|
+
// @autopass/invitee
|
|
188
|
+
const encoding8 = {
|
|
178
189
|
preencode(state, m) {
|
|
179
|
-
c.
|
|
180
|
-
|
|
181
|
-
c.buffer.preencode(state, m.publicKey)
|
|
182
|
-
c.int.preencode(state, m.expires)
|
|
183
|
-
state.end++ // max flag is 2 so always one byte
|
|
190
|
+
c.fixed32.preencode(state, m.key)
|
|
191
|
+
state.end++ // max flag is 1 so always one byte
|
|
184
192
|
|
|
185
|
-
if (m.
|
|
193
|
+
if (version >= 4 && m.name) c.string.preencode(state, m.name)
|
|
186
194
|
},
|
|
187
195
|
encode(state, m) {
|
|
188
|
-
const flags = (
|
|
196
|
+
const flags = (version >= 4 && m.name) ? 1 : 0
|
|
189
197
|
|
|
190
|
-
c.
|
|
191
|
-
c.buffer.encode(state, m.invite)
|
|
192
|
-
c.buffer.encode(state, m.publicKey)
|
|
193
|
-
c.int.encode(state, m.expires)
|
|
198
|
+
c.fixed32.encode(state, m.key)
|
|
194
199
|
c.uint.encode(state, flags)
|
|
195
200
|
|
|
196
|
-
if (m.
|
|
201
|
+
if (version >= 4 && m.name) c.string.encode(state, m.name)
|
|
197
202
|
},
|
|
198
203
|
decode(state) {
|
|
199
|
-
const r0 = c.
|
|
200
|
-
const r1 = c.buffer.decode(state)
|
|
201
|
-
const r2 = c.buffer.decode(state)
|
|
202
|
-
const r3 = c.int.decode(state)
|
|
204
|
+
const r0 = c.fixed32.decode(state)
|
|
203
205
|
const flags = c.uint.decode(state)
|
|
204
206
|
|
|
205
207
|
return {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
publicKey: r2,
|
|
209
|
-
expires: r3,
|
|
210
|
-
readOnly: (flags & 1) !== 0,
|
|
211
|
-
additional: (flags & 2) !== 0 ? encoding7_5.decode(state) : null
|
|
208
|
+
key: r0,
|
|
209
|
+
name: (version >= 4 && (flags & 1) !== 0) ? c.string.decode(state) : null
|
|
212
210
|
}
|
|
213
211
|
}
|
|
214
212
|
}
|
|
215
213
|
|
|
216
|
-
// @autopass/
|
|
217
|
-
const
|
|
214
|
+
// @autopass/public-invite-metadata
|
|
215
|
+
const encoding9 = {
|
|
218
216
|
preencode(state, m) {
|
|
219
|
-
|
|
217
|
+
state.end++ // max flag is 1 so always one byte
|
|
220
218
|
},
|
|
221
219
|
encode(state, m) {
|
|
222
|
-
|
|
220
|
+
const flags = (version >= 4 && m.readOnly) ? 1 : 0
|
|
221
|
+
|
|
222
|
+
c.uint.encode(state, flags)
|
|
223
223
|
},
|
|
224
224
|
decode(state) {
|
|
225
|
-
const
|
|
225
|
+
const flags = c.uint.decode(state)
|
|
226
226
|
|
|
227
227
|
return {
|
|
228
|
-
|
|
228
|
+
readOnly: (version >= 4 && (flags & 1) !== 0)
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
|
|
233
|
-
// @autopass/
|
|
234
|
-
const
|
|
233
|
+
// @autopass/invite.additional, deferred due to recusive use
|
|
234
|
+
const encoding4_5 = c.frame(encoding7)
|
|
235
235
|
|
|
236
236
|
function setVersion(v) {
|
|
237
237
|
version = v
|
|
@@ -264,17 +264,17 @@ function getEncoding(name) {
|
|
|
264
264
|
return encoding2
|
|
265
265
|
case '@autopass/delete':
|
|
266
266
|
return encoding3
|
|
267
|
-
case '@autopass/
|
|
267
|
+
case '@autopass/invite':
|
|
268
268
|
return encoding4
|
|
269
|
-
case '@autopass/
|
|
269
|
+
case '@autopass/del-invite':
|
|
270
270
|
return encoding5
|
|
271
|
-
case '@autopass/
|
|
271
|
+
case '@autopass/del-mirror':
|
|
272
272
|
return encoding6
|
|
273
|
-
case '@autopass/invite':
|
|
273
|
+
case '@autopass/additional-invite-data':
|
|
274
274
|
return encoding7
|
|
275
|
-
case '@autopass/
|
|
275
|
+
case '@autopass/invitee':
|
|
276
276
|
return encoding8
|
|
277
|
-
case '@autopass/
|
|
277
|
+
case '@autopass/public-invite-metadata':
|
|
278
278
|
return encoding9
|
|
279
279
|
default:
|
|
280
280
|
throw new Error('Encoder not found ' + name)
|