@transloadit/node 6.4.0 → 6.6.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.
Files changed (182) hide show
  1. package/README.md +30 -5
  2. package/dist/Transloadit.d.ts.map +1 -1
  3. package/dist/Transloadit.js +61 -5
  4. package/dist/Transloadit.js.map +1 -1
  5. package/dist/alphalib/renderSimpleValue.d.ts +14 -0
  6. package/dist/alphalib/renderSimpleValue.d.ts.map +1 -0
  7. package/dist/alphalib/renderSimpleValue.js +87 -0
  8. package/dist/alphalib/renderSimpleValue.js.map +1 -0
  9. package/dist/alphalib/truncateString.d.ts +5 -0
  10. package/dist/alphalib/truncateString.d.ts.map +1 -0
  11. package/dist/alphalib/truncateString.js +19 -0
  12. package/dist/alphalib/truncateString.js.map +1 -0
  13. package/dist/alphalib/types/builtinTemplates.d.ts +15 -3
  14. package/dist/alphalib/types/builtinTemplates.d.ts.map +1 -1
  15. package/dist/alphalib/types/builtinTemplates.js +23 -3
  16. package/dist/alphalib/types/builtinTemplates.js.map +1 -1
  17. package/dist/alphalib/types/robots/_instructions-primitives.d.ts +6 -0
  18. package/dist/alphalib/types/robots/_instructions-primitives.d.ts.map +1 -1
  19. package/dist/alphalib/types/robots/_instructions-primitives.js +29 -7
  20. package/dist/alphalib/types/robots/_instructions-primitives.js.map +1 -1
  21. package/dist/alphalib/types/robots/_video-generate.d.ts +34 -0
  22. package/dist/alphalib/types/robots/_video-generate.d.ts.map +1 -0
  23. package/dist/alphalib/types/robots/_video-generate.js +157 -0
  24. package/dist/alphalib/types/robots/_video-generate.js.map +1 -0
  25. package/dist/alphalib/types/robots/ai-chat.d.ts +2 -0
  26. package/dist/alphalib/types/robots/ai-chat.d.ts.map +1 -1
  27. package/dist/alphalib/types/robots/ai-chat.js +7 -5
  28. package/dist/alphalib/types/robots/ai-chat.js.map +1 -1
  29. package/dist/alphalib/types/robots/audio-concat.d.ts.map +1 -1
  30. package/dist/alphalib/types/robots/audio-concat.js +5 -5
  31. package/dist/alphalib/types/robots/audio-concat.js.map +1 -1
  32. package/dist/alphalib/types/robots/azure-import.d.ts.map +1 -1
  33. package/dist/alphalib/types/robots/azure-import.js +3 -3
  34. package/dist/alphalib/types/robots/azure-import.js.map +1 -1
  35. package/dist/alphalib/types/robots/document-convert.d.ts.map +1 -1
  36. package/dist/alphalib/types/robots/document-convert.js +7 -5
  37. package/dist/alphalib/types/robots/document-convert.js.map +1 -1
  38. package/dist/alphalib/types/robots/document-extract.d.ts +8 -8
  39. package/dist/alphalib/types/robots/document-extract.d.ts.map +1 -1
  40. package/dist/alphalib/types/robots/document-extract.js +18 -2
  41. package/dist/alphalib/types/robots/document-extract.js.map +1 -1
  42. package/dist/alphalib/types/robots/document-split.d.ts +12 -0
  43. package/dist/alphalib/types/robots/document-split.d.ts.map +1 -1
  44. package/dist/alphalib/types/robots/document-split.js +15 -2
  45. package/dist/alphalib/types/robots/document-split.js.map +1 -1
  46. package/dist/alphalib/types/robots/file-decompress.d.ts.map +1 -1
  47. package/dist/alphalib/types/robots/file-decompress.js +2 -0
  48. package/dist/alphalib/types/robots/file-decompress.js.map +1 -1
  49. package/dist/alphalib/types/robots/file-preview.d.ts +22 -0
  50. package/dist/alphalib/types/robots/file-preview.d.ts.map +1 -1
  51. package/dist/alphalib/types/robots/file-preview.js +43 -26
  52. package/dist/alphalib/types/robots/file-preview.js.map +1 -1
  53. package/dist/alphalib/types/robots/http-request.d.ts.map +1 -1
  54. package/dist/alphalib/types/robots/http-request.js +9 -14
  55. package/dist/alphalib/types/robots/http-request.js.map +1 -1
  56. package/dist/alphalib/types/robots/image-enhance.d.ts +8 -8
  57. package/dist/alphalib/types/robots/image-enhance.js +2 -2
  58. package/dist/alphalib/types/robots/image-resize.d.ts.map +1 -1
  59. package/dist/alphalib/types/robots/image-resize.js +3 -1
  60. package/dist/alphalib/types/robots/image-resize.js.map +1 -1
  61. package/dist/alphalib/types/robots/image-upscale.js +1 -1
  62. package/dist/alphalib/types/robots/image-upscale.js.map +1 -1
  63. package/dist/alphalib/types/robots/s3-import.d.ts.map +1 -1
  64. package/dist/alphalib/types/robots/s3-import.js +14 -15
  65. package/dist/alphalib/types/robots/s3-import.js.map +1 -1
  66. package/dist/alphalib/types/robots/supabase-store.d.ts +16 -6
  67. package/dist/alphalib/types/robots/supabase-store.d.ts.map +1 -1
  68. package/dist/alphalib/types/robots/supabase-store.js +23 -1
  69. package/dist/alphalib/types/robots/supabase-store.js.map +1 -1
  70. package/dist/alphalib/types/robots/tigris-store.d.ts.map +1 -1
  71. package/dist/alphalib/types/robots/tigris-store.js +3 -4
  72. package/dist/alphalib/types/robots/tigris-store.js.map +1 -1
  73. package/dist/alphalib/types/robots/transloadit-import.d.ts +2 -2
  74. package/dist/alphalib/types/robots/transloadit-import.d.ts.map +1 -1
  75. package/dist/alphalib/types/robots/transloadit-import.js +4 -1
  76. package/dist/alphalib/types/robots/transloadit-import.js.map +1 -1
  77. package/dist/alphalib/types/robots/transloadit-store.d.ts +2 -3
  78. package/dist/alphalib/types/robots/transloadit-store.d.ts.map +1 -1
  79. package/dist/alphalib/types/robots/transloadit-store.js +19 -0
  80. package/dist/alphalib/types/robots/transloadit-store.js.map +1 -1
  81. package/dist/alphalib/types/robots/video-adaptive.d.ts.map +1 -1
  82. package/dist/alphalib/types/robots/video-adaptive.js +12 -0
  83. package/dist/alphalib/types/robots/video-adaptive.js.map +1 -1
  84. package/dist/alphalib/types/robots/video-concat.d.ts.map +1 -1
  85. package/dist/alphalib/types/robots/video-concat.js +9 -9
  86. package/dist/alphalib/types/robots/video-concat.js.map +1 -1
  87. package/dist/alphalib/types/robots/video-thumbs.d.ts +8 -8
  88. package/dist/alphalib/types/robots/video-thumbs.js +8 -8
  89. package/dist/alphalib/types/robots/video-thumbs.js.map +1 -1
  90. package/dist/alphalib/types/robots/vimeo-store.js +1 -1
  91. package/dist/alphalib/types/template.d.ts +3 -3
  92. package/dist/alphalib/types/templateValues.d.ts +83 -0
  93. package/dist/alphalib/types/templateValues.d.ts.map +1 -0
  94. package/dist/alphalib/types/templateValues.js +117 -0
  95. package/dist/alphalib/types/templateValues.js.map +1 -0
  96. package/dist/cli/OutputCtl.d.ts +1 -0
  97. package/dist/cli/OutputCtl.d.ts.map +1 -1
  98. package/dist/cli/OutputCtl.js +1 -1
  99. package/dist/cli/OutputCtl.js.map +1 -1
  100. package/dist/cli/commands/BaseCommand.d.ts +3 -2
  101. package/dist/cli/commands/BaseCommand.d.ts.map +1 -1
  102. package/dist/cli/commands/BaseCommand.js +27 -3
  103. package/dist/cli/commands/BaseCommand.js.map +1 -1
  104. package/dist/cli/commands/assemblies.d.ts +21 -1
  105. package/dist/cli/commands/assemblies.d.ts.map +1 -1
  106. package/dist/cli/commands/assemblies.js +584 -91
  107. package/dist/cli/commands/assemblies.js.map +1 -1
  108. package/dist/cli/commands/templates.d.ts +1 -1
  109. package/dist/cli/commands/templates.d.ts.map +1 -1
  110. package/dist/cli/commands/templates.js +57 -67
  111. package/dist/cli/commands/templates.js.map +1 -1
  112. package/dist/cli/errors.d.ts +8 -0
  113. package/dist/cli/errors.d.ts.map +1 -0
  114. package/dist/cli/errors.js +28 -0
  115. package/dist/cli/errors.js.map +1 -0
  116. package/dist/cli/helpers.d.ts.map +1 -1
  117. package/dist/cli/helpers.js +22 -0
  118. package/dist/cli/helpers.js.map +1 -1
  119. package/dist/cli/intentRuntime.d.ts +1 -0
  120. package/dist/cli/intentRuntime.d.ts.map +1 -1
  121. package/dist/cli/intentRuntime.js +9 -3
  122. package/dist/cli/intentRuntime.js.map +1 -1
  123. package/dist/cli/resultFiles.d.ts +1 -0
  124. package/dist/cli/resultFiles.d.ts.map +1 -1
  125. package/dist/cli/resultFiles.js.map +1 -1
  126. package/dist/cli/resultUrls.d.ts +2 -1
  127. package/dist/cli/resultUrls.d.ts.map +1 -1
  128. package/dist/cli/resultUrls.js +6 -3
  129. package/dist/cli/resultUrls.js.map +1 -1
  130. package/dist/cli/stepsInput.d.ts +1 -1
  131. package/dist/cli/stepsInput.d.ts.map +1 -1
  132. package/dist/cli/stepsInput.js +48 -6
  133. package/dist/cli/stepsInput.js.map +1 -1
  134. package/dist/cli/types.d.ts +66 -0
  135. package/dist/cli/types.d.ts.map +1 -1
  136. package/dist/cli/types.js +29 -0
  137. package/dist/cli/types.js.map +1 -1
  138. package/dist/tus.d.ts +7 -2
  139. package/dist/tus.d.ts.map +1 -1
  140. package/dist/tus.js +58 -4
  141. package/dist/tus.js.map +1 -1
  142. package/package.json +1 -1
  143. package/src/Transloadit.ts +65 -4
  144. package/src/alphalib/renderSimpleValue.ts +120 -0
  145. package/src/alphalib/truncateString.ts +23 -0
  146. package/src/alphalib/types/builtinTemplates.ts +33 -3
  147. package/src/alphalib/types/robots/_instructions-primitives.ts +34 -7
  148. package/src/alphalib/types/robots/_video-generate.ts +211 -0
  149. package/src/alphalib/types/robots/ai-chat.ts +8 -5
  150. package/src/alphalib/types/robots/audio-concat.ts +5 -4
  151. package/src/alphalib/types/robots/azure-import.ts +3 -4
  152. package/src/alphalib/types/robots/document-convert.ts +8 -5
  153. package/src/alphalib/types/robots/document-extract.ts +18 -2
  154. package/src/alphalib/types/robots/document-split.ts +17 -2
  155. package/src/alphalib/types/robots/file-decompress.ts +2 -0
  156. package/src/alphalib/types/robots/file-preview.ts +44 -25
  157. package/src/alphalib/types/robots/http-request.ts +9 -13
  158. package/src/alphalib/types/robots/image-enhance.ts +2 -2
  159. package/src/alphalib/types/robots/image-resize.ts +3 -1
  160. package/src/alphalib/types/robots/image-upscale.ts +1 -1
  161. package/src/alphalib/types/robots/s3-import.ts +14 -15
  162. package/src/alphalib/types/robots/supabase-store.ts +23 -1
  163. package/src/alphalib/types/robots/tigris-store.ts +2 -3
  164. package/src/alphalib/types/robots/transloadit-import.ts +4 -1
  165. package/src/alphalib/types/robots/transloadit-store.ts +19 -0
  166. package/src/alphalib/types/robots/video-adaptive.ts +12 -0
  167. package/src/alphalib/types/robots/video-concat.ts +9 -8
  168. package/src/alphalib/types/robots/video-thumbs.ts +8 -8
  169. package/src/alphalib/types/robots/vimeo-store.ts +1 -1
  170. package/src/alphalib/types/templateValues.ts +157 -0
  171. package/src/cli/OutputCtl.ts +2 -1
  172. package/src/cli/commands/BaseCommand.ts +29 -7
  173. package/src/cli/commands/assemblies.ts +775 -118
  174. package/src/cli/commands/templates.ts +93 -98
  175. package/src/cli/errors.ts +34 -0
  176. package/src/cli/helpers.ts +21 -0
  177. package/src/cli/intentRuntime.ts +10 -3
  178. package/src/cli/resultFiles.ts +1 -0
  179. package/src/cli/resultUrls.ts +11 -3
  180. package/src/cli/stepsInput.ts +54 -6
  181. package/src/cli/types.ts +35 -0
  182. package/src/tus.ts +72 -5
