@transloadit/node 4.7.5 → 4.7.6

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 (139) hide show
  1. package/README.md +878 -1
  2. package/dist/Transloadit.d.ts +3 -3
  3. package/dist/Transloadit.d.ts.map +1 -1
  4. package/dist/Transloadit.js +2 -2
  5. package/dist/Transloadit.js.map +1 -1
  6. package/dist/alphalib/types/assembliesGet.d.ts +5 -0
  7. package/dist/alphalib/types/assembliesGet.d.ts.map +1 -1
  8. package/dist/alphalib/types/assemblyReplay.d.ts +5 -0
  9. package/dist/alphalib/types/assemblyReplay.d.ts.map +1 -1
  10. package/dist/alphalib/types/assemblyReplayNotification.d.ts +5 -0
  11. package/dist/alphalib/types/assemblyReplayNotification.d.ts.map +1 -1
  12. package/dist/alphalib/types/assemblyStatus.d.ts +25 -25
  13. package/dist/alphalib/types/assemblyStatus.d.ts.map +1 -1
  14. package/dist/alphalib/types/assemblyStatus.js +4 -1
  15. package/dist/alphalib/types/assemblyStatus.js.map +1 -1
  16. package/dist/alphalib/types/bill.d.ts +5 -0
  17. package/dist/alphalib/types/bill.d.ts.map +1 -1
  18. package/dist/alphalib/types/builtinTemplates.d.ts +83 -0
  19. package/dist/alphalib/types/builtinTemplates.d.ts.map +1 -0
  20. package/dist/alphalib/types/builtinTemplates.js +19 -0
  21. package/dist/alphalib/types/builtinTemplates.js.map +1 -0
  22. package/dist/alphalib/types/robots/ai-chat.d.ts.map +1 -1
  23. package/dist/alphalib/types/robots/ai-chat.js +1 -0
  24. package/dist/alphalib/types/robots/ai-chat.js.map +1 -1
  25. package/dist/alphalib/types/skillFrontmatter.d.ts +29 -0
  26. package/dist/alphalib/types/skillFrontmatter.d.ts.map +1 -0
  27. package/dist/alphalib/types/skillFrontmatter.js +19 -0
  28. package/dist/alphalib/types/skillFrontmatter.js.map +1 -0
  29. package/dist/alphalib/types/template.d.ts +36 -0
  30. package/dist/alphalib/types/template.d.ts.map +1 -1
  31. package/dist/alphalib/types/template.js +10 -0
  32. package/dist/alphalib/types/template.js.map +1 -1
  33. package/dist/alphalib/types/templateCredential.d.ts +10 -0
  34. package/dist/alphalib/types/templateCredential.d.ts.map +1 -1
  35. package/dist/cli/commands/assemblies.d.ts +8 -2
  36. package/dist/cli/commands/assemblies.d.ts.map +1 -1
  37. package/dist/cli/commands/assemblies.js +566 -411
  38. package/dist/cli/commands/assemblies.js.map +1 -1
  39. package/dist/cli/commands/index.d.ts.map +1 -1
  40. package/dist/cli/commands/index.js +5 -0
  41. package/dist/cli/commands/index.js.map +1 -1
  42. package/dist/cli/commands/templates.d.ts.map +1 -1
  43. package/dist/cli/commands/templates.js +4 -14
  44. package/dist/cli/commands/templates.js.map +1 -1
  45. package/dist/cli/fileProcessingOptions.d.ts +35 -0
  46. package/dist/cli/fileProcessingOptions.d.ts.map +1 -0
  47. package/dist/cli/fileProcessingOptions.js +182 -0
  48. package/dist/cli/fileProcessingOptions.js.map +1 -0
  49. package/dist/cli/generateIntentDocs.d.ts +2 -0
  50. package/dist/cli/generateIntentDocs.d.ts.map +1 -0
  51. package/dist/cli/generateIntentDocs.js +321 -0
  52. package/dist/cli/generateIntentDocs.js.map +1 -0
  53. package/dist/cli/intentCommandSpecs.d.ts +36 -0
  54. package/dist/cli/intentCommandSpecs.d.ts.map +1 -0
  55. package/dist/cli/intentCommandSpecs.js +181 -0
  56. package/dist/cli/intentCommandSpecs.js.map +1 -0
  57. package/dist/cli/intentCommands.d.ts +13 -0
  58. package/dist/cli/intentCommands.d.ts.map +1 -0
  59. package/dist/cli/intentCommands.js +368 -0
  60. package/dist/cli/intentCommands.js.map +1 -0
  61. package/dist/cli/intentFields.d.ts +25 -0
  62. package/dist/cli/intentFields.d.ts.map +1 -0
  63. package/dist/cli/intentFields.js +298 -0
  64. package/dist/cli/intentFields.js.map +1 -0
  65. package/dist/cli/intentInputPolicy.d.ts +10 -0
  66. package/dist/cli/intentInputPolicy.d.ts.map +1 -0
  67. package/dist/cli/intentInputPolicy.js +2 -0
  68. package/dist/cli/intentInputPolicy.js.map +1 -0
  69. package/dist/cli/intentRuntime.d.ts +114 -0
  70. package/dist/cli/intentRuntime.d.ts.map +1 -0
  71. package/dist/cli/intentRuntime.js +464 -0
  72. package/dist/cli/intentRuntime.js.map +1 -0
  73. package/dist/cli/resultFiles.d.ts +19 -0
  74. package/dist/cli/resultFiles.d.ts.map +1 -0
  75. package/dist/cli/resultFiles.js +66 -0
  76. package/dist/cli/resultFiles.js.map +1 -0
  77. package/dist/cli/resultUrls.d.ts +19 -0
  78. package/dist/cli/resultUrls.d.ts.map +1 -0
  79. package/dist/cli/resultUrls.js +36 -0
  80. package/dist/cli/resultUrls.js.map +1 -0
  81. package/dist/cli/semanticIntents/imageDescribe.d.ts +43 -0
  82. package/dist/cli/semanticIntents/imageDescribe.d.ts.map +1 -0
  83. package/dist/cli/semanticIntents/imageDescribe.js +188 -0
  84. package/dist/cli/semanticIntents/imageDescribe.js.map +1 -0
  85. package/dist/cli/semanticIntents/index.d.ts +18 -0
  86. package/dist/cli/semanticIntents/index.d.ts.map +1 -0
  87. package/dist/cli/semanticIntents/index.js +18 -0
  88. package/dist/cli/semanticIntents/index.js.map +1 -0
  89. package/dist/cli/semanticIntents/markdownPdf.d.ts +4 -0
  90. package/dist/cli/semanticIntents/markdownPdf.d.ts.map +1 -0
  91. package/dist/cli/semanticIntents/markdownPdf.js +93 -0
  92. package/dist/cli/semanticIntents/markdownPdf.js.map +1 -0
  93. package/dist/cli/semanticIntents/parsing.d.ts +11 -0
  94. package/dist/cli/semanticIntents/parsing.d.ts.map +1 -0
  95. package/dist/cli/semanticIntents/parsing.js +29 -0
  96. package/dist/cli/semanticIntents/parsing.js.map +1 -0
  97. package/dist/cli/stepsInput.d.ts +4 -0
  98. package/dist/cli/stepsInput.d.ts.map +1 -0
  99. package/dist/cli/stepsInput.js +23 -0
  100. package/dist/cli/stepsInput.js.map +1 -0
  101. package/dist/cli.d.ts +1 -1
  102. package/dist/cli.d.ts.map +1 -1
  103. package/dist/cli.js +5 -4
  104. package/dist/cli.js.map +1 -1
  105. package/dist/ensureUniqueCounter.d.ts +8 -0
  106. package/dist/ensureUniqueCounter.d.ts.map +1 -0
  107. package/dist/ensureUniqueCounter.js +48 -0
  108. package/dist/ensureUniqueCounter.js.map +1 -0
  109. package/dist/inputFiles.d.ts +9 -0
  110. package/dist/inputFiles.d.ts.map +1 -1
  111. package/dist/inputFiles.js +177 -26
  112. package/dist/inputFiles.js.map +1 -1
  113. package/package.json +6 -4
  114. package/src/Transloadit.ts +3 -3
  115. package/src/alphalib/types/assemblyStatus.ts +4 -1
  116. package/src/alphalib/types/builtinTemplates.ts +24 -0
  117. package/src/alphalib/types/robots/ai-chat.ts +1 -0
  118. package/src/alphalib/types/skillFrontmatter.ts +24 -0
  119. package/src/alphalib/types/template.ts +14 -0
  120. package/src/cli/commands/assemblies.ts +825 -505
  121. package/src/cli/commands/index.ts +6 -3
  122. package/src/cli/commands/templates.ts +6 -17
  123. package/src/cli/fileProcessingOptions.ts +294 -0
  124. package/src/cli/generateIntentDocs.ts +419 -0
  125. package/src/cli/intentCommandSpecs.ts +282 -0
  126. package/src/cli/intentCommands.ts +525 -0
  127. package/src/cli/intentFields.ts +403 -0
  128. package/src/cli/intentInputPolicy.ts +11 -0
  129. package/src/cli/intentRuntime.ts +734 -0
  130. package/src/cli/resultFiles.ts +105 -0
  131. package/src/cli/resultUrls.ts +72 -0
  132. package/src/cli/semanticIntents/imageDescribe.ts +254 -0
  133. package/src/cli/semanticIntents/index.ts +48 -0
  134. package/src/cli/semanticIntents/markdownPdf.ts +120 -0
  135. package/src/cli/semanticIntents/parsing.ts +56 -0
  136. package/src/cli/stepsInput.ts +32 -0
  137. package/src/cli.ts +5 -4
  138. package/src/ensureUniqueCounter.ts +75 -0
  139. package/src/inputFiles.ts +277 -26
