@transloadit/convex 0.0.5 → 0.1.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/README.md +31 -212
- package/dist/client/index.d.ts +39 -92
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +34 -104
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/component.d.ts +18 -0
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/apiUtils.d.ts +1 -32
- package/dist/component/apiUtils.d.ts.map +1 -1
- package/dist/component/apiUtils.js.map +1 -1
- package/dist/component/lib.d.ts +33 -90
- package/dist/component/lib.d.ts.map +1 -1
- package/dist/component/lib.js +48 -157
- package/dist/component/lib.js.map +1 -1
- package/dist/component/schema.d.ts +4 -4
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +3 -31
- package/dist/component/schema.js.map +1 -1
- package/dist/shared/schemas.d.ts +419 -0
- package/dist/shared/schemas.d.ts.map +1 -0
- package/dist/shared/schemas.js +194 -0
- package/dist/shared/schemas.js.map +1 -0
- package/dist/test/index.d.ts +4 -4
- package/package.json +6 -16
- package/src/client/index.ts +68 -123
- package/src/component/_generated/component.ts +17 -0
- package/src/component/apiUtils.ts +7 -38
- package/src/component/lib.test.ts +19 -0
- package/src/component/lib.ts +80 -180
- package/src/component/schema.ts +3 -31
- package/src/shared/schemas.ts +279 -0
- package/dist/react/index.d.ts +0 -281
- package/dist/react/index.d.ts.map +0 -1
- package/dist/react/index.js +0 -784
- package/dist/react/index.js.map +0 -1
- package/dist/shared/tusUpload.d.ts +0 -13
- package/dist/shared/tusUpload.d.ts.map +0 -1
- package/dist/shared/tusUpload.js +0 -32
- package/dist/shared/tusUpload.js.map +0 -1
- package/src/react/index.test.tsx +0 -340
- package/src/react/index.tsx +0 -1245
- package/src/react/uploadWithTus.test.tsx +0 -192
- package/src/shared/tusUpload.ts +0 -59
package/src/component/lib.ts
CHANGED
|
@@ -1,10 +1,33 @@
|
|
|
1
1
|
import type { AssemblyStatus } from "@transloadit/zod/v3/assemblyStatus";
|
|
2
2
|
import type { AssemblyInstructionsInput } from "@transloadit/zod/v3/template";
|
|
3
3
|
import { anyApi, type FunctionReference } from "convex/server";
|
|
4
|
-
import {
|
|
4
|
+
import { v } from "convex/values";
|
|
5
5
|
import { parseAssemblyStatus } from "../shared/assemblyUrls.ts";
|
|
6
6
|
import { transloaditError } from "../shared/errors.ts";
|
|
7
7
|
import { getResultUrl } from "../shared/resultUtils.ts";
|
|
8
|
+
import {
|
|
9
|
+
type ProcessWebhookResult,
|
|
10
|
+
vAssembly,
|
|
11
|
+
vAssemblyBaseArgs,
|
|
12
|
+
vAssemblyIdArgs,
|
|
13
|
+
vAssemblyOptions,
|
|
14
|
+
vAssemblyResult,
|
|
15
|
+
vCreateAssemblyReturn,
|
|
16
|
+
vHandleWebhookArgs,
|
|
17
|
+
vListAlbumResultsArgs,
|
|
18
|
+
vListAssembliesArgs,
|
|
19
|
+
vListResultsArgs,
|
|
20
|
+
vPurgeAlbumArgs,
|
|
21
|
+
vPurgeAlbumResponse,
|
|
22
|
+
vQueueWebhookResponse,
|
|
23
|
+
vRefreshAssemblyArgs,
|
|
24
|
+
vReplaceResultsArgs,
|
|
25
|
+
vStoreAssemblyMetadataArgs,
|
|
26
|
+
vTransloaditConfig,
|
|
27
|
+
vUpsertAssemblyArgs,
|
|
28
|
+
vWebhookArgs,
|
|
29
|
+
vWebhookResponse,
|
|
30
|
+
} from "../shared/schemas.ts";
|
|
8
31
|
import {
|
|
9
32
|
action,
|
|
10
33
|
internalAction,
|
|
@@ -21,12 +44,8 @@ import {
|
|
|
21
44
|
|
|
22
45
|
const TRANSLOADIT_ASSEMBLY_URL = "https://api2.transloadit.com/assemblies";
|
|
23
46
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
resultCount: number;
|
|
27
|
-
ok?: string;
|
|
28
|
-
status?: string;
|
|
29
|
-
};
|
|
47
|
+
export { vAssembly, vAssemblyResult, vTransloaditConfig };
|
|
48
|
+
export type { Assembly, AssemblyResult } from "../shared/schemas.ts";
|
|
30
49
|
|
|
31
50
|
type InternalApi = {
|
|
32
51
|
lib: {
|
|
@@ -147,78 +166,8 @@ const applyAssemblyStatus = async (
|
|
|
147
166
|
};
|
|
148
167
|
};
|
|
149
168
|
|
|
150
|
-
export const vAssembly = v.object({
|
|
151
|
-
_id: v.id("assemblies"),
|
|
152
|
-
_creationTime: v.number(),
|
|
153
|
-
assemblyId: v.string(),
|
|
154
|
-
status: v.optional(v.string()),
|
|
155
|
-
ok: v.optional(v.string()),
|
|
156
|
-
message: v.optional(v.string()),
|
|
157
|
-
templateId: v.optional(v.string()),
|
|
158
|
-
notifyUrl: v.optional(v.string()),
|
|
159
|
-
numExpectedUploadFiles: v.optional(v.number()),
|
|
160
|
-
fields: v.optional(v.record(v.string(), v.any())),
|
|
161
|
-
uploads: v.optional(v.array(v.any())),
|
|
162
|
-
results: v.optional(v.record(v.string(), v.array(v.any()))),
|
|
163
|
-
error: v.optional(v.any()),
|
|
164
|
-
raw: v.optional(v.any()),
|
|
165
|
-
createdAt: v.number(),
|
|
166
|
-
updatedAt: v.number(),
|
|
167
|
-
userId: v.optional(v.string()),
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
export type Assembly = Infer<typeof vAssembly>;
|
|
171
|
-
|
|
172
|
-
export const vAssemblyResult = v.object({
|
|
173
|
-
_id: v.id("results"),
|
|
174
|
-
_creationTime: v.number(),
|
|
175
|
-
assemblyId: v.string(),
|
|
176
|
-
album: v.optional(v.string()),
|
|
177
|
-
userId: v.optional(v.string()),
|
|
178
|
-
stepName: v.string(),
|
|
179
|
-
resultId: v.optional(v.string()),
|
|
180
|
-
sslUrl: v.optional(v.string()),
|
|
181
|
-
name: v.optional(v.string()),
|
|
182
|
-
size: v.optional(v.number()),
|
|
183
|
-
mime: v.optional(v.string()),
|
|
184
|
-
raw: v.any(),
|
|
185
|
-
createdAt: v.number(),
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
export type AssemblyResult = Infer<typeof vAssemblyResult>;
|
|
189
|
-
|
|
190
|
-
export const vTransloaditConfig = v.object({
|
|
191
|
-
authKey: v.string(),
|
|
192
|
-
authSecret: v.string(),
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
const vAssemblyBaseArgs = {
|
|
196
|
-
templateId: v.optional(v.string()),
|
|
197
|
-
steps: v.optional(v.record(v.string(), v.any())),
|
|
198
|
-
fields: v.optional(v.record(v.string(), v.any())),
|
|
199
|
-
notifyUrl: v.optional(v.string()),
|
|
200
|
-
numExpectedUploadFiles: v.optional(v.number()),
|
|
201
|
-
expires: v.optional(v.string()),
|
|
202
|
-
additionalParams: v.optional(v.record(v.string(), v.any())),
|
|
203
|
-
userId: v.optional(v.string()),
|
|
204
|
-
};
|
|
205
|
-
|
|
206
169
|
export const upsertAssembly = internalMutation({
|
|
207
|
-
args:
|
|
208
|
-
assemblyId: v.string(),
|
|
209
|
-
status: v.optional(v.string()),
|
|
210
|
-
ok: v.optional(v.string()),
|
|
211
|
-
message: v.optional(v.string()),
|
|
212
|
-
templateId: v.optional(v.string()),
|
|
213
|
-
notifyUrl: v.optional(v.string()),
|
|
214
|
-
numExpectedUploadFiles: v.optional(v.number()),
|
|
215
|
-
fields: v.optional(v.record(v.string(), v.any())),
|
|
216
|
-
uploads: v.optional(v.array(v.any())),
|
|
217
|
-
results: v.optional(v.record(v.string(), v.array(v.any()))),
|
|
218
|
-
error: v.optional(v.any()),
|
|
219
|
-
raw: v.optional(v.any()),
|
|
220
|
-
userId: v.optional(v.string()),
|
|
221
|
-
},
|
|
170
|
+
args: vUpsertAssemblyArgs,
|
|
222
171
|
returns: v.id("assemblies"),
|
|
223
172
|
handler: async (ctx, args) => {
|
|
224
173
|
// Note: we persist full `raw` + `results` for debugging/fidelity. Large
|
|
@@ -272,15 +221,7 @@ export const upsertAssembly = internalMutation({
|
|
|
272
221
|
});
|
|
273
222
|
|
|
274
223
|
export const replaceResultsForAssembly = internalMutation({
|
|
275
|
-
args:
|
|
276
|
-
assemblyId: v.string(),
|
|
277
|
-
results: v.array(
|
|
278
|
-
v.object({
|
|
279
|
-
stepName: v.string(),
|
|
280
|
-
result: v.any(),
|
|
281
|
-
}),
|
|
282
|
-
),
|
|
283
|
-
},
|
|
224
|
+
args: vReplaceResultsArgs,
|
|
284
225
|
returns: v.null(),
|
|
285
226
|
handler: async (ctx, args) => {
|
|
286
227
|
// We store raw result payloads for fidelity. For very large assemblies,
|
|
@@ -334,10 +275,7 @@ export const createAssembly = action({
|
|
|
334
275
|
config: vTransloaditConfig,
|
|
335
276
|
...vAssemblyBaseArgs,
|
|
336
277
|
},
|
|
337
|
-
returns:
|
|
338
|
-
assemblyId: v.string(),
|
|
339
|
-
data: v.any(),
|
|
340
|
-
}),
|
|
278
|
+
returns: vCreateAssemblyReturn,
|
|
341
279
|
handler: async (ctx, args) => {
|
|
342
280
|
const { paramsString, params } = buildTransloaditParams({
|
|
343
281
|
authKey: args.config.authKey,
|
|
@@ -345,7 +283,7 @@ export const createAssembly = action({
|
|
|
345
283
|
steps: args.steps as AssemblyInstructionsInput["steps"],
|
|
346
284
|
fields: args.fields as AssemblyInstructionsInput["fields"],
|
|
347
285
|
notifyUrl: args.notifyUrl,
|
|
348
|
-
numExpectedUploadFiles:
|
|
286
|
+
numExpectedUploadFiles: args.numExpectedUploadFiles,
|
|
349
287
|
expires: args.expires,
|
|
350
288
|
additionalParams: args.additionalParams as
|
|
351
289
|
| Record<string, unknown>
|
|
@@ -414,29 +352,47 @@ export const createAssembly = action({
|
|
|
414
352
|
},
|
|
415
353
|
});
|
|
416
354
|
|
|
417
|
-
const
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
355
|
+
export const createAssemblyOptions = action({
|
|
356
|
+
args: {
|
|
357
|
+
config: vTransloaditConfig,
|
|
358
|
+
...vAssemblyBaseArgs,
|
|
359
|
+
},
|
|
360
|
+
returns: vAssemblyOptions,
|
|
361
|
+
handler: async (_ctx, args) => {
|
|
362
|
+
const { paramsString, params } = buildTransloaditParams({
|
|
363
|
+
authKey: args.config.authKey,
|
|
364
|
+
templateId: args.templateId,
|
|
365
|
+
steps: args.steps as AssemblyInstructionsInput["steps"],
|
|
366
|
+
fields: args.fields as AssemblyInstructionsInput["fields"],
|
|
367
|
+
notifyUrl: args.notifyUrl,
|
|
368
|
+
numExpectedUploadFiles: args.numExpectedUploadFiles,
|
|
369
|
+
expires: args.expires,
|
|
370
|
+
additionalParams: args.additionalParams as
|
|
371
|
+
| Record<string, unknown>
|
|
372
|
+
| undefined,
|
|
373
|
+
});
|
|
424
374
|
|
|
425
|
-
const
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
375
|
+
const signature = await signTransloaditParams(
|
|
376
|
+
paramsString,
|
|
377
|
+
args.config.authSecret,
|
|
378
|
+
);
|
|
379
|
+
|
|
380
|
+
const fields =
|
|
381
|
+
params && typeof params.fields === "object" && params.fields
|
|
382
|
+
? (params.fields as Record<string, unknown>)
|
|
383
|
+
: undefined;
|
|
384
|
+
|
|
385
|
+
return {
|
|
386
|
+
params: paramsString,
|
|
387
|
+
signature,
|
|
388
|
+
fields,
|
|
389
|
+
};
|
|
390
|
+
},
|
|
391
|
+
});
|
|
431
392
|
|
|
432
393
|
export const processWebhook = internalAction({
|
|
433
394
|
args: vWebhookArgs,
|
|
434
|
-
returns:
|
|
435
|
-
assemblyId: v.string(),
|
|
436
|
-
resultCount: v.number(),
|
|
437
|
-
ok: v.optional(v.string()),
|
|
438
|
-
status: v.optional(v.string()),
|
|
439
|
-
}),
|
|
395
|
+
returns: vWebhookResponse,
|
|
440
396
|
handler: async (ctx, args) => {
|
|
441
397
|
const rawBody = resolveWebhookRawBody(args);
|
|
442
398
|
const shouldVerify = args.verifySignature ?? true;
|
|
@@ -474,20 +430,8 @@ export const processWebhook = internalAction({
|
|
|
474
430
|
});
|
|
475
431
|
|
|
476
432
|
export const handleWebhook = action({
|
|
477
|
-
args:
|
|
478
|
-
|
|
479
|
-
config: v.optional(
|
|
480
|
-
v.object({
|
|
481
|
-
authSecret: v.string(),
|
|
482
|
-
}),
|
|
483
|
-
),
|
|
484
|
-
},
|
|
485
|
-
returns: v.object({
|
|
486
|
-
assemblyId: v.string(),
|
|
487
|
-
resultCount: v.number(),
|
|
488
|
-
ok: v.optional(v.string()),
|
|
489
|
-
status: v.optional(v.string()),
|
|
490
|
-
}),
|
|
433
|
+
args: vHandleWebhookArgs,
|
|
434
|
+
returns: vWebhookResponse,
|
|
491
435
|
handler: async (ctx, args) => {
|
|
492
436
|
const verifySignature = args.verifySignature ?? true;
|
|
493
437
|
return ctx.runAction(internal.lib.processWebhook, {
|
|
@@ -501,18 +445,8 @@ export const handleWebhook = action({
|
|
|
501
445
|
});
|
|
502
446
|
|
|
503
447
|
export const queueWebhook = action({
|
|
504
|
-
args:
|
|
505
|
-
|
|
506
|
-
config: v.optional(
|
|
507
|
-
v.object({
|
|
508
|
-
authSecret: v.string(),
|
|
509
|
-
}),
|
|
510
|
-
),
|
|
511
|
-
},
|
|
512
|
-
returns: v.object({
|
|
513
|
-
assemblyId: v.string(),
|
|
514
|
-
queued: v.boolean(),
|
|
515
|
-
}),
|
|
448
|
+
args: vHandleWebhookArgs,
|
|
449
|
+
returns: vQueueWebhookResponse,
|
|
516
450
|
handler: async (ctx, args) => {
|
|
517
451
|
const rawBody = resolveWebhookRawBody(args);
|
|
518
452
|
const shouldVerify = args.verifySignature ?? true;
|
|
@@ -564,21 +498,8 @@ export const queueWebhook = action({
|
|
|
564
498
|
});
|
|
565
499
|
|
|
566
500
|
export const refreshAssembly = action({
|
|
567
|
-
args:
|
|
568
|
-
|
|
569
|
-
config: v.optional(
|
|
570
|
-
v.object({
|
|
571
|
-
authKey: v.string(),
|
|
572
|
-
authSecret: v.string(),
|
|
573
|
-
}),
|
|
574
|
-
),
|
|
575
|
-
},
|
|
576
|
-
returns: v.object({
|
|
577
|
-
assemblyId: v.string(),
|
|
578
|
-
resultCount: v.number(),
|
|
579
|
-
ok: v.optional(v.string()),
|
|
580
|
-
status: v.optional(v.string()),
|
|
581
|
-
}),
|
|
501
|
+
args: vRefreshAssemblyArgs,
|
|
502
|
+
returns: vWebhookResponse,
|
|
582
503
|
handler: async (ctx, args) => {
|
|
583
504
|
const { assemblyId } = args;
|
|
584
505
|
const authKey = args.config?.authKey ?? process.env.TRANSLOADIT_KEY;
|
|
@@ -603,7 +524,7 @@ export const refreshAssembly = action({
|
|
|
603
524
|
});
|
|
604
525
|
|
|
605
526
|
export const getAssemblyStatus = query({
|
|
606
|
-
args:
|
|
527
|
+
args: vAssemblyIdArgs,
|
|
607
528
|
returns: v.union(vAssembly, v.null()),
|
|
608
529
|
handler: async (ctx, args) => {
|
|
609
530
|
return await ctx.db
|
|
@@ -614,11 +535,7 @@ export const getAssemblyStatus = query({
|
|
|
614
535
|
});
|
|
615
536
|
|
|
616
537
|
export const listAssemblies = query({
|
|
617
|
-
args:
|
|
618
|
-
status: v.optional(v.string()),
|
|
619
|
-
userId: v.optional(v.string()),
|
|
620
|
-
limit: v.optional(v.number()),
|
|
621
|
-
},
|
|
538
|
+
args: vListAssembliesArgs,
|
|
622
539
|
returns: v.array(vAssembly),
|
|
623
540
|
handler: async (ctx, args) => {
|
|
624
541
|
if (args.userId) {
|
|
@@ -644,11 +561,7 @@ export const listAssemblies = query({
|
|
|
644
561
|
});
|
|
645
562
|
|
|
646
563
|
export const listResults = query({
|
|
647
|
-
args:
|
|
648
|
-
assemblyId: v.string(),
|
|
649
|
-
stepName: v.optional(v.string()),
|
|
650
|
-
limit: v.optional(v.number()),
|
|
651
|
-
},
|
|
564
|
+
args: vListResultsArgs,
|
|
652
565
|
returns: v.array(vAssemblyResult),
|
|
653
566
|
handler: async (ctx, args) => {
|
|
654
567
|
if (args.stepName) {
|
|
@@ -671,10 +584,7 @@ export const listResults = query({
|
|
|
671
584
|
});
|
|
672
585
|
|
|
673
586
|
export const listAlbumResults = query({
|
|
674
|
-
args:
|
|
675
|
-
album: v.string(),
|
|
676
|
-
limit: v.optional(v.number()),
|
|
677
|
-
},
|
|
587
|
+
args: vListAlbumResultsArgs,
|
|
678
588
|
returns: v.array(vAssemblyResult),
|
|
679
589
|
handler: async (ctx, args) => {
|
|
680
590
|
return ctx.db
|
|
@@ -686,14 +596,8 @@ export const listAlbumResults = query({
|
|
|
686
596
|
});
|
|
687
597
|
|
|
688
598
|
export const purgeAlbum = mutation({
|
|
689
|
-
args:
|
|
690
|
-
|
|
691
|
-
deleteAssemblies: v.optional(v.boolean()),
|
|
692
|
-
},
|
|
693
|
-
returns: v.object({
|
|
694
|
-
deletedResults: v.number(),
|
|
695
|
-
deletedAssemblies: v.number(),
|
|
696
|
-
}),
|
|
599
|
+
args: vPurgeAlbumArgs,
|
|
600
|
+
returns: vPurgeAlbumResponse,
|
|
697
601
|
handler: async (ctx, args) => {
|
|
698
602
|
const results = await ctx.db
|
|
699
603
|
.query("results")
|
|
@@ -725,11 +629,7 @@ export const purgeAlbum = mutation({
|
|
|
725
629
|
});
|
|
726
630
|
|
|
727
631
|
export const storeAssemblyMetadata = mutation({
|
|
728
|
-
args:
|
|
729
|
-
assemblyId: v.string(),
|
|
730
|
-
userId: v.optional(v.string()),
|
|
731
|
-
fields: v.optional(v.record(v.string(), v.any())),
|
|
732
|
-
},
|
|
632
|
+
args: vStoreAssemblyMetadataArgs,
|
|
733
633
|
returns: v.union(vAssembly, v.null()),
|
|
734
634
|
handler: async (ctx, args) => {
|
|
735
635
|
const existing = await ctx.db
|
package/src/component/schema.ts
CHANGED
|
@@ -1,40 +1,12 @@
|
|
|
1
1
|
import { defineSchema, defineTable } from "convex/server";
|
|
2
|
-
import {
|
|
2
|
+
import { vAssemblyFields, vAssemblyResultFields } from "../shared/schemas.ts";
|
|
3
3
|
|
|
4
4
|
export default defineSchema({
|
|
5
|
-
assemblies: defineTable(
|
|
6
|
-
assemblyId: v.string(),
|
|
7
|
-
status: v.optional(v.string()),
|
|
8
|
-
ok: v.optional(v.string()),
|
|
9
|
-
message: v.optional(v.string()),
|
|
10
|
-
templateId: v.optional(v.string()),
|
|
11
|
-
notifyUrl: v.optional(v.string()),
|
|
12
|
-
numExpectedUploadFiles: v.optional(v.number()),
|
|
13
|
-
fields: v.optional(v.record(v.string(), v.any())),
|
|
14
|
-
uploads: v.optional(v.array(v.any())),
|
|
15
|
-
results: v.optional(v.record(v.string(), v.array(v.any()))),
|
|
16
|
-
error: v.optional(v.any()),
|
|
17
|
-
raw: v.optional(v.any()),
|
|
18
|
-
createdAt: v.number(),
|
|
19
|
-
updatedAt: v.number(),
|
|
20
|
-
userId: v.optional(v.string()),
|
|
21
|
-
})
|
|
5
|
+
assemblies: defineTable(vAssemblyFields)
|
|
22
6
|
.index("by_assemblyId", ["assemblyId"])
|
|
23
7
|
.index("by_status", ["status"])
|
|
24
8
|
.index("by_userId", ["userId"]),
|
|
25
|
-
results: defineTable(
|
|
26
|
-
assemblyId: v.string(),
|
|
27
|
-
album: v.optional(v.string()),
|
|
28
|
-
userId: v.optional(v.string()),
|
|
29
|
-
stepName: v.string(),
|
|
30
|
-
resultId: v.optional(v.string()),
|
|
31
|
-
sslUrl: v.optional(v.string()),
|
|
32
|
-
name: v.optional(v.string()),
|
|
33
|
-
size: v.optional(v.number()),
|
|
34
|
-
mime: v.optional(v.string()),
|
|
35
|
-
raw: v.any(),
|
|
36
|
-
createdAt: v.number(),
|
|
37
|
-
})
|
|
9
|
+
results: defineTable(vAssemblyResultFields)
|
|
38
10
|
.index("by_assemblyId", ["assemblyId"])
|
|
39
11
|
.index("by_assemblyId_and_step", ["assemblyId", "stepName"])
|
|
40
12
|
.index("by_album", ["album"]),
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import type { AssemblyInstructionsInput } from "@transloadit/zod/v3/template";
|
|
2
|
+
import { type Infer, v } from "convex/values";
|
|
3
|
+
|
|
4
|
+
export const vAssemblyFields = {
|
|
5
|
+
assemblyId: v.string(),
|
|
6
|
+
status: v.optional(v.string()),
|
|
7
|
+
ok: v.optional(v.string()),
|
|
8
|
+
message: v.optional(v.string()),
|
|
9
|
+
templateId: v.optional(v.string()),
|
|
10
|
+
notifyUrl: v.optional(v.string()),
|
|
11
|
+
numExpectedUploadFiles: v.optional(v.number()),
|
|
12
|
+
fields: v.optional(v.record(v.string(), v.any())),
|
|
13
|
+
uploads: v.optional(v.array(v.any())),
|
|
14
|
+
results: v.optional(v.record(v.string(), v.array(v.any()))),
|
|
15
|
+
error: v.optional(v.any()),
|
|
16
|
+
raw: v.optional(v.any()),
|
|
17
|
+
createdAt: v.number(),
|
|
18
|
+
updatedAt: v.number(),
|
|
19
|
+
userId: v.optional(v.string()),
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const vAssemblyResultFields = {
|
|
23
|
+
assemblyId: v.string(),
|
|
24
|
+
album: v.optional(v.string()),
|
|
25
|
+
userId: v.optional(v.string()),
|
|
26
|
+
stepName: v.string(),
|
|
27
|
+
resultId: v.optional(v.string()),
|
|
28
|
+
sslUrl: v.optional(v.string()),
|
|
29
|
+
name: v.optional(v.string()),
|
|
30
|
+
size: v.optional(v.number()),
|
|
31
|
+
mime: v.optional(v.string()),
|
|
32
|
+
raw: v.any(),
|
|
33
|
+
createdAt: v.number(),
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const vAssembly = v.object({
|
|
37
|
+
_id: v.id("assemblies"),
|
|
38
|
+
_creationTime: v.number(),
|
|
39
|
+
...vAssemblyFields,
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
export type Assembly = Infer<typeof vAssembly>;
|
|
43
|
+
|
|
44
|
+
export const vAssemblyResponse = v.object({
|
|
45
|
+
_id: v.string(),
|
|
46
|
+
_creationTime: v.number(),
|
|
47
|
+
...vAssemblyFields,
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
export type AssemblyResponse = Infer<typeof vAssemblyResponse>;
|
|
51
|
+
|
|
52
|
+
export const vAssemblyResult = v.object({
|
|
53
|
+
_id: v.id("results"),
|
|
54
|
+
_creationTime: v.number(),
|
|
55
|
+
...vAssemblyResultFields,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
export type AssemblyResult = Infer<typeof vAssemblyResult>;
|
|
59
|
+
|
|
60
|
+
export const vAssemblyResultResponse = v.object({
|
|
61
|
+
_id: v.string(),
|
|
62
|
+
_creationTime: v.number(),
|
|
63
|
+
...vAssemblyResultFields,
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
export type AssemblyResultResponse = Infer<typeof vAssemblyResultResponse>;
|
|
67
|
+
|
|
68
|
+
export const vTransloaditConfig = v.object({
|
|
69
|
+
authKey: v.string(),
|
|
70
|
+
authSecret: v.string(),
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
export type TransloaditConfig = Infer<typeof vTransloaditConfig>;
|
|
74
|
+
|
|
75
|
+
export const vAssemblyBaseArgs = {
|
|
76
|
+
templateId: v.optional(v.string()),
|
|
77
|
+
steps: v.optional(v.record(v.string(), v.any())),
|
|
78
|
+
fields: v.optional(v.record(v.string(), v.any())),
|
|
79
|
+
notifyUrl: v.optional(v.string()),
|
|
80
|
+
numExpectedUploadFiles: v.optional(v.number()),
|
|
81
|
+
expires: v.optional(v.string()),
|
|
82
|
+
additionalParams: v.optional(v.record(v.string(), v.any())),
|
|
83
|
+
userId: v.optional(v.string()),
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const vCreateAssemblyArgs = v.object(vAssemblyBaseArgs);
|
|
87
|
+
|
|
88
|
+
export type CreateAssemblyArgs = Omit<
|
|
89
|
+
Infer<typeof vCreateAssemblyArgs>,
|
|
90
|
+
"steps" | "fields"
|
|
91
|
+
> & {
|
|
92
|
+
steps?: AssemblyInstructionsInput["steps"];
|
|
93
|
+
fields?: AssemblyInstructionsInput["fields"];
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export const vCreateAssemblyReturn = v.object({
|
|
97
|
+
assemblyId: v.string(),
|
|
98
|
+
data: v.any(),
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
export type CreateAssemblyReturn = Infer<typeof vCreateAssemblyReturn>;
|
|
102
|
+
|
|
103
|
+
export const vAssemblyOptions = v.object({
|
|
104
|
+
params: v.string(),
|
|
105
|
+
signature: v.string(),
|
|
106
|
+
fields: v.optional(v.record(v.string(), v.any())),
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
export type AssemblyOptions = Infer<typeof vAssemblyOptions>;
|
|
110
|
+
|
|
111
|
+
export const vWebhookArgs = {
|
|
112
|
+
payload: v.any(),
|
|
113
|
+
rawBody: v.optional(v.string()),
|
|
114
|
+
signature: v.optional(v.string()),
|
|
115
|
+
verifySignature: v.optional(v.boolean()),
|
|
116
|
+
authSecret: v.optional(v.string()),
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export const vPublicWebhookArgs = {
|
|
120
|
+
payload: v.any(),
|
|
121
|
+
rawBody: v.optional(v.string()),
|
|
122
|
+
signature: v.optional(v.string()),
|
|
123
|
+
verifySignature: v.optional(v.boolean()),
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export const vWebhookActionArgs = v.object({
|
|
127
|
+
payload: v.any(),
|
|
128
|
+
rawBody: v.optional(v.string()),
|
|
129
|
+
signature: v.optional(v.string()),
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
export type WebhookActionArgs = Infer<typeof vWebhookActionArgs>;
|
|
133
|
+
|
|
134
|
+
export const vWebhookResponse = v.object({
|
|
135
|
+
assemblyId: v.string(),
|
|
136
|
+
resultCount: v.number(),
|
|
137
|
+
ok: v.optional(v.string()),
|
|
138
|
+
status: v.optional(v.string()),
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
export type WebhookResponse = Infer<typeof vWebhookResponse>;
|
|
142
|
+
|
|
143
|
+
export const vQueueWebhookResponse = v.object({
|
|
144
|
+
assemblyId: v.string(),
|
|
145
|
+
queued: v.boolean(),
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
export type QueueWebhookResponse = Infer<typeof vQueueWebhookResponse>;
|
|
149
|
+
|
|
150
|
+
export const vAssemblyIdArgs = {
|
|
151
|
+
assemblyId: v.string(),
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
export const vListAssembliesArgs = {
|
|
155
|
+
status: v.optional(v.string()),
|
|
156
|
+
userId: v.optional(v.string()),
|
|
157
|
+
limit: v.optional(v.number()),
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
export const vListResultsArgs = {
|
|
161
|
+
assemblyId: v.string(),
|
|
162
|
+
stepName: v.optional(v.string()),
|
|
163
|
+
limit: v.optional(v.number()),
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
export const vListAlbumResultsArgs = {
|
|
167
|
+
album: v.string(),
|
|
168
|
+
limit: v.optional(v.number()),
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
export const vPurgeAlbumArgs = {
|
|
172
|
+
album: v.string(),
|
|
173
|
+
deleteAssemblies: v.optional(v.boolean()),
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
export const vPurgeAlbumResponse = v.object({
|
|
177
|
+
deletedResults: v.number(),
|
|
178
|
+
deletedAssemblies: v.number(),
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
export type PurgeAlbumResponse = Infer<typeof vPurgeAlbumResponse>;
|
|
182
|
+
|
|
183
|
+
export const vStoreAssemblyMetadataArgs = {
|
|
184
|
+
assemblyId: v.string(),
|
|
185
|
+
userId: v.optional(v.string()),
|
|
186
|
+
fields: v.optional(v.record(v.string(), v.any())),
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
export const vRefreshAssemblyArgs = {
|
|
190
|
+
assemblyId: v.string(),
|
|
191
|
+
config: v.optional(
|
|
192
|
+
v.object({
|
|
193
|
+
authKey: v.string(),
|
|
194
|
+
authSecret: v.string(),
|
|
195
|
+
}),
|
|
196
|
+
),
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
export const vHandleWebhookArgs = {
|
|
200
|
+
...vPublicWebhookArgs,
|
|
201
|
+
config: v.optional(
|
|
202
|
+
v.object({
|
|
203
|
+
authSecret: v.string(),
|
|
204
|
+
}),
|
|
205
|
+
),
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
export const vProcessWebhookResult = vWebhookResponse;
|
|
209
|
+
|
|
210
|
+
export type ProcessWebhookResult = Infer<typeof vProcessWebhookResult>;
|
|
211
|
+
|
|
212
|
+
export const vReplaceResultsArgs = {
|
|
213
|
+
assemblyId: v.string(),
|
|
214
|
+
results: v.array(
|
|
215
|
+
v.object({
|
|
216
|
+
stepName: v.string(),
|
|
217
|
+
result: v.any(),
|
|
218
|
+
}),
|
|
219
|
+
),
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
export const vUpsertAssemblyArgs = {
|
|
223
|
+
assemblyId: v.string(),
|
|
224
|
+
status: v.optional(v.string()),
|
|
225
|
+
ok: v.optional(v.string()),
|
|
226
|
+
message: v.optional(v.string()),
|
|
227
|
+
templateId: v.optional(v.string()),
|
|
228
|
+
notifyUrl: v.optional(v.string()),
|
|
229
|
+
numExpectedUploadFiles: v.optional(v.number()),
|
|
230
|
+
fields: v.optional(v.record(v.string(), v.any())),
|
|
231
|
+
uploads: v.optional(v.array(v.any())),
|
|
232
|
+
results: v.optional(v.record(v.string(), v.array(v.any()))),
|
|
233
|
+
error: v.optional(v.any()),
|
|
234
|
+
raw: v.optional(v.any()),
|
|
235
|
+
userId: v.optional(v.string()),
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
export const vBuildParamsOptions = v.object({
|
|
239
|
+
authKey: v.string(),
|
|
240
|
+
templateId: v.optional(v.string()),
|
|
241
|
+
steps: v.optional(v.any()),
|
|
242
|
+
fields: v.optional(v.any()),
|
|
243
|
+
notifyUrl: v.optional(v.string()),
|
|
244
|
+
numExpectedUploadFiles: v.optional(v.number()),
|
|
245
|
+
expires: v.optional(v.string()),
|
|
246
|
+
additionalParams: v.optional(v.record(v.string(), v.any())),
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
export type BuildParamsOptions = Omit<
|
|
250
|
+
Infer<typeof vBuildParamsOptions>,
|
|
251
|
+
"steps" | "fields"
|
|
252
|
+
> & {
|
|
253
|
+
steps?: AssemblyInstructionsInput["steps"];
|
|
254
|
+
fields?: AssemblyInstructionsInput["fields"];
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
export const vBuildParamsResult = v.object({
|
|
258
|
+
params: v.record(v.string(), v.any()),
|
|
259
|
+
paramsString: v.string(),
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
export type BuildParamsResult = Infer<typeof vBuildParamsResult>;
|
|
263
|
+
|
|
264
|
+
const vParsedWebhookFields = {
|
|
265
|
+
payload: v.any(),
|
|
266
|
+
rawBody: v.string(),
|
|
267
|
+
signature: v.optional(v.string()),
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
export const vParsedWebhookRequest = v.object(vParsedWebhookFields);
|
|
271
|
+
|
|
272
|
+
export type ParsedWebhookRequest = Infer<typeof vParsedWebhookRequest>;
|
|
273
|
+
|
|
274
|
+
export const vVerifiedWebhookRequest = v.object({
|
|
275
|
+
...vParsedWebhookFields,
|
|
276
|
+
verified: v.boolean(),
|
|
277
|
+
});
|
|
278
|
+
|
|
279
|
+
export type VerifiedWebhookRequest = Infer<typeof vVerifiedWebhookRequest>;
|