@@ -0,0 +1,157 @@
1
+ import type { SimpleValueReason } from '../renderSimpleValue.ts'
2
+
3
+ import { formatSimpleValueReason } from '../renderSimpleValue.ts'
4
+
5
+ /** Usage in MiB charged for each dynamically evaluated Assembly expression. */
6
+ export const expressionEvaluationUsageMebibytes = 0.2
7
+
8
+ /** Character domain shared by stored Template IDs and their pagination cursors. */
9
+ // biome-ignore lint/suspicious/noControlCharactersInRegex: Stored Template IDs allow the full ASCII range.
10
+ export const storedTemplateIdentifierPattern = /^[\x00-\x7F]*$/u
11
+
12
+ /** Template Assembly Status retention values shared by runtime validation and contracts. */
13
+ export const templateAssemblyStatusExpiries = Object.freeze({
14
+ noTmpFileRetention: 'NoSave',
15
+ oneDay: '1day',
16
+ sevenDays: '7days',
17
+ thirtyDays: '30days',
18
+ ninetyDays: '90days',
19
+ })
20
+
21
+ /** Template transcoding-result retention values shared by runtime validation and contracts. */
22
+ export const templateTranscodingResultExpiries = Object.freeze({
23
+ noTmpFileRetention: 'NoSave',
24
+ oneDay: '1day',
25
+ })
26
+
27
+ /** Default storage lifecycle selections; separate from upload and execution phase timeouts. */
28
+ export const templateRetentionDefaults = Object.freeze({
29
+ assemblyStatus: templateAssemblyStatusExpiries.ninetyDays,
30
+ transcodingResult: templateTranscodingResultExpiries.oneDay,
31
+ })
32
+
33
+ export const templateListFieldValues = [
34
+ 'account_id',
35
+ 'assembly_status_expiry',
36
+ 'cron_auth_key_id',
37
+ 'cron_enabled',
38
+ 'cron_max_concurrent_runs',
39
+ 'cron_region',
40
+ 'cron_schedule_with_seconds',
41
+ 'created',
42
+ 'deleted',
43
+ 'encryption_version',
44
+ 'id',
45
+ 'json',
46
+ 'last_used',
47
+ 'modified',
48
+ 'name',
49
+ 'require_signature_auth',
50
+ 'transcoding_result_expiry',
51
+ ] as const
52
+
53
+ export type TemplateListField = (typeof templateListFieldValues)[number]
54
+
55
+ export const templateListDefaultFields = [
56
+ 'id',
57
+ 'name',
58
+ 'json',
59
+ 'encryption_version',
60
+ 'require_signature_auth',
61
+ 'assembly_status_expiry',
62
+ 'transcoding_result_expiry',
63
+ 'last_used',
64
+ 'created',
65
+ 'modified',
66
+ ] as const satisfies readonly TemplateListField[]
67
+
68
+ export const templateListOrderValues = ['asc', 'desc'] as const
69
+ export type TemplateListOrder = (typeof templateListOrderValues)[number]
70
+
71
+ export const templateListSortValues = ['id', 'name', 'created', 'modified', 'last_used'] as const
72
+ export type TemplateListSort = (typeof templateListSortValues)[number]
73
+
74
+ export const templateIncludeBuiltinModes = ['none', 'latest', 'all'] as const
75
+ export type TemplateIncludeBuiltinMode = (typeof templateIncludeBuiltinModes)[number]
76
+
77
+ export const templateIncludeBuiltinValues = [
78
+ ...templateIncludeBuiltinModes,
79
+ 'exclusively-latest',
80
+ 'exclusively-all',
81
+ ] as const
82
+ export type TemplateIncludeBuiltinValue = (typeof templateIncludeBuiltinValues)[number]
83
+
84
+ /** Canonical Template-list defaults shared by API2 and generated clients. */
85
+ export const templateListDefaults = Object.freeze({
86
+ includeBuiltin: 'none',
87
+ keywords: '',
88
+ order: 'desc',
89
+ page: 1,
90
+ pagesize: 850,
91
+ sort: 'created',
92
+ } satisfies {
93
+ includeBuiltin: TemplateIncludeBuiltinValue
94
+ keywords: string
95
+ order: TemplateListOrder
96
+ page: number
97
+ pagesize: number
98
+ sort: TemplateListSort
99
+ })
100
+
101
+ /** Maximum page size accepted by Template listing. */
102
+ export const templateListMaxPageSize = 850
103
+
104
+ /** Code-unit length retained for the private admin Workspace override. */
105
+ export const templateListWorkspaceIdCodeUnits = 32
106
+
107
+ /** Maximum customer-supplied characters retained in a Template-list error reason. */
108
+ export const templateListInvalidRequestValueMaxCharacters = 200
109
+
110
+ /** Handler-priority Template-list validation reasons shared by runtime and contract enforcement. */
111
+ export const templateListInvalidRequestReasons = {
112
+ order: {
113
+ message: 'Invalid order (must be "asc" or "desc")',
114
+ value: 'string',
115
+ },
116
+ sort: {
117
+ message: 'Invalid sort (must be "created", "modified", "name", "id" or "last_used")',
118
+ suffix: '.',
119
+ value: 'string',
120
+ },
121
+ pagesize: {
122
+ message: `Invalid pagesize (must be between 1 and ${templateListMaxPageSize})`,
123
+ suffix: '.',
124
+ value: 'integer-prefix',
125
+ },
126
+ page: {
127
+ message: 'Invalid page',
128
+ suffix: '.',
129
+ value: 'integer-prefix',
130
+ },
131
+ account_id: {
132
+ message: 'Invalid accountId',
133
+ suffix: '.',
134
+ value: 'string',
135
+ },
136
+ include_builtin: {
137
+ message: 'Invalid include_builtin',
138
+ value: 'string',
139
+ },
140
+ } satisfies Record<string, SimpleValueReason>
141
+
142
+ export type TemplateListInvalidRequestField = keyof typeof templateListInvalidRequestReasons
143
+
144
+ /** Formats one established Template-list reason from its shared contract fact. */
145
+ export function formatTemplateListInvalidRequestReason(
146
+ field: TemplateListInvalidRequestField,
147
+ value: unknown,
148
+ ): string {
149
+ const reason = templateListInvalidRequestReasons[field]
150
+ return formatSimpleValueReason(
151
+ typeof value === 'number' && reason.value === 'integer-prefix'
152
+ ? { ...reason, value: 'string' }
153
+ : reason,
154
+ value,
155
+ templateListInvalidRequestValueMaxCharacters,
156
+ )
157
+ }
@@ -60,6 +60,7 @@ export interface IOutputCtl {
60
60
  info(msg: unknown): void
61
61
  debug(msg: unknown): void
62
62
  trace(msg: unknown): void
63
+ /** An undefined simple value emits JSON only, preserving binary or URL stdout in text mode. */
63
64
  print(simple: unknown, json: unknown): void
64
65
  }
