bare-media 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +202 -0
- package/README.md +59 -0
- package/client/cross-spawn/bare-kit.js +16 -0
- package/client/cross-spawn/index.js +9 -0
- package/client/cross-spawn/pear.js +11 -0
- package/client/index.js +52 -0
- package/index.js +5 -0
- package/package.json +51 -0
- package/shared/codecs.js +20 -0
- package/shared/spec/build.js +34 -0
- package/shared/spec/constants.js +2 -0
- package/shared/spec/hrpc/hrpc.json +44 -0
- package/shared/spec/hrpc/index.js +132 -0
- package/shared/spec/hrpc/messages.js +422 -0
- package/shared/spec/schema/index.js +422 -0
- package/shared/spec/schema/schema.json +272 -0
- package/shared/spec/schema.js +196 -0
- package/worker/index.js +25 -0
- package/worker/media.js +105 -0
- package/worker/util.js +16 -0
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
// This file is autogenerated by the hyperschema compiler
|
|
2
|
+
// Schema Version: 2
|
|
3
|
+
/* eslint-disable camelcase */
|
|
4
|
+
/* eslint-disable quotes */
|
|
5
|
+
|
|
6
|
+
import { c } from 'hyperschema/runtime'
|
|
7
|
+
|
|
8
|
+
const VERSION = 2
|
|
9
|
+
|
|
10
|
+
// eslint-disable-next-line no-unused-vars
|
|
11
|
+
let version = VERSION
|
|
12
|
+
|
|
13
|
+
// @media/dimensions
|
|
14
|
+
const encoding0 = {
|
|
15
|
+
preencode (state, m) {
|
|
16
|
+
c.uint.preencode(state, m.width)
|
|
17
|
+
c.uint.preencode(state, m.height)
|
|
18
|
+
},
|
|
19
|
+
encode (state, m) {
|
|
20
|
+
c.uint.encode(state, m.width)
|
|
21
|
+
c.uint.encode(state, m.height)
|
|
22
|
+
},
|
|
23
|
+
decode (state) {
|
|
24
|
+
const r0 = c.uint.decode(state)
|
|
25
|
+
const r1 = c.uint.decode(state)
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
width: r0,
|
|
29
|
+
height: r1
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// @media/metadata.dimensions
|
|
35
|
+
const encoding1_1 = c.frame(encoding0)
|
|
36
|
+
|
|
37
|
+
// @media/metadata
|
|
38
|
+
const encoding1 = {
|
|
39
|
+
preencode (state, m) {
|
|
40
|
+
state.end++ // max flag is 4 so always one byte
|
|
41
|
+
|
|
42
|
+
if (m.mimetype) c.string.preencode(state, m.mimetype)
|
|
43
|
+
if (m.dimensions) encoding1_1.preencode(state, m.dimensions)
|
|
44
|
+
if (m.duration) c.uint.preencode(state, m.duration)
|
|
45
|
+
},
|
|
46
|
+
encode (state, m) {
|
|
47
|
+
const flags =
|
|
48
|
+
(m.mimetype ? 1 : 0) |
|
|
49
|
+
(m.dimensions ? 2 : 0) |
|
|
50
|
+
(m.duration ? 4 : 0)
|
|
51
|
+
|
|
52
|
+
c.uint.encode(state, flags)
|
|
53
|
+
|
|
54
|
+
if (m.mimetype) c.string.encode(state, m.mimetype)
|
|
55
|
+
if (m.dimensions) encoding1_1.encode(state, m.dimensions)
|
|
56
|
+
if (m.duration) c.uint.encode(state, m.duration)
|
|
57
|
+
},
|
|
58
|
+
decode (state) {
|
|
59
|
+
const flags = c.uint.decode(state)
|
|
60
|
+
|
|
61
|
+
return {
|
|
62
|
+
mimetype: (flags & 1) !== 0 ? c.string.decode(state) : null,
|
|
63
|
+
dimensions: (flags & 2) !== 0 ? encoding1_1.decode(state) : null,
|
|
64
|
+
duration: (flags & 4) !== 0 ? c.uint.decode(state) : 0
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// @media/file.metadata
|
|
70
|
+
const encoding2_0 = c.frame(encoding1)
|
|
71
|
+
|
|
72
|
+
// @media/file
|
|
73
|
+
const encoding2 = {
|
|
74
|
+
preencode (state, m) {
|
|
75
|
+
state.end++ // max flag is 4 so always one byte
|
|
76
|
+
|
|
77
|
+
if (m.metadata) encoding2_0.preencode(state, m.metadata)
|
|
78
|
+
if (m.inlined) c.string.preencode(state, m.inlined)
|
|
79
|
+
if (m.buffer) c.buffer.preencode(state, m.buffer)
|
|
80
|
+
},
|
|
81
|
+
encode (state, m) {
|
|
82
|
+
const flags =
|
|
83
|
+
(m.metadata ? 1 : 0) |
|
|
84
|
+
(m.inlined ? 2 : 0) |
|
|
85
|
+
(m.buffer ? 4 : 0)
|
|
86
|
+
|
|
87
|
+
c.uint.encode(state, flags)
|
|
88
|
+
|
|
89
|
+
if (m.metadata) encoding2_0.encode(state, m.metadata)
|
|
90
|
+
if (m.inlined) c.string.encode(state, m.inlined)
|
|
91
|
+
if (m.buffer) c.buffer.encode(state, m.buffer)
|
|
92
|
+
},
|
|
93
|
+
decode (state) {
|
|
94
|
+
const flags = c.uint.decode(state)
|
|
95
|
+
|
|
96
|
+
return {
|
|
97
|
+
metadata: (flags & 1) !== 0 ? encoding2_0.decode(state) : null,
|
|
98
|
+
inlined: (flags & 2) !== 0 ? c.string.decode(state) : null,
|
|
99
|
+
buffer: (flags & 4) !== 0 ? c.buffer.decode(state) : null
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// @media/preview-by-size.small
|
|
105
|
+
const encoding3_0 = c.frame(encoding2)
|
|
106
|
+
// @media/preview-by-size.medium
|
|
107
|
+
const encoding3_1 = encoding3_0
|
|
108
|
+
// @media/preview-by-size.large
|
|
109
|
+
const encoding3_2 = encoding3_0
|
|
110
|
+
|
|
111
|
+
// @media/preview-by-size
|
|
112
|
+
const encoding3 = {
|
|
113
|
+
preencode (state, m) {
|
|
114
|
+
state.end++ // max flag is 4 so always one byte
|
|
115
|
+
|
|
116
|
+
if (m.small) encoding3_0.preencode(state, m.small)
|
|
117
|
+
if (m.medium) encoding3_1.preencode(state, m.medium)
|
|
118
|
+
if (m.large) encoding3_2.preencode(state, m.large)
|
|
119
|
+
},
|
|
120
|
+
encode (state, m) {
|
|
121
|
+
const flags =
|
|
122
|
+
(m.small ? 1 : 0) |
|
|
123
|
+
(m.medium ? 2 : 0) |
|
|
124
|
+
(m.large ? 4 : 0)
|
|
125
|
+
|
|
126
|
+
c.uint.encode(state, flags)
|
|
127
|
+
|
|
128
|
+
if (m.small) encoding3_0.encode(state, m.small)
|
|
129
|
+
if (m.medium) encoding3_1.encode(state, m.medium)
|
|
130
|
+
if (m.large) encoding3_2.encode(state, m.large)
|
|
131
|
+
},
|
|
132
|
+
decode (state) {
|
|
133
|
+
const flags = c.uint.decode(state)
|
|
134
|
+
|
|
135
|
+
return {
|
|
136
|
+
small: (flags & 1) !== 0 ? encoding3_0.decode(state) : null,
|
|
137
|
+
medium: (flags & 2) !== 0 ? encoding3_1.decode(state) : null,
|
|
138
|
+
large: (flags & 4) !== 0 ? encoding3_2.decode(state) : null
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// @media/sizePreview
|
|
144
|
+
const encoding4 = {
|
|
145
|
+
preencode (state, m) {
|
|
146
|
+
c.uint.preencode(state, m.small)
|
|
147
|
+
c.uint.preencode(state, m.medium)
|
|
148
|
+
c.uint.preencode(state, m.large)
|
|
149
|
+
},
|
|
150
|
+
encode (state, m) {
|
|
151
|
+
c.uint.encode(state, m.small)
|
|
152
|
+
c.uint.encode(state, m.medium)
|
|
153
|
+
c.uint.encode(state, m.large)
|
|
154
|
+
},
|
|
155
|
+
decode (state) {
|
|
156
|
+
const r0 = c.uint.decode(state)
|
|
157
|
+
const r1 = c.uint.decode(state)
|
|
158
|
+
const r2 = c.uint.decode(state)
|
|
159
|
+
|
|
160
|
+
return {
|
|
161
|
+
small: r0,
|
|
162
|
+
medium: r1,
|
|
163
|
+
large: r2
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// @media/create-preview-request
|
|
169
|
+
const encoding5 = {
|
|
170
|
+
preencode (state, m) {
|
|
171
|
+
c.string.preencode(state, m.path)
|
|
172
|
+
state.end++ // max flag is 16 so always one byte
|
|
173
|
+
|
|
174
|
+
if (m.mimetype) c.string.preencode(state, m.mimetype)
|
|
175
|
+
if (m.maxWidth) c.uint.preencode(state, m.maxWidth)
|
|
176
|
+
if (m.maxHeight) c.uint.preencode(state, m.maxHeight)
|
|
177
|
+
if (m.format) c.string.preencode(state, m.format)
|
|
178
|
+
if (m.encoding) c.string.preencode(state, m.encoding)
|
|
179
|
+
},
|
|
180
|
+
encode (state, m) {
|
|
181
|
+
const flags =
|
|
182
|
+
(m.mimetype ? 1 : 0) |
|
|
183
|
+
(m.maxWidth ? 2 : 0) |
|
|
184
|
+
(m.maxHeight ? 4 : 0) |
|
|
185
|
+
(m.format ? 8 : 0) |
|
|
186
|
+
(m.encoding ? 16 : 0)
|
|
187
|
+
|
|
188
|
+
c.string.encode(state, m.path)
|
|
189
|
+
c.uint.encode(state, flags)
|
|
190
|
+
|
|
191
|
+
if (m.mimetype) c.string.encode(state, m.mimetype)
|
|
192
|
+
if (m.maxWidth) c.uint.encode(state, m.maxWidth)
|
|
193
|
+
if (m.maxHeight) c.uint.encode(state, m.maxHeight)
|
|
194
|
+
if (m.format) c.string.encode(state, m.format)
|
|
195
|
+
if (m.encoding) c.string.encode(state, m.encoding)
|
|
196
|
+
},
|
|
197
|
+
decode (state) {
|
|
198
|
+
const r0 = c.string.decode(state)
|
|
199
|
+
const flags = c.uint.decode(state)
|
|
200
|
+
|
|
201
|
+
return {
|
|
202
|
+
path: r0,
|
|
203
|
+
mimetype: (flags & 1) !== 0 ? c.string.decode(state) : null,
|
|
204
|
+
maxWidth: (flags & 2) !== 0 ? c.uint.decode(state) : 0,
|
|
205
|
+
maxHeight: (flags & 4) !== 0 ? c.uint.decode(state) : 0,
|
|
206
|
+
format: (flags & 8) !== 0 ? c.string.decode(state) : null,
|
|
207
|
+
encoding: (flags & 16) !== 0 ? c.string.decode(state) : null
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// @media/create-preview-response.metadata
|
|
213
|
+
const encoding6_0 = encoding2_0
|
|
214
|
+
// @media/create-preview-response.preview
|
|
215
|
+
const encoding6_1 = encoding3_0
|
|
216
|
+
|
|
217
|
+
// @media/create-preview-response
|
|
218
|
+
const encoding6 = {
|
|
219
|
+
preencode (state, m) {
|
|
220
|
+
encoding6_0.preencode(state, m.metadata)
|
|
221
|
+
encoding6_1.preencode(state, m.preview)
|
|
222
|
+
},
|
|
223
|
+
encode (state, m) {
|
|
224
|
+
encoding6_0.encode(state, m.metadata)
|
|
225
|
+
encoding6_1.encode(state, m.preview)
|
|
226
|
+
},
|
|
227
|
+
decode (state) {
|
|
228
|
+
const r0 = encoding6_0.decode(state)
|
|
229
|
+
const r1 = encoding6_1.decode(state)
|
|
230
|
+
|
|
231
|
+
return {
|
|
232
|
+
metadata: r0,
|
|
233
|
+
preview: r1
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// @media/create-preview-all-request.maxWidth
|
|
239
|
+
const encoding7_2 = c.frame(encoding4)
|
|
240
|
+
// @media/create-preview-all-request.maxHeight
|
|
241
|
+
const encoding7_3 = encoding7_2
|
|
242
|
+
|
|
243
|
+
// @media/create-preview-all-request
|
|
244
|
+
const encoding7 = {
|
|
245
|
+
preencode (state, m) {
|
|
246
|
+
c.string.preencode(state, m.path)
|
|
247
|
+
state.end++ // max flag is 2 so always one byte
|
|
248
|
+
|
|
249
|
+
if (m.mimetype) c.string.preencode(state, m.mimetype)
|
|
250
|
+
encoding7_2.preencode(state, m.maxWidth)
|
|
251
|
+
encoding7_3.preencode(state, m.maxHeight)
|
|
252
|
+
if (m.format) c.string.preencode(state, m.format)
|
|
253
|
+
},
|
|
254
|
+
encode (state, m) {
|
|
255
|
+
const flags =
|
|
256
|
+
(m.mimetype ? 1 : 0) |
|
|
257
|
+
(m.format ? 2 : 0)
|
|
258
|
+
|
|
259
|
+
c.string.encode(state, m.path)
|
|
260
|
+
c.uint.encode(state, flags)
|
|
261
|
+
|
|
262
|
+
if (m.mimetype) c.string.encode(state, m.mimetype)
|
|
263
|
+
encoding7_2.encode(state, m.maxWidth)
|
|
264
|
+
encoding7_3.encode(state, m.maxHeight)
|
|
265
|
+
if (m.format) c.string.encode(state, m.format)
|
|
266
|
+
},
|
|
267
|
+
decode (state) {
|
|
268
|
+
const r0 = c.string.decode(state)
|
|
269
|
+
const flags = c.uint.decode(state)
|
|
270
|
+
|
|
271
|
+
return {
|
|
272
|
+
path: r0,
|
|
273
|
+
mimetype: (flags & 1) !== 0 ? c.string.decode(state) : null,
|
|
274
|
+
maxWidth: encoding7_2.decode(state),
|
|
275
|
+
maxHeight: encoding7_3.decode(state),
|
|
276
|
+
format: (flags & 2) !== 0 ? c.string.decode(state) : null
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// @media/create-preview-all-response.metadata
|
|
282
|
+
const encoding8_0 = encoding2_0
|
|
283
|
+
// @media/create-preview-all-response.preview
|
|
284
|
+
const encoding8_1 = c.frame(encoding3)
|
|
285
|
+
|
|
286
|
+
// @media/create-preview-all-response
|
|
287
|
+
const encoding8 = {
|
|
288
|
+
preencode (state, m) {
|
|
289
|
+
encoding8_0.preencode(state, m.metadata)
|
|
290
|
+
encoding8_1.preencode(state, m.preview)
|
|
291
|
+
},
|
|
292
|
+
encode (state, m) {
|
|
293
|
+
encoding8_0.encode(state, m.metadata)
|
|
294
|
+
encoding8_1.encode(state, m.preview)
|
|
295
|
+
},
|
|
296
|
+
decode (state) {
|
|
297
|
+
const r0 = encoding8_0.decode(state)
|
|
298
|
+
const r1 = encoding8_1.decode(state)
|
|
299
|
+
|
|
300
|
+
return {
|
|
301
|
+
metadata: r0,
|
|
302
|
+
preview: r1
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// @media/decode-image-request
|
|
308
|
+
const encoding9 = {
|
|
309
|
+
preencode (state, m) {
|
|
310
|
+
c.string.preencode(state, m.httpLink)
|
|
311
|
+
state.end++ // max flag is 1 so always one byte
|
|
312
|
+
|
|
313
|
+
if (version >= 2 && m.mimetype) c.string.preencode(state, m.mimetype)
|
|
314
|
+
},
|
|
315
|
+
encode (state, m) {
|
|
316
|
+
const flags = (version >= 2 && m.mimetype) ? 1 : 0
|
|
317
|
+
|
|
318
|
+
c.string.encode(state, m.httpLink)
|
|
319
|
+
c.uint.encode(state, flags)
|
|
320
|
+
|
|
321
|
+
if (version >= 2 && m.mimetype) c.string.encode(state, m.mimetype)
|
|
322
|
+
},
|
|
323
|
+
decode (state) {
|
|
324
|
+
const r0 = c.string.decode(state)
|
|
325
|
+
const flags = c.uint.decode(state)
|
|
326
|
+
|
|
327
|
+
return {
|
|
328
|
+
httpLink: r0,
|
|
329
|
+
mimetype: (version >= 2 && (flags & 1) !== 0) ? c.string.decode(state) : null
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
// @media/decode-image-response.metadata
|
|
335
|
+
const encoding10_0 = encoding2_0
|
|
336
|
+
|
|
337
|
+
// @media/decode-image-response
|
|
338
|
+
const encoding10 = {
|
|
339
|
+
preencode (state, m) {
|
|
340
|
+
state.end++ // max flag is 2 so always one byte
|
|
341
|
+
|
|
342
|
+
if (version >= 2 && m.metadata) encoding10_0.preencode(state, m.metadata)
|
|
343
|
+
if (version >= 2 && m.data) c.buffer.preencode(state, m.data)
|
|
344
|
+
},
|
|
345
|
+
encode (state, m) {
|
|
346
|
+
const flags =
|
|
347
|
+
((version >= 2 && m.metadata) ? 1 : 0) |
|
|
348
|
+
((version >= 2 && m.data) ? 2 : 0)
|
|
349
|
+
|
|
350
|
+
c.uint.encode(state, flags)
|
|
351
|
+
|
|
352
|
+
if (version >= 2 && m.metadata) encoding10_0.encode(state, m.metadata)
|
|
353
|
+
if (version >= 2 && m.data) c.buffer.encode(state, m.data)
|
|
354
|
+
},
|
|
355
|
+
decode (state) {
|
|
356
|
+
const flags = c.uint.decode(state)
|
|
357
|
+
|
|
358
|
+
return {
|
|
359
|
+
metadata: (version >= 2 && (flags & 1) !== 0) ? encoding10_0.decode(state) : null,
|
|
360
|
+
data: (version >= 2 && (flags & 2) !== 0) ? c.buffer.decode(state) : null
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
function setVersion (v) {
|
|
366
|
+
version = v
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
function encode (name, value, v = VERSION) {
|
|
370
|
+
version = v
|
|
371
|
+
return c.encode(getEncoding(name), value)
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
function decode (name, buffer, v = VERSION) {
|
|
375
|
+
version = v
|
|
376
|
+
return c.decode(getEncoding(name), buffer)
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
function getEnum (name) {
|
|
380
|
+
switch (name) {
|
|
381
|
+
default: throw new Error('Enum not found ' + name)
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
function getEncoding (name) {
|
|
386
|
+
switch (name) {
|
|
387
|
+
case '@media/dimensions': return encoding0
|
|
388
|
+
case '@media/metadata': return encoding1
|
|
389
|
+
case '@media/file': return encoding2
|
|
390
|
+
case '@media/preview-by-size': return encoding3
|
|
391
|
+
case '@media/sizePreview': return encoding4
|
|
392
|
+
case '@media/create-preview-request': return encoding5
|
|
393
|
+
case '@media/create-preview-response': return encoding6
|
|
394
|
+
case '@media/create-preview-all-request': return encoding7
|
|
395
|
+
case '@media/create-preview-all-response': return encoding8
|
|
396
|
+
case '@media/decode-image-request': return encoding9
|
|
397
|
+
case '@media/decode-image-response': return encoding10
|
|
398
|
+
default: throw new Error('Encoder not found ' + name)
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
function getStruct (name, v = VERSION) {
|
|
403
|
+
const enc = getEncoding(name)
|
|
404
|
+
return {
|
|
405
|
+
preencode (state, m) {
|
|
406
|
+
version = v
|
|
407
|
+
enc.preencode(state, m)
|
|
408
|
+
},
|
|
409
|
+
encode (state, m) {
|
|
410
|
+
version = v
|
|
411
|
+
enc.encode(state, m)
|
|
412
|
+
},
|
|
413
|
+
decode (state) {
|
|
414
|
+
version = v
|
|
415
|
+
return enc.decode(state)
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
const resolveStruct = getStruct // compat
|
|
421
|
+
|
|
422
|
+
export { resolveStruct, getStruct, getEnum, getEncoding, encode, decode, setVersion, version }
|