@@ -1 +1 @@
1
- {"version":3,"file":"inputFiles.d.ts","sourceRoot":"","sources":["../src/inputFiles.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAG3C,OAAO,KAAK,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEzD,MAAM,MAAM,SAAS,GACjB;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GACD;IACE,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAEL,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,eAAe,CAAA;AAEpD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAA;AAClD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,CAAA;AAErE,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;IACxB,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,oBAAoB,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACpC,OAAO,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;CACpC,CAAA;AA6FD,eAAO,MAAM,iBAAiB,GAC5B,UAAS,wBAA6B,KACrC,OAAO,CAAC,uBAAuB,CAiIjC,CAAA"}
1
+ {"version":3,"file":"inputFiles.d.ts","sourceRoot":"","sources":["../src/inputFiles.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,eAAe,MAAM,kBAAkB,CAAA;AAGnD,OAAO,KAAK,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAGzD,MAAM,MAAM,SAAS,GACjB;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GACD;IACE,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAEL,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,eAAe,CAAA;AAEpD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAA;AAClD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,mBAAmB,CAAA;AAErE,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;IACxB,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,oBAAoB,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACpC,OAAO,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;CACpC,CAAA;AA6ID,eAAO,MAAM,8BAA8B,GACzC,OAAO,MAAM,KACZ,OAAO,CAAC,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC,CAiCnD,CAAA;AAED,wBAAgB,qBAAqB,CACnC,kBAAkB,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAAC,GAC5D,eAAe,CAAC,QAAQ,CAAC,CA4F3B;AAkED,eAAO,MAAM,iBAAiB,GAC5B,UAAS,wBAA6B,KACrC,OAAO,CAAC,uBAAuB,CAmIjC,CAAA"}
@@ -1,10 +1,12 @@
1
+ import * as dnsPromises from 'node:dns/promises';
1
2
  import { createWriteStream } from 'node:fs';
2
3
  import { mkdtemp, rm, writeFile } from 'node:fs/promises';
3
4
  import { isIP } from 'node:net';
4
5
  import { tmpdir } from 'node:os';
5
- import { basename, join } from 'node:path';
6
+ import { basename, join, parse } from 'node:path';
6
7
  import { pipeline } from 'node:stream/promises';
7
8
  import got from 'got';
9
+ import { ensureUniqueCounterValue } from "./ensureUniqueCounter.js";
8
10
  const isRecord = (value) => typeof value === 'object' && value !== null;
9
11
  const ensureUnique = (field, used) => {
10
12
  if (used.has(field)) {
@@ -12,15 +14,22 @@ const ensureUnique = (field, used) => {
12
14
  }
13
15
  used.add(field);
14
16
  };
15
- const ensureUniqueStepName = (baseName, used) => {
16
- let name = baseName;
17
- let counter = 1;
18
- while (used.has(name)) {
19
- name = `${baseName}_${counter}`;
20
- counter += 1;
21
- }
22
- used.add(name);
23
- return name;
17
+ const ensureUniqueStepName = async (baseName, used) => await ensureUniqueCounterValue({
18
+ initialValue: baseName,
19
+ isTaken: (candidate) => used.has(candidate),
20
+ reserve: (candidate) => used.add(candidate),
21
+ nextValue: (counter) => `${baseName}_${counter}`,
22
+ scope: used,
23
+ });
24
+ const ensureUniqueTempFilePath = async (root, filename, used) => {
25
+ const parsedFilename = parse(basename(filename));
26
+ return await ensureUniqueCounterValue({
27
+ initialValue: join(root, parsedFilename.base),
28
+ isTaken: (candidate) => used.has(candidate),
29
+ reserve: (candidate) => used.add(candidate),
30
+ nextValue: (counter) => join(root, `${parsedFilename.name}-${counter}${parsedFilename.ext}`),
31
+ scope: used,
32
+ });
24
33
  };
25
34
  const decodeBase64 = (value) => Buffer.from(value, 'base64');
26
35
  const estimateBase64DecodedBytes = (value) => {
@@ -55,15 +64,43 @@ const findImportStepName = (field, steps) => {
55
64
  return matches[0]?.[0] ?? null;
56
65
  return null;
57
66
  };
58
- const downloadUrlToFile = async (url, filePath) => {
59
- await pipeline(got.stream(url), createWriteStream(filePath));
67
+ const MAX_URL_REDIRECTS = 10;
68
+ const isRedirectStatusCode = (statusCode) => statusCode === 301 ||
69
+ statusCode === 302 ||
70
+ statusCode === 303 ||
71
+ statusCode === 307 ||
72
+ statusCode === 308;
73
+ const ipv4FromMappedIpv6 = (address) => {
74
+ const lowerAddress = address.toLowerCase();
75
+ const mappedPrefix = lowerAddress.startsWith('::ffff:')
76
+ ? '::ffff:'
77
+ : lowerAddress.startsWith('0:0:0:0:0:ffff:')
78
+ ? '0:0:0:0:0:ffff:'
79
+ : null;
80
+ if (mappedPrefix == null) {
81
+ return null;
82
+ }
83
+ const mappedValue = lowerAddress.slice(mappedPrefix.length);
84
+ if (mappedValue.includes('.')) {
85
+ return mappedValue;
86
+ }
87
+ const segments = mappedValue.split(':');
88
+ if (segments.length !== 2) {
89
+ return null;
90
+ }
91
+ const values = segments.map((segment) => Number.parseInt(segment, 16));
92
+ if (values.some((value) => Number.isNaN(value) || value < 0 || value > 0xffff)) {
93
+ return null;
94
+ }
95
+ return values.flatMap((value) => [(value >> 8) & 0xff, value & 0xff]).join('.');
60
96
  };
61
97
  const isPrivateIp = (address) => {
62
- if (address === 'localhost')
98
+ const normalizedAddress = address.startsWith('[') && address.endsWith(']') ? address.slice(1, -1) : address;
99
+ if (normalizedAddress === 'localhost')
63
100
  return true;
64
- const family = isIP(address);
101
+ const family = isIP(normalizedAddress);
65
102
  if (family === 4) {
66
- const parts = address.split('.').map((chunk) => Number(chunk));
103
+ const parts = normalizedAddress.split('.').map((chunk) => Number(chunk));
67
104
  const [a, b] = parts;
68
105
  if (a === 10)
69
106
  return true;
@@ -71,18 +108,30 @@ const isPrivateIp = (address) => {
71
108
  return true;
72
109
  if (a === 0)
73
110
  return true;
111
+ if (a === 100 && b >= 64 && b <= 127)
112
+ return true;
74
113
  if (a === 169 && b === 254)
75
114
  return true;
76
115
  if (a === 172 && b >= 16 && b <= 31)
77
116
  return true;
117
+ if (a === 192 && b === 0 && parts[2] === 0)
118
+ return true;
78
119
  if (a === 192 && b === 168)
79
120
  return true;
121
+ if (a === 198 && (b === 18 || b === 19))
122
+ return true;
80
123
  return false;
81
124
  }
82
125
  if (family === 6) {
83
- const normalized = address.toLowerCase();
84
- if (normalized === '::1')
126
+ const normalized = normalizedAddress.toLowerCase().split('%')[0];
127
+ if (normalized === '::1' || normalized === '0:0:0:0:0:0:0:1')
128
+ return true;
129
+ if (normalized === '::' || normalized === '0:0:0:0:0:0:0:0')
130
+ return true;
131
+ const mappedAddress = ipv4FromMappedIpv6(normalized);
132
+ if (mappedAddress != null && isPrivateIp(mappedAddress)) {
85
133
  return true;
134
+ }
86
135
  if (normalized.startsWith('fe80:'))
87
136
  return true;
88
137
  if (normalized.startsWith('fc') || normalized.startsWith('fd'))
@@ -91,14 +140,114 @@ const isPrivateIp = (address) => {
91
140
  }
92
141
  return false;
93
142
  };
94
- const assertPublicDownloadUrl = (value) => {
143
+ export const resolvePublicDownloadAddresses = async (value) => {
95
144
  const parsed = new URL(value);
145
+ const hostname = parsed.hostname.startsWith('[') && parsed.hostname.endsWith(']')
146
+ ? parsed.hostname.slice(1, -1)
147
+ : parsed.hostname;
96
148
  if (!['http:', 'https:'].includes(parsed.protocol)) {
97
149
  throw new Error(`URL downloads are limited to http/https: ${value}`);
98
150
  }
99
- if (isPrivateIp(parsed.hostname)) {
151
+ if (isPrivateIp(hostname)) {
152
+ throw new Error(`URL downloads are limited to public hosts: ${value}`);
153
+ }
154
+ const literalFamily = isIP(hostname);
155
+ const resolvedAddresses = literalFamily !== 0
156
+ ? [{ address: hostname, family: literalFamily }]
157
+ : await dnsPromises.lookup(hostname, {
158
+ all: true,
159
+ verbatim: true,
160
+ });
161
+ if (resolvedAddresses.some((address) => isPrivateIp(address.address))) {
100
162
  throw new Error(`URL downloads are limited to public hosts: ${value}`);
101
163
  }
164
+ if (resolvedAddresses.length === 0) {
165
+ throw new Error(`Unable to resolve URL hostname: ${value}`);
166
+ }
167
+ return resolvedAddresses.map((address) => ({
168
+ address: address.address,
169
+ family: address.family,
170
+ }));
171
+ };
172
+ export function createPinnedDnsLookup(validatedAddresses) {
173
+ const pinnedAddresses = [...validatedAddresses];
174
+ function pickAddress(family) {
175
+ if (family == null) {
176
+ return pinnedAddresses[0] ?? null;
177
+ }
178
+ return pinnedAddresses.find((address) => address.family === family) ?? null;
179
+ }
180
+ function pinnedDnsLookup(_hostname, familyOrCallback, callback) {
181
+ if (typeof familyOrCallback === 'function') {
182
+ const address = pickAddress();
183
+ if (address == null) {
184
+ familyOrCallback(new Error('No validated addresses available'), '', 4);
185
+ return;
186
+ }
187
+ familyOrCallback(null, address.address, address.family);
188
+ return;
189
+ }
190
+ if (typeof familyOrCallback === 'object' &&
191
+ familyOrCallback != null &&
192
+ 'all' in familyOrCallback) {
193
+ ;
194
+ callback(null, pinnedAddresses.map((address) => ({
195
+ address: address.address,
196
+ family: address.family,
197
+ expires: 0,
198
+ })));
199
+ return;
200
+ }
201
+ const family = typeof familyOrCallback === 'number' ? familyOrCallback : undefined;
202
+ const address = pickAddress(family);
203
+ if (address == null) {
204
+ ;
205
+ callback(new Error('No validated addresses available'), '', family ?? 4);
206
+ return;
207
+ }
208
+ ;
209
+ callback(null, address.address, address.family);
210
+ }
211
+ return pinnedDnsLookup;
212
+ }
213
+ const downloadUrlToFile = async ({ allowPrivateUrls, filePath, url, }) => {
214
+ let currentUrl = url;
215
+ for (let redirectCount = 0; redirectCount <= MAX_URL_REDIRECTS; redirectCount += 1) {
216
+ let validatedAddresses = null;
217
+ if (!allowPrivateUrls) {
218
+ validatedAddresses = await resolvePublicDownloadAddresses(currentUrl);
219
+ }
220
+ const dnsLookup = validatedAddresses == null ? undefined : createPinnedDnsLookup(validatedAddresses);
221
+ const responseStream = got.stream(currentUrl, {
222
+ dnsLookup,
223
+ followRedirect: false,
224
+ retry: { limit: 0 },
225
+ throwHttpErrors: false,
226
+ });
227
+ const response = await new Promise((resolvePromise, reject) => {
228
+ responseStream.once('response', (incomingResponse) => {
229
+ resolvePromise(incomingResponse);
230
+ });
231
+ responseStream.once('error', reject);
232
+ });
233
+ const statusCode = response.statusCode ?? 0;
234
+ if (isRedirectStatusCode(statusCode)) {
235
+ responseStream.destroy();
236
+ const location = response.headers.location;
237
+ if (location == null) {
238
+ throw new Error(`Redirect response missing Location header: ${currentUrl}`);
239
+ }
240
+ currentUrl = new URL(location, currentUrl).toString();
241
+ continue;
242
+ }
243
+ if (statusCode >= 400) {
244
+ responseStream.destroy();
245
+ throw new Error(`Failed to download URL: ${currentUrl} (${statusCode})`);
246
+ }
247
+ await pipeline(responseStream, createWriteStream(filePath));
248
+ return;
249
+ }
250
+ throw new Error(`Too many redirects while downloading URL input: ${url}`);
102
251
  };
103
252
  export const prepareInputFiles = async (options = {}) => {
104
253
  const { inputFiles = [], params = {}, fields, base64Strategy = 'buffer', urlStrategy = 'import', maxBase64Bytes, allowPrivateUrls = true, tempDir, } = options;
@@ -118,6 +267,7 @@ export const prepareInputFiles = async (options = {}) => {
118
267
  const steps = isRecord(nextParams.steps) ? { ...nextParams.steps } : {};
119
268
  const usedSteps = new Set(Object.keys(steps));
120
269
  const usedFields = new Set();
270
+ const usedTempPaths = new Set();
121
271
  const importUrlsByStep = new Map();
122
272
  const importStepNames = Object.keys(steps).filter((name) => isHttpImportStep(steps[name]));
123
273
  const sharedImportStep = importStepNames.length === 1 ? importStepNames[0] : null;
@@ -151,7 +301,7 @@ export const prepareInputFiles = async (options = {}) => {
151
301
  if (base64Strategy === 'tempfile') {
152
302
  const root = await ensureTempRoot();
153
303
  const filename = file.filename ? basename(file.filename) : `${file.field}.bin`;
154
- const filePath = join(root, filename);
304
+ const filePath = await ensureUniqueTempFilePath(root, filename, usedTempPaths);
155
305
  await writeFile(filePath, buffer);
156
306
  files[file.field] = filePath;
157
307
  }
@@ -165,7 +315,7 @@ export const prepareInputFiles = async (options = {}) => {
165
315
  const targetStep = matchedStep ?? sharedImportStep;
166
316
  const shouldImport = urlStrategy === 'import' || (urlStrategy === 'import-if-present' && targetStep);
167
317
  if (shouldImport) {
168
- const stepName = targetStep ?? ensureUniqueStepName(file.field, usedSteps);
318
+ const stepName = targetStep ?? (await ensureUniqueStepName(file.field, usedSteps));
169
319
  const urls = importUrlsByStep.get(stepName) ?? [];
170
320
  urls.push(file.url);
171
321
  importUrlsByStep.set(stepName, urls);
@@ -175,11 +325,12 @@ export const prepareInputFiles = async (options = {}) => {
175
325
  const filename = (file.filename ? basename(file.filename) : null) ??
176
326
  getFilenameFromUrl(file.url) ??
177
327
  `${file.field}.bin`;
178
- const filePath = join(root, filename);
179
- if (!allowPrivateUrls) {
180
- assertPublicDownloadUrl(file.url);
181
- }
182
- await downloadUrlToFile(file.url, filePath);
328
+ const filePath = await ensureUniqueTempFilePath(root, filename, usedTempPaths);
329
+ await downloadUrlToFile({
330
+ allowPrivateUrls,
331
+ filePath,
332
+ url: file.url,
333
+ });
183
334
  files[file.field] = filePath;
184
335
  }
185
336
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inputFiles.js","sourceRoot":"","sources":["../src/inputFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,GAAG,MAAM,KAAK,CAAA;AAgDrB,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAA;AAE7C,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,IAAiB,EAAQ,EAAE;IAC9D,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAA;IACnD,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAE,IAAiB,EAAU,EAAE;IAC3E,IAAI,IAAI,GAAG,QAAQ,CAAA;IACnB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,GAAG,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAA;QAC/B,OAAO,IAAI,CAAC,CAAA;IACd,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACd,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAE5E,MAAM,0BAA0B,GAAG,CAAC,KAAa,EAAU,EAAE;IAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAA;IACtB,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,CAAA;SAClC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,CAAA;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAiB,EAAE;IAC1D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAA;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC/B,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAoC,EAAE,CAC5E,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,cAAc,CAAA;AAEnD,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,KAA8B,EAAiB,EAAE;IAC1F,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;IAClF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IACxD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,QAAgB,EAAiB,EAAE;IAC/E,MAAM,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,OAAe,EAAW,EAAE;IAC/C,IAAI,OAAO,KAAK,WAAW;QAAE,OAAO,IAAI,CAAA;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5B,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9D,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAA;QACzB,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;QAC1B,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAA;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;QACvC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;QACxC,IAAI,UAAU,KAAK,KAAK;YAAE,OAAO,IAAI,CAAA;QACrC,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAA;QAC/C,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QAC3E,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAQ,EAAE;IACtD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAC7B,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,4CAA4C,KAAK,EAAE,CAAC,CAAA;IACtE,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,8CAA8C,KAAK,EAAE,CAAC,CAAA;IACxE,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,UAAoC,EAAE,EACJ,EAAE;IACpC,MAAM,EACJ,UAAU,GAAG,EAAE,EACf,MAAM,GAAG,EAAE,EACX,MAAM,EACN,cAAc,GAAG,QAAQ,EACzB,WAAW,GAAG,QAAQ,EACtB,cAAc,EACd,gBAAgB,GAAG,IAAI,EACvB,OAAO,GACR,GAAG,OAAO,CAAA;IAEX,IAAI,UAAU,GAAyB,EAAE,GAAG,MAAM,EAAE,CAAA;IACpD,MAAM,KAAK,GAA2B,EAAE,CAAA;IACxC,MAAM,OAAO,GAAgC,EAAE,CAAA;IAC/C,MAAM,OAAO,GAA+B,EAAE,CAAA;IAE9C,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,UAAU,GAAG;YACX,GAAG,UAAU;YACb,MAAM,EAAE;gBACN,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,GAAG,MAAM;aACV;SACF,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACvE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IACpC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAoB,CAAA;IACpD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1F,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEjF,IAAI,QAAQ,GAAkB,IAAI,CAAA;IAClC,MAAM,cAAc,GAAG,KAAK,IAAqB,EAAE;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAA;YAC3E,QAAQ,GAAG,IAAI,CAAA;YACf,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAChE,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;IAED,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;YACpC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAA;gBAC7B,SAAQ;YACV,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,SAAS,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBACzD,IAAI,SAAS,GAAG,cAAc,EAAE,CAAC;wBAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,cAAc,SAAS,CAAC,CAAA;oBACpE,CAAC;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACxC,IAAI,cAAc,IAAI,MAAM,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;oBACrD,MAAM,IAAI,KAAK,CAAC,0BAA0B,cAAc,SAAS,CAAC,CAAA;gBACpE,CAAC;gBACD,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;oBAClC,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAA;oBACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,CAAA;oBAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;oBACrC,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;oBACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAA;gBAC9B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;gBAC9B,CAAC;gBACD,SAAQ;YACV,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACxB,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;gBACzD,MAAM,UAAU,GAAG,WAAW,IAAI,gBAAgB,CAAA;gBAClD,MAAM,YAAY,GAChB,WAAW,KAAK,QAAQ,IAAI,CAAC,WAAW,KAAK,mBAAmB,IAAI,UAAU,CAAC,CAAA;gBAEjF,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,QAAQ,GAAG,UAAU,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;oBAC1E,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;oBACjD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBACnB,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;oBACpC,SAAQ;gBACV,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAA;gBACnC,MAAM,QAAQ,GACZ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAChD,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;oBAC5B,GAAG,IAAI,CAAC,KAAK,MAAM,CAAA;gBACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;gBACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACnC,CAAC;gBACD,MAAM,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;gBAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAA;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QAC5C,MAAM,KAAK,CAAA;IACb,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC/D,IAAI,gBAAgB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;gBACjE,KAAK,CAAC,QAAQ,CAAC,GAAG;oBAChB,GAAG,QAAQ;oBACX,KAAK,EAAE,cAAc;oBACrB,GAAG,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;iBACxC,CAAA;YACH,CAAC;QACH,CAAC;QAED,UAAU,GAAG;YACX,GAAG,UAAU;YACb,KAAK;SACN,CAAA;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,KAAK;QACL,OAAO;QACP,OAAO;KACR,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"inputFiles.js","sourceRoot":"","sources":["../src/inputFiles.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transloadit/node",
3
- "version": "4.7.5",
3
+ "version": "4.7.6",
4
4
  "description": "Node.js SDK for Transloadit",
5
5
  "homepage": "https://github.com/transloadit/node-sdk/tree/main/packages/node",
6
6
  "bugs": {
@@ -36,6 +36,7 @@
36
36
  "@aws-sdk/s3-request-presigner": "^3.891.0",
37
37
  "@transloadit/sev-logger": "^0.1.9",
38
38
  "@transloadit/utils": "^4.3.0",
39
+ "cacheable-lookup": "^7.0.0",
39
40
  "clipanion": "^4.0.0-rc.4",
40
41
  "debug": "^4.4.3",
41
42
  "dotenv": "^17.2.3",
@@ -82,13 +83,14 @@
82
83
  "src": "./src"
83
84
  },
84
85
  "scripts": {
85
- "check": "yarn lint:ts && yarn fix && yarn test:unit",
86
+ "check": "yarn sync:intent-docs && yarn lint:ts && yarn fix && yarn test:unit",
87
+ "sync:intent-docs": "node src/cli/generateIntentDocs.ts",
86
88
  "fix:js": "biome check --write .",
87
89
  "lint:ts": "yarn --cwd ../.. tsc:node",
88
90
  "fix:js:unsafe": "biome check --write . --unsafe",
89
91
  "lint:js": "biome check .",
90
- "lint": "npm-run-all --parallel 'lint:js'",
91
- "fix": "npm-run-all --serial 'fix:js'",
92
+ "lint": "yarn lint:js",
93
+ "fix": "yarn fix:js",
92
94
  "lint:deps": "knip --dependencies --no-progress",
93
95
  "fix:deps": "knip --dependencies --no-progress --fix",
94
96
  "prepack": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && rm -f tsconfig.tsbuildinfo tsconfig.build.tsbuildinfo && yarn --cwd ../.. tsc:node",
@@ -68,12 +68,11 @@ export {
68
68
  TimeoutError,
69
69
  UploadError,
70
70
  } from 'got'
71
- export type { AssemblyStatus } from './alphalib/types/assemblyStatus.ts'
72
- export * from './apiTypes.ts'
73
- export { InconsistentResponseError, ApiError }
74
71
  export { extractFieldNamesFromTemplate } from './alphalib/stepParsing.ts'
75
72
  // Builtin templates replace the legacy golden template helpers.
76
73
  export { mergeTemplateContent } from './alphalib/templateMerge.ts'
74
+ export type { AssemblyStatus } from './alphalib/types/assemblyStatus.ts'
75
+ export * from './apiTypes.ts'
77
76
  export type {
78
77
  Base64Strategy,
79
78
  InputFile,
@@ -93,6 +92,7 @@ export type {
93
92
  RobotParamHelp,
94
93
  } from './robots.ts'
95
94
  export { getRobotHelp, isKnownRobot, listRobots } from './robots.ts'
95
+ export { ApiError, InconsistentResponseError }
96
96
 
97
97
  const log = debug('transloadit')
98
98
  const logWarn = debug('transloadit:warn')
@@ -48,6 +48,7 @@ export const assemblyStatusErrCodeSchema = z.enum([
48
48
  'ASSEMBLY_NOTIFICATION_NOT_REPLAYED',
49
49
  'ASSEMBLY_NOTIFICATIONS_LIST_ERROR',
50
50
  'ASSEMBLY_NO_NOTIFY_URL',
51
+ 'ASSEMBLY_PLAN_FILE_SIZE_LIMIT_EXCEEDED',
51
52
  'ASSEMBLY_ROBOT_MISSING',
52
53
  'ASSEMBLY_SATURATED',
53
54
  'ASSEMBLY_STATS_ERROR',
@@ -122,6 +123,7 @@ export const assemblyStatusErrCodeSchema = z.enum([
122
123
  'INVALID_ASSEMBLY_STATUS',
123
124
  'INVALID_AUTH_EXPIRES_PARAMETER',
124
125
  'INVALID_AUTH_KEY_PARAMETER',
126
+ 'INVALID_AUTH_MAX_NUMBER_OF_FILES_PARAMETER',
125
127
  'INVALID_AUTH_MAX_SIZE_PARAMETER',
126
128
  'INVALID_AUTH_REFERER_PARAMETER',
127
129
  'INVALID_FILE_META_DATA',
@@ -133,6 +135,7 @@ export const assemblyStatusErrCodeSchema = z.enum([
133
135
  'INVALID_STEP_NAME',
134
136
  'INVALID_TEMPLATE_FIELD',
135
137
  'INVALID_UPLOAD_HANDLE_STEP_NAME',
138
+ 'MAX_NUMBER_OF_FILES_EXCEEDED',
136
139
  'MAX_SIZE_EXCEEDED',
137
140
  'NO_AUTH_EXPIRES_PARAMETER',
138
141
  'NO_AUTH_KEY_PARAMETER',
@@ -533,7 +536,7 @@ export const assemblyStatusBaseSchema = z.object({
533
536
  update_stream_url: z.string().optional(),
534
537
  tus_url: z.string().optional(),
535
538
  bytes_received: z.number().optional(),
536
- bytes_expected: z.number().nullable().optional(),
539
+ bytes_expected: z.number().optional(),
537
540
  upload_duration: z.number().optional(),
538
541
  client_agent: z.string().nullable().optional(),
539
542
  client_ip: z.string().nullable().optional(),
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod'
2
+
3
+ export const builtinTemplateDocSchema = z
4
+ .object({
5
+ id: z.string(),
6
+ base: z.string(),
7
+ version: z.string(),
8
+ description: z.string(),
9
+ input: z.enum(['upload', 'remote_url', 'none']),
10
+ required_fields: z.array(z.string()),
11
+ optional_fields: z.array(
12
+ z
13
+ .object({
14
+ name: z.string(),
15
+ default: z.string().optional(),
16
+ })
17
+ .strict(),
18
+ ),
19
+ })
20
+ .strict()
21
+
22
+ export const builtinTemplateDocsSchema = z.array(builtinTemplateDocSchema)
23
+
24
+ export type BuiltinTemplateDoc = z.infer<typeof builtinTemplateDocSchema>
@@ -148,6 +148,7 @@ export const meta: RobotMetaInput = {
148
148
  export const MODEL_CAPABILITIES: Record<string, { pdf: boolean; image: boolean }> = {
149
149
  'anthropic/claude-4-sonnet-20250514': { pdf: true, image: true },
150
150
  'anthropic/claude-4-opus-20250514': { pdf: true, image: true },
151
+ 'anthropic/claude-sonnet-4-6': { pdf: true, image: true },
151
152
  'anthropic/claude-sonnet-4-5': { pdf: true, image: true },
152
153
  'anthropic/claude-opus-4-5': { pdf: true, image: true },
153
154
  'anthropic/claude-opus-4-6': { pdf: true, image: true },
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod'
2
+
3
+ /**
4
+ * Zod schema for Agent Skills SKILL.md frontmatter.
5
+ * @see https://agentskills.io/specification
6
+ */
7
+ export const skillFrontmatterSchema = z.object({
8
+ name: z
9
+ .string()
10
+ .min(1)
11
+ .max(64)
12
+ .regex(
13
+ /^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/,
14
+ 'Lowercase alphanumeric and hyphens only; must not start/end with hyphen',
15
+ )
16
+ .refine((v) => !v.includes('--'), 'Must not contain consecutive hyphens'),
17
+ description: z.string().min(1).max(1024),
18
+ license: z.string().optional(),
19
+ compatibility: z.string().max(500).optional(),
20
+ metadata: z.record(z.string(), z.string()).optional(),
21
+ 'allowed-tools': z.string().optional(),
22
+ })
23
+
24
+ export type SkillFrontmatter = z.infer<typeof skillFrontmatterSchema>
@@ -67,6 +67,14 @@ export const assemblyAuthInstructionsSchema = z
67
67
  .optional()
68
68
  .describe('ISO 8601 expiration timestamp for signature authentication'),
69
69
  max_size: z.number().optional().describe('Maximum allowed upload size in bytes'),
70
+ max_number_of_files: z
71
+ .number()
72
+ .int()
73
+ .min(1)
74
+ .optional()
75
+ .describe(
76
+ 'Maximum number of input files allowed per Assembly. If the number of uploaded or imported files exceeds this limit, the Assembly will be stopped with an error. This is useful for preventing abuse when Signature Authentication credentials are exposed.',
77
+ ),
70
78
  nonce: z.string().optional().describe('Unique, random nonce for this request'),
71
79
  referer: z
72
80
  .string()
@@ -223,6 +231,12 @@ export const templateListParamsSchema = z
223
231
  .describe(
224
232
  'Specifies keywords to be matched in the Assembly Status. The Assembly fields checked include the `id`, `redirect_url`, `fields`, and `notify_url`, as well as error messages and files used.',
225
233
  ),
234
+ include_builtin: z
235
+ .enum(['none', 'latest', 'all', 'exclusively-latest', 'exclusively-all'])
236
+ .optional()
237
+ .describe(
238
+ 'Include Builtin Templates in the results. Use `latest` (recommended) or `all`. Prefix with `exclusively-` to return only Builtin Templates.',
239
+ ),
226
240
  })
227
241
  .strict()
228
242