65
66
 
@@ -110,6 +111,6 @@ export default class OutputCtl implements IOutputCtl {
110
111
  print(simple: unknown, json: unknown): void {
111
112
  if (this.json) console.log(JSON.stringify(json))
112
113
  else if (typeof simple === 'string') console.log(simple)
113
- else console.dir(simple, { depth: null })
114
+ else if (simple !== undefined) console.dir(simple, { depth: null })
114
115
  }
115
116
  }
@@ -2,9 +2,14 @@ import type { ResolvedCliConfig } from '../helpers.ts'
2
2
  import type { IOutputCtl } from '../OutputCtl.ts'
3
3
 
4
4
  import { Command, Option } from 'clipanion'
5
+ import { RequestError } from 'got'
6
+ import { z } from 'zod'
5
7
 
8
+ import { ApiError } from '../../ApiError.ts'
9
+ import { tryCatch } from '../../alphalib/tryCatch.ts'
6
10
  import { Transloadit as TransloaditClient } from '../../Transloadit.ts'
7
- import { buildMissingAuthMessage, resolveCliConfig } from '../helpers.ts'
11
+ import { CliInputError, formatSchemaIssues } from '../errors.ts'
12
+ import { buildMissingAuthMessage, formatAPIError, resolveCliConfig } from '../helpers.ts'
8
13
  import OutputCtl, { LOG_LEVEL_DEFAULT, LOG_LEVEL_NAMES, parseLogLevel } from '../OutputCtl.ts'
