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.
@@ -1,12 +1,12 @@
1
1
  // This file is autogenerated by the hyperschema compiler
2
- // Schema Version: 1
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 = 1
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/invitee
106
+ // @autopass/invite
107
107
  const encoding4 = {
108
108
  preencode(state, m) {
109
- c.fixed32.preencode(state, m.key)
110
- state.end++ // max flag is 1 so always one byte
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.name) c.string.preencode(state, m.name)
115
+ if (version >= 3 && m.additional) encoding4_5.preencode(state, m.additional)
113
116
  },
114
117
  encode(state, m) {
115
- const flags = m.name ? 1 : 0
118
+ const flags = ((version >= 2 && m.readOnly) ? 1 : 0) | ((version >= 3 && m.additional) ? 2 : 0)
116
119
 
117
- c.fixed32.encode(state, m.key)
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.name) c.string.encode(state, m.name)
126
+ if (version >= 3 && m.additional) encoding4_5.encode(state, m.additional)
121
127
  },
122
128
  decode(state) {
123
- const r0 = c.fixed32.decode(state)
124
- const flags = c.uint.decode(state)
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
- key: r0,
128
- name: (flags & 1) !== 0 ? c.string.decode(state) : null
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/public-invite-metadata
146
+ // @autopass/del-invite
134
147
  const encoding5 = {
135
148
  preencode(state, m) {
136
- state.end++ // max flag is 1 so always one byte
149
+ c.buffer.preencode(state, m.id)
137
150
  },
138
151
  encode(state, m) {
139
- const flags = m.readOnly ? 1 : 0
140
-
141
- c.uint.encode(state, flags)
152
+ c.buffer.encode(state, m.id)
142
153
  },
143
154
  decode(state) {
144
- const flags = c.uint.decode(state)
155
+ const r0 = c.buffer.decode(state)
145
156
 
146
157
  return {
147
- readOnly: (flags & 1) !== 0
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 encoding6 = {
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/invite.additional
174
- const encoding7_5 = c.frame(encoding6)
175
-
176
- // @autopass/invite
177
- const encoding7 = {
187
+ // @autopass/invitee
188
+ const encoding8 = {
178
189
  preencode(state, m) {
179
- c.buffer.preencode(state, m.id)
180
- c.buffer.preencode(state, m.invite)
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.additional) encoding7_5.preencode(state, m.additional)
193
+ if (version >= 4 && m.name) c.string.preencode(state, m.name)
186
194
  },
187
195
  encode(state, m) {
188
- const flags = (m.readOnly ? 1 : 0) | (m.additional ? 2 : 0)
196
+ const flags = (version >= 4 && m.name) ? 1 : 0
189
197
 
190
- c.buffer.encode(state, m.id)
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.additional) encoding7_5.encode(state, m.additional)
201
+ if (version >= 4 && m.name) c.string.encode(state, m.name)
197
202
  },
198
203
  decode(state) {
199
- const r0 = c.buffer.decode(state)
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
- id: r0,
207
- invite: r1,
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/del-invite
217
- const encoding8 = {
214
+ // @autopass/public-invite-metadata
215
+ const encoding9 = {
218
216
  preencode(state, m) {
219
- c.buffer.preencode(state, m.id)
217
+ state.end++ // max flag is 1 so always one byte
220
218
  },
221
219
  encode(state, m) {
222
- c.buffer.encode(state, m.id)
220
+ const flags = (version >= 4 && m.readOnly) ? 1 : 0
221
+
222
+ c.uint.encode(state, flags)
223
223
  },
224
224
  decode(state) {
225
- const r0 = c.buffer.decode(state)
225
+ const flags = c.uint.decode(state)
226
226
 
227
227
  return {
228
- id: r0
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
- encode(state, m) {},
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
- encode(state, m) {},
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/invitee':
394
+ case '@autopass/invite':
388
395
  return encoding4
389
- case '@autopass/public-invite-metadata':
396
+ case '@autopass/del-invite':
390
397
  return encoding5
391
- case '@autopass/additional-invite-data':
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/del-invite':
402
+ case '@autopass/invitee':
396
403
  return encoding8
397
- case '@autopass/del-mirror':
404
+ case '@autopass/public-invite-metadata':
398
405
  return encoding9
399
406
  case '@autopass/records/hyperdb#0':
400
407
  return encoding10
@@ -51,4 +51,4 @@
51
51
  "version": 1
52
52
  }
53
53
  ]
54
- }
54
+ }
@@ -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: 1
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 = 1
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/invitee
106
+ // @autopass/invite
107
107
  const encoding4 = {
108
108
  preencode(state, m) {
109
- c.fixed32.preencode(state, m.key)
110
- state.end++ // max flag is 1 so always one byte
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.name) c.string.preencode(state, m.name)
115
+ if (version >= 3 && m.additional) encoding4_5.preencode(state, m.additional)
113
116
  },
114
117
  encode(state, m) {
115
- const flags = m.name ? 1 : 0
118
+ const flags = ((version >= 2 && m.readOnly) ? 1 : 0) | ((version >= 3 && m.additional) ? 2 : 0)
116
119
 
117
- c.fixed32.encode(state, m.key)
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.name) c.string.encode(state, m.name)
126
+ if (version >= 3 && m.additional) encoding4_5.encode(state, m.additional)
121
127
  },
122
128
  decode(state) {
123
- const r0 = c.fixed32.decode(state)
124
- const flags = c.uint.decode(state)
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
- key: r0,
128
- name: (flags & 1) !== 0 ? c.string.decode(state) : null
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/public-invite-metadata
146
+ // @autopass/del-invite
134
147
  const encoding5 = {
135
148
  preencode(state, m) {
136
- state.end++ // max flag is 1 so always one byte
149
+ c.buffer.preencode(state, m.id)
137
150
  },
138
151
  encode(state, m) {
139
- const flags = m.readOnly ? 1 : 0
140
-
141
- c.uint.encode(state, flags)
152
+ c.buffer.encode(state, m.id)
142
153
  },
143
154
  decode(state) {
144
- const flags = c.uint.decode(state)
155
+ const r0 = c.buffer.decode(state)
145
156
 
146
157
  return {
147
- readOnly: (flags & 1) !== 0
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 encoding6 = {
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/invite.additional
174
- const encoding7_5 = c.frame(encoding6)
175
-
176
- // @autopass/invite
177
- const encoding7 = {
187
+ // @autopass/invitee
188
+ const encoding8 = {
178
189
  preencode(state, m) {
179
- c.buffer.preencode(state, m.id)
180
- c.buffer.preencode(state, m.invite)
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.additional) encoding7_5.preencode(state, m.additional)
193
+ if (version >= 4 && m.name) c.string.preencode(state, m.name)
186
194
  },
187
195
  encode(state, m) {
188
- const flags = (m.readOnly ? 1 : 0) | (m.additional ? 2 : 0)
196
+ const flags = (version >= 4 && m.name) ? 1 : 0
189
197
 
190
- c.buffer.encode(state, m.id)
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.additional) encoding7_5.encode(state, m.additional)
201
+ if (version >= 4 && m.name) c.string.encode(state, m.name)
197
202
  },
198
203
  decode(state) {
199
- const r0 = c.buffer.decode(state)
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
- id: r0,
207
- invite: r1,
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/del-invite
217
- const encoding8 = {
214
+ // @autopass/public-invite-metadata
215
+ const encoding9 = {
218
216
  preencode(state, m) {
219
- c.buffer.preencode(state, m.id)
217
+ state.end++ // max flag is 1 so always one byte
220
218
  },
221
219
  encode(state, m) {
222
- c.buffer.encode(state, m.id)
220
+ const flags = (version >= 4 && m.readOnly) ? 1 : 0
221
+
222
+ c.uint.encode(state, flags)
223
223
  },
224
224
  decode(state) {
225
- const r0 = c.buffer.decode(state)
225
+ const flags = c.uint.decode(state)
226
226
 
227
227
  return {
228
- id: r0
228
+ readOnly: (version >= 4 && (flags & 1) !== 0)
229
229
  }
230
230
  }
231
231
  }
232
232
 
233
- // @autopass/del-mirror
234
- const encoding9 = encoding1
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/invitee':
267
+ case '@autopass/invite':
268
268
  return encoding4
269
- case '@autopass/public-invite-metadata':
269
+ case '@autopass/del-invite':
270
270
  return encoding5
271
- case '@autopass/additional-invite-data':
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/del-invite':
275
+ case '@autopass/invitee':
276
276
  return encoding8
277
- case '@autopass/del-mirror':
277
+ case '@autopass/public-invite-metadata':
278
278
  return encoding9
279
279
  default:
280
280
  throw new Error('Encoder not found ' + name)