9
14
 
10
15
  abstract class BaseCommand extends Command {
@@ -50,6 +55,27 @@ abstract class BaseCommand extends Command {
50
55
  }
51
56
 
52
57
  abstract override execute(): Promise<number | undefined>
58
+
59
+ protected abstract run(): Promise<number | undefined>
60
+
61
+ /** Report schema, API, and transport failures once; other errors retain Clipanion's diagnostics. */
62
+ protected async runWithErrorReporting(): Promise<number | undefined> {
63
+ const [error, result] = await tryCatch(this.run())
64
+ if (!error) return result
65
+ if (error instanceof z.ZodError) {
66
+ this.output.error(`Invalid options: ${formatSchemaIssues(error.issues)}`)
67
+ return 1
68
+ }
69
+ if (error instanceof RequestError) {
70
+ this.output.error(formatAPIError(error))
71
+ return 1
72
+ }
73
+ if (error instanceof CliInputError || error instanceof ApiError) {
74
+ this.output.error(formatAPIError(error))
75
+ return 1
76
+ }
77
+ throw error
78
+ }
53
79
  }
54
80
 
55
81
  export abstract class AuthenticatedCommand extends BaseCommand {
@@ -58,17 +84,13 @@ export abstract class AuthenticatedCommand extends BaseCommand {
58
84
  if (!this.setupClient()) {
59
85
  return 1
60
86
  }
61
- return await this.run()
87
+ return await this.runWithErrorReporting()
62
88
  }
63
-
64
- protected abstract run(): Promise<number | undefined>
65
89
  }
66
90
 
67
91
  export abstract class UnauthenticatedCommand extends BaseCommand {
68
92
  override async execute(): Promise<number | undefined> {
69
93
  this.setupOutput()
70
- return await this.run()
94
+ return await this.runWithErrorReporting()
71
95
  }
72
-
73
- protected abstract run(): Promise<number | undefined>
74
96
  }