transloadit 4.11.1 → 4.13.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 (140) hide show
  1. package/README.md +231 -23
  2. package/dist/Transloadit.d.ts +55 -1
  3. package/dist/Transloadit.d.ts.map +1 -1
  4. package/dist/Transloadit.js +143 -2
  5. package/dist/Transloadit.js.map +1 -1
  6. package/dist/alphalib/types/assemblyStatus.d.ts +574 -198
  7. package/dist/alphalib/types/assemblyStatus.d.ts.map +1 -1
  8. package/dist/alphalib/types/assemblyStatus.js +17 -0
  9. package/dist/alphalib/types/assemblyStatus.js.map +1 -1
  10. package/dist/alphalib/types/robots/_index.d.ts +205 -93
  11. package/dist/alphalib/types/robots/_index.d.ts.map +1 -1
  12. package/dist/alphalib/types/robots/_index.js +8 -0
  13. package/dist/alphalib/types/robots/_index.js.map +1 -1
  14. package/dist/alphalib/types/robots/_instructions-primitives.d.ts +4 -4
  15. package/dist/alphalib/types/robots/_instructions-primitives.d.ts.map +1 -1
  16. package/dist/alphalib/types/robots/_instructions-primitives.js +2 -0
  17. package/dist/alphalib/types/robots/_instructions-primitives.js.map +1 -1
  18. package/dist/alphalib/types/robots/ai-chat.d.ts +2 -1
  19. package/dist/alphalib/types/robots/ai-chat.d.ts.map +1 -1
  20. package/dist/alphalib/types/robots/ai-chat.js +6 -5
  21. package/dist/alphalib/types/robots/ai-chat.js.map +1 -1
  22. package/dist/alphalib/types/robots/file-serve.d.ts +12 -0
  23. package/dist/alphalib/types/robots/file-serve.d.ts.map +1 -1
  24. package/dist/alphalib/types/robots/file-serve.js +9 -3
  25. package/dist/alphalib/types/robots/file-serve.js.map +1 -1
  26. package/dist/alphalib/types/robots/transloadit-import.d.ts +195 -0
  27. package/dist/alphalib/types/robots/transloadit-import.d.ts.map +1 -0
  28. package/dist/alphalib/types/robots/transloadit-import.js +108 -0
  29. package/dist/alphalib/types/robots/transloadit-import.js.map +1 -0
  30. package/dist/alphalib/types/robots/transloadit-store.d.ts +441 -0
  31. package/dist/alphalib/types/robots/transloadit-store.d.ts.map +1 -0
  32. package/dist/alphalib/types/robots/transloadit-store.js +69 -0
  33. package/dist/alphalib/types/robots/transloadit-store.js.map +1 -0
  34. package/dist/alphalib/types/robots/video-ondemand.d.ts +8 -8
  35. package/dist/alphalib/types/storageAsset.d.ts +226 -0
  36. package/dist/alphalib/types/storageAsset.d.ts.map +1 -0
  37. package/dist/alphalib/types/storageAsset.js +67 -0
  38. package/dist/alphalib/types/storageAsset.js.map +1 -0
  39. package/dist/alphalib/types/template.d.ts.map +1 -1
  40. package/dist/alphalib/types/template.js +5 -2
  41. package/dist/alphalib/types/template.js.map +1 -1
  42. package/dist/alphalib/types/templateCredential.d.ts +2 -2
  43. package/dist/cli/commands/BaseCommand.d.ts +3 -1
  44. package/dist/cli/commands/BaseCommand.d.ts.map +1 -1
  45. package/dist/cli/commands/BaseCommand.js +3 -2
  46. package/dist/cli/commands/BaseCommand.js.map +1 -1
  47. package/dist/cli/commands/assemblies.d.ts.map +1 -1
  48. package/dist/cli/commands/assemblies.js +9 -4
  49. package/dist/cli/commands/assemblies.js.map +1 -1
  50. package/dist/cli/commands/auth.d.ts +6 -0
  51. package/dist/cli/commands/auth.d.ts.map +1 -1
  52. package/dist/cli/commands/auth.js +21 -2
  53. package/dist/cli/commands/auth.js.map +1 -1
  54. package/dist/cli/commands/image.d.ts +15 -0
  55. package/dist/cli/commands/image.d.ts.map +1 -0
  56. package/dist/cli/commands/image.js +234 -0
  57. package/dist/cli/commands/image.js.map +1 -0
  58. package/dist/cli/commands/index.d.ts.map +1 -1
  59. package/dist/cli/commands/index.js +15 -1
  60. package/dist/cli/commands/index.js.map +1 -1
  61. package/dist/cli/commands/login.d.ts +24 -0
  62. package/dist/cli/commands/login.d.ts.map +1 -0
  63. package/dist/cli/commands/login.js +275 -0
  64. package/dist/cli/commands/login.js.map +1 -0
  65. package/dist/cli/commands/storage.d.ts +58 -0
  66. package/dist/cli/commands/storage.d.ts.map +1 -0
  67. package/dist/cli/commands/storage.js +589 -0
  68. package/dist/cli/commands/storage.js.map +1 -0
  69. package/dist/cli/commands/templates.d.ts.map +1 -1
  70. package/dist/cli/commands/templates.js +10 -6
  71. package/dist/cli/commands/templates.js.map +1 -1
  72. package/dist/cli/deviceLogin.d.ts +11 -0
  73. package/dist/cli/deviceLogin.d.ts.map +1 -0
  74. package/dist/cli/deviceLogin.js +187 -0
  75. package/dist/cli/deviceLogin.js.map +1 -0
  76. package/dist/cli/helpers.d.ts +23 -1
  77. package/dist/cli/helpers.d.ts.map +1 -1
  78. package/dist/cli/helpers.js +159 -25
  79. package/dist/cli/helpers.js.map +1 -1
  80. package/dist/cli/secretInput.d.ts +3 -0
  81. package/dist/cli/secretInput.d.ts.map +1 -0
  82. package/dist/cli/secretInput.js +11 -0
  83. package/dist/cli/secretInput.js.map +1 -0
  84. package/dist/cli/storageCatalog.d.ts +19 -0
  85. package/dist/cli/storageCatalog.d.ts.map +1 -0
  86. package/dist/cli/storageCatalog.js +129 -0
  87. package/dist/cli/storageCatalog.js.map +1 -0
  88. package/dist/cli/storagePublic.d.ts +3 -0
  89. package/dist/cli/storagePublic.d.ts.map +1 -0
  90. package/dist/cli/storagePublic.js +15 -0
  91. package/dist/cli/storagePublic.js.map +1 -0
  92. package/dist/cli/storageReceipts.d.ts +67 -0
  93. package/dist/cli/storageReceipts.d.ts.map +1 -0
  94. package/dist/cli/storageReceipts.js +242 -0
  95. package/dist/cli/storageReceipts.js.map +1 -0
  96. package/dist/cli/storageSnippets.d.ts +11 -0
  97. package/dist/cli/storageSnippets.d.ts.map +1 -0
  98. package/dist/cli/storageSnippets.js +89 -0
  99. package/dist/cli/storageSnippets.js.map +1 -0
  100. package/dist/storageImage.d.ts +40 -0
  101. package/dist/storageImage.d.ts.map +1 -0
  102. package/dist/storageImage.js +181 -0
  103. package/dist/storageImage.js.map +1 -0
  104. package/dist/storagePublicPrefixes.d.ts +62 -0
  105. package/dist/storagePublicPrefixes.d.ts.map +1 -0
  106. package/dist/storagePublicPrefixes.js +35 -0
  107. package/dist/storagePublicPrefixes.js.map +1 -0
  108. package/dist/storageResults.d.ts +31 -0
  109. package/dist/storageResults.d.ts.map +1 -0
  110. package/dist/storageResults.js +79 -0
  111. package/dist/storageResults.js.map +1 -0
  112. package/package.json +8 -3
  113. package/src/Transloadit.ts +251 -4
  114. package/src/alphalib/types/assemblyStatus.ts +17 -0
  115. package/src/alphalib/types/robots/_index.ts +28 -0
  116. package/src/alphalib/types/robots/_instructions-primitives.ts +2 -0
  117. package/src/alphalib/types/robots/ai-chat.ts +6 -5
  118. package/src/alphalib/types/robots/file-serve.ts +11 -3
  119. package/src/alphalib/types/robots/transloadit-import.ts +154 -0
  120. package/src/alphalib/types/robots/transloadit-store.ts +98 -0
  121. package/src/alphalib/types/storageAsset.ts +88 -0
  122. package/src/alphalib/types/template.ts +3 -0
  123. package/src/cli/commands/BaseCommand.ts +4 -2
  124. package/src/cli/commands/assemblies.ts +13 -5
  125. package/src/cli/commands/auth.ts +26 -3
  126. package/src/cli/commands/image.ts +282 -0
  127. package/src/cli/commands/index.ts +27 -1
  128. package/src/cli/commands/login.ts +334 -0
  129. package/src/cli/commands/storage.ts +733 -0
  130. package/src/cli/commands/templates.ts +14 -7
  131. package/src/cli/deviceLogin.ts +226 -0
  132. package/src/cli/helpers.ts +204 -27
  133. package/src/cli/secretInput.ts +12 -0
  134. package/src/cli/storageCatalog.ts +192 -0
  135. package/src/cli/storagePublic.ts +15 -0
  136. package/src/cli/storageReceipts.ts +307 -0
  137. package/src/cli/storageSnippets.ts +96 -0
  138. package/src/storageImage.ts +266 -0
  139. package/src/storagePublicPrefixes.ts +39 -0
  140. package/src/storageResults.ts +119 -0
@@ -1,9 +1,12 @@
1
1
  import fs from 'node:fs';
2
2
  import fsp from 'node:fs/promises';
3
- import { homedir } from 'node:os';
3
+ import { homedir, userInfo } from 'node:os';
4
4
  import path from 'node:path';
5
5
  import { parse as parseDotenv } from 'dotenv';
6
+ import { z } from 'zod';
6
7
  import { isAPIError } from "./types.js";
8
+ /** API signing algorithms supported by CLI credentials and device authorization. */
9
+ export const cliSignatureAlgorithmSchema = z.enum(['sha1', 'sha256', 'sha384', 'sha512']);
7
10
  let loadedProjectDotenvPath;
8
11
  let projectDotenvInjectedValues;
9
12
  let projectDotenvPreviousValues;
@@ -12,12 +15,33 @@ function normalizeEnvValue(value) {
12
15
  const trimmed = value?.trim();
13
16
  return trimmed ? trimmed : undefined;
14
17
  }
15
- function getConfiguredCredentialsFilePath() {
16
- const configuredPath = normalizeEnvValue(process.env.TRANSLOADIT_CREDENTIALS_FILE);
18
+ function credentialHomeDirectory() {
19
+ // Node trusts HOME verbatim; an empty or relative default must never put secrets in a repo.
20
+ try {
21
+ const home = homedir();
22
+ if (path.isAbsolute(home))
23
+ return home;
24
+ const fallback = userInfo().homedir;
25
+ if (path.isAbsolute(fallback))
26
+ return fallback;
27
+ }
28
+ catch (error) {
29
+ throw new Error('Cannot determine a safe home directory. Set TRANSLOADIT_CREDENTIALS_FILE to an explicit path.', { cause: error });
30
+ }
31
+ throw new Error('Cannot determine a safe home directory. Set TRANSLOADIT_CREDENTIALS_FILE to an explicit path.');
32
+ }
33
+ /** Login and its env scaffold accept only a shell path override; ordinary reads retain merged lookup. */
34
+ export function getConfiguredCredentialsFilePath(source = 'merged') {
35
+ const values = source === 'shell' ? getShellEnvValues() : process.env;
36
+ const configuredPath = normalizeEnvValue(values.TRANSLOADIT_CREDENTIALS_FILE);
17
37
  if (configuredPath != null) {
18
38
  return path.resolve(configuredPath);
19
39
  }
20
- return path.join(homedir(), '.transloadit', 'credentials');
40
+ // HOME/USERPROFILE from project dotenv must not redirect the login's default destination.
41
+ const shellHome = source === 'shell' && loadedProjectDotenvPath === getProjectDotenvPath()
42
+ ? shellEnvBeforeProjectDotenv?.homeDirectory
43
+ : undefined;
44
+ return path.join(shellHome ?? credentialHomeDirectory(), '.transloadit', 'credentials');
21
45
  }
22
46
  function getProjectDotenvPath() {
23
47
  return path.resolve(process.cwd(), '.env');
@@ -75,7 +99,14 @@ export function loadProjectDotenvIntoProcessEnv() {
75
99
  const projectDotenvPath = getProjectDotenvPath();
76
100
  if (loadedProjectDotenvPath !== projectDotenvPath) {
77
101
  restoreProjectDotenvFromProcessEnv();
78
- shellEnvBeforeProjectDotenv = { ...process.env };
102
+ shellEnvBeforeProjectDotenv = {
103
+ values: { ...process.env },
104
+ // An explicit file makes OS home discovery unnecessary (e.g. an unmapped container UID).
105
+ // Otherwise capture it before dotenv can replace HOME and redirect a newly saved login.
106
+ homeDirectory: normalizeEnvValue(process.env.TRANSLOADIT_CREDENTIALS_FILE) == null
107
+ ? credentialHomeDirectory()
108
+ : undefined,
109
+ };
79
110
  loadedProjectDotenvPath = projectDotenvPath;
80
111
  }
81
112
  const projectDotenvResult = readEnvFile(projectDotenvPath);
@@ -106,7 +137,7 @@ export function loadProjectDotenvIntoProcessEnv() {
106
137
  }
107
138
  function getShellEnvValues() {
108
139
  if (loadedProjectDotenvPath === getProjectDotenvPath() && shellEnvBeforeProjectDotenv != null) {
109
- return shellEnvBeforeProjectDotenv;
140
+ return shellEnvBeforeProjectDotenv.values;
110
141
  }
111
142
  return { ...process.env };
112
143
  }
@@ -172,7 +203,16 @@ function getSourceCredentials(source) {
172
203
  const authSecret = getSourceValue(source, ['TRANSLOADIT_SECRET', 'TRANSLOADIT_AUTH_SECRET']);
173
204
  if (authKey == null || authSecret == null)
174
205
  return undefined;
175
- return { authKey, authSecret };
206
+ const algorithm = cliSignatureAlgorithmSchema
207
+ .optional()
208
+ .safeParse(getSourceValue(source, ['TRANSLOADIT_SIGNATURE_ALGORITHM']));
209
+ if (!algorithm.success)
210
+ return { loadError: 'Unsupported TRANSLOADIT_SIGNATURE_ALGORITHM in CLI credentials' };
211
+ return {
212
+ authKey,
213
+ authSecret,
214
+ ...(algorithm.data === undefined ? {} : { signatureAlgorithm: algorithm.data }),
215
+ };
176
216
  }
177
217
  function getSourceAuthToken(source) {
178
218
  const authToken = getSourceValue(source, ['TRANSLOADIT_AUTH_TOKEN']);
@@ -188,45 +228,139 @@ function resolveEndpointForSource(source, shellEnvSource) {
188
228
  return undefined;
189
229
  return getSourceValue(source, ['TRANSLOADIT_ENDPOINT']);
190
230
  }
191
- export function resolveCliConfig() {
231
+ function isSavedLoginSource(source) {
232
+ return (source.name === 'credentialsFile' &&
233
+ getConfiguredCredentialsFilePath() === getConfiguredCredentialsFilePath('shell'));
234
+ }
235
+ function hasVerifiedWorkspace(source, shell) {
236
+ // A project-selected file or changed endpoint cannot inherit the login-time ownership proof.
237
+ return (isSavedLoginSource(source) &&
238
+ getSourceValue(source, ['TRANSLOADIT_WORKSPACE_VERIFIED']) === 'true' &&
239
+ resolveEndpointForSource(source, shell) === getSourceValue(source, ['TRANSLOADIT_ENDPOINT']));
240
+ }
241
+ function credentialSourceName(source, shell, auth) {
242
+ if (source.name === 'credentialsFile')
243
+ return isSavedLoginSource(source) ? 'saved login' : 'project-selected credentials file';
244
+ const fields = 'authToken' in auth
245
+ ? [['TRANSLOADIT_AUTH_TOKEN']]
246
+ : [
247
+ ['TRANSLOADIT_KEY', 'TRANSLOADIT_AUTH_KEY'],
248
+ ['TRANSLOADIT_SECRET', 'TRANSLOADIT_AUTH_SECRET'],
249
+ ];
250
+ const fromShell = fields.filter((aliases) => {
251
+ const name = aliases.find((name) => normalizeEnvValue(source.values[name]) !== undefined);
252
+ return (name !== undefined &&
253
+ normalizeEnvValue(shell.values[name]) === normalizeEnvValue(source.values[name]));
254
+ }).length;
255
+ if (fromShell === fields.length)
256
+ return 'shell environment';
257
+ return fromShell === 0 ? 'project .env' : 'shell environment + project .env';
258
+ }
259
+ /** Quotes a value in the CLI's copyable POSIX-shell commands without expanding user input. */
260
+ export function quoteCliArgument(value) {
261
+ return /^[a-zA-Z0-9_./-]+$/.test(value) ? value : `'${value.replaceAll("'", "'\\''")}'`;
262
+ }
263
+ /** Names credential overrides without exposing values or claiming verified ownership. */
264
+ export function noticeCliCredentialSource(config, output, kind = 'auth') {
265
+ const source = kind === 'auth' ? config.authSource : config.credentialsSource;
266
+ if (source === undefined || source === 'saved login')
267
+ return;
268
+ const workspace = kind === 'auth' ? config.authWorkspace : config.credentialsWorkspace;
269
+ const label = workspace !== undefined && /^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$/.test(workspace)
270
+ ? `workspace declared as ${workspace}`
271
+ : 'workspace not declared';
272
+ output?.notice(`Credentials: ${source} (${label}). This override takes precedence over the saved login.`);
273
+ }
274
+ /** Resolve one already-read saved credential snapshot, without consulting the environment again. */
275
+ export function parseCliLoginSnapshot(contents) {
276
+ return resolveLoginSource({ name: 'credentialsFile', values: parseDotenv(contents) });
277
+ }
278
+ function resolveLoginSource(source) {
279
+ const credentials = getSourceCredentials(source);
280
+ if (credentials !== undefined && 'loadError' in credentials)
281
+ return credentials;
282
+ const endpoint = getSourceValue(source, ['TRANSLOADIT_ENDPOINT']);
283
+ return {
284
+ auth: credentials,
285
+ authSource: 'saved login',
286
+ authWorkspace: getSourceValue(source, ['TRANSLOADIT_WORKSPACE']),
287
+ authWorkspaceVerified: getSourceValue(source, ['TRANSLOADIT_WORKSPACE_VERIFIED']) === 'true',
288
+ credentials,
289
+ credentialsSource: 'saved login',
290
+ credentialsWorkspace: getSourceValue(source, ['TRANSLOADIT_WORKSPACE']),
291
+ credentialsWorkspaceVerified: getSourceValue(source, ['TRANSLOADIT_WORKSPACE_VERIFIED']) === 'true',
292
+ credentialsAuthKeyId: getSourceValue(source, ['TRANSLOADIT_AUTH_KEY_ID']),
293
+ credentialsDescription: getSourceValue(source, ['TRANSLOADIT_AUTH_KEY_DESCRIPTION']),
294
+ credentialsLoginMethod: getSourceValue(source, ['TRANSLOADIT_LOGIN_METHOD']),
295
+ credentialsEndpoint: endpoint,
296
+ endpoint,
297
+ };
298
+ }
299
+ export function resolveCliConfig(source = 'all') {
300
+ if (source === 'login') {
301
+ // Keep login's key, workspace, algorithm and endpoint together, independent of project dotenv.
302
+ const saved = readEnvFile(getConfiguredCredentialsFilePath('shell'));
303
+ if (!saved?.ok)
304
+ return saved === null ? {} : { loadError: saved.error };
305
+ return resolveLoginSource(saved.source);
306
+ }
192
307
  const { loadError, shellEnvSource, sources } = loadCliEnvSources();
193
308
  let auth;
194
309
  let authSource;
195
310
  let credentials;
196
311
  let credentialsSource;
312
+ let credentialsError;
197
313
  for (const source of sources) {
198
- if (auth == null) {
199
- const authToken = getSourceAuthToken(source);
200
- if (authToken != null) {
201
- auth = authToken;
202
- authSource = source;
203
- }
204
- else {
205
- const sourceCredentials = getSourceCredentials(source);
206
- if (sourceCredentials != null) {
207
- auth = sourceCredentials;
208
- authSource = source;
209
- }
210
- }
314
+ if (auth != null && credentials != null)
315
+ break;
316
+ const authToken = getSourceAuthToken(source);
317
+ if (auth == null && authToken != null) {
318
+ auth = authToken;
319
+ authSource = source;
320
+ }
321
+ const sourceCredentials = getSourceCredentials(source);
322
+ if (sourceCredentials !== undefined && 'loadError' in sourceCredentials) {
323
+ // Signing failure must not discard a valid bearer token or silently choose a different key.
324
+ credentialsError = sourceCredentials.loadError;
325
+ break;
326
+ }
327
+ if (auth == null && sourceCredentials != null) {
328
+ auth = sourceCredentials;
329
+ authSource = source;
211
330
  }
212
331
  if (credentials != null)
213
332
  continue;
214
- const sourceCredentials = getSourceCredentials(source);
215
333
  if (sourceCredentials != null) {
216
334
  credentials = sourceCredentials;
217
335
  credentialsSource = source;
218
336
  }
219
337
  }
220
338
  return {
221
- ...(auth != null ? { auth } : {}),
339
+ ...(auth != null && authSource != null
340
+ ? {
341
+ auth,
342
+ authSource: credentialSourceName(authSource, shellEnvSource, auth),
343
+ authWorkspace: getSourceValue(authSource, ['TRANSLOADIT_WORKSPACE']),
344
+ authWorkspaceVerified: hasVerifiedWorkspace(authSource, shellEnvSource),
345
+ }
346
+ : {}),
222
347
  ...(credentials != null ? { credentials } : {}),
223
348
  ...(authSource != null
224
349
  ? { endpoint: resolveEndpointForSource(authSource, shellEnvSource) }
225
350
  : {}),
226
351
  ...(credentialsSource != null
227
- ? { credentialsEndpoint: resolveEndpointForSource(credentialsSource, shellEnvSource) }
352
+ ? {
353
+ credentialsEndpoint: resolveEndpointForSource(credentialsSource, shellEnvSource),
354
+ credentialsSource: credentials === undefined
355
+ ? undefined
356
+ : credentialSourceName(credentialsSource, shellEnvSource, credentials),
357
+ credentialsWorkspace: getSourceValue(credentialsSource, ['TRANSLOADIT_WORKSPACE']),
358
+ credentialsWorkspaceVerified: hasVerifiedWorkspace(credentialsSource, shellEnvSource),
359
+ }
360
+ : {}),
361
+ ...(credentialsError != null || loadError != null
362
+ ? { loadError: credentialsError ?? loadError }
228
363
  : {}),
229
- ...(loadError != null ? { loadError } : {}),
230
364
  };
231
365
  }
232
366
  export function requireCliCredentials() {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Preserve opaque punctuation and literal escapes when serializing a CLI credential file. */
2
+ export declare function quoteCredential(value: string): string;
3
+ //# sourceMappingURL=secretInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secretInput.d.ts","sourceRoot":"","sources":["../../src/cli/secretInput.ts"],"names":[],"mappings":"AAEA,8FAA8F;AAC9F,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQrD"}
@@ -0,0 +1,11 @@
1
+ import { parse } from 'dotenv';
2
+ /** Preserve opaque punctuation and literal escapes when serializing a CLI credential file. */
3
+ export function quoteCredential(value) {
4
+ for (const quote of ["'", '"', '`']) {
5
+ const quoted = `${quote}${value}${quote}`;
6
+ if (parse(`value=${quoted}`).value === value)
7
+ return quoted;
8
+ }
9
+ throw new Error('This credential cannot be represented safely in a dotenv file; nothing was saved');
10
+ }
11
+ //# sourceMappingURL=secretInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secretInput.js","sourceRoot":"","sources":["../../src/cli/secretInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAE9B,8FAA8F;AAC9F,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,CAAA;QACzC,IAAI,KAAK,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,MAAM,CAAA;IAC7D,CAAC;IACD,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { StoredAsset } from '../alphalib/types/storageAsset.ts';
2
+ import type { ResolvedCliConfig } from './helpers.ts';
3
+ import type { IOutputCtl } from './OutputCtl.ts';
4
+ import { Transloadit } from '../Transloadit.ts';
5
+ /** Keeps Workspace discovery, credentials and bounded catalog reads on the same trusted origin. */
6
+ export declare function withStorageCatalog<T>(options: {
7
+ endpoint?: string;
8
+ workspace?: string;
9
+ projectWorkspace?: string;
10
+ signal?: AbortSignal;
11
+ }, operation: (client: Transloadit, workspace: string, endpoint: string) => Promise<T>, failure: string, output?: Pick<IOutputCtl, 'notice'>, config?: ResolvedCliConfig): Promise<T>;
12
+ /** Completes every bounded page, refusing wrong-Workspace, duplicate or out-of-prefix metadata. */
13
+ export declare function listStorageAssets(client: Transloadit, workspace: string, prefix: string, signal?: AbortSignal): Promise<StoredAsset[]>;
14
+ /** Verify writes against the selected key, not an unverified Workspace label in shell dotenv. */
15
+ export declare function resolveStorageWorkspace(options: {
16
+ endpoint?: string;
17
+ workspace?: string;
18
+ }, config: ResolvedCliConfig, projectWorkspace?: string, signal?: AbortSignal): Promise<string>;
19
+ //# sourceMappingURL=storageCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storageCatalog.d.ts","sourceRoot":"","sources":["../../src/cli/storageCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAMhD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAc/C,mGAAmG;AACnG,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,OAAO,EAAE;IACP,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,EACD,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EACnF,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EACnC,MAAM,GAAE,iBAAsC,GAC7C,OAAO,CAAC,CAAC,CAAC,CAyDZ;AAiBD,mGAAmG;AACnG,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,EAAE,CAAC,CAyCxB;AAED,iGAAiG;AACjG,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAClD,MAAM,EAAE,iBAAiB,EACzB,gBAAgB,CAAC,EAAE,MAAM,EACzB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CA4BjB"}
@@ -0,0 +1,129 @@
1
+ import { RequestError } from 'got';
2
+ import { ApiError } from "../ApiError.js";
3
+ import { damPathMaxCodePoints } from "../alphalib/types/storageAsset.js";
4
+ import { Transloadit } from "../Transloadit.js";
5
+ import { buildMissingCredentialsMessage, noticeCliCredentialSource, resolveCliConfig, } from "./helpers.js";
6
+ import { assertStorageWorkspace } from "./storageReceipts.js";
7
+ function readDeadline(signal) {
8
+ return signal === undefined
9
+ ? AbortSignal.timeout(60_000)
10
+ : AbortSignal.any([signal, AbortSignal.timeout(60_000)]);
11
+ }
12
+ /** Keeps Workspace discovery, credentials and bounded catalog reads on the same trusted origin. */
13
+ export async function withStorageCatalog(options, operation, failure, output, config = resolveCliConfig()) {
14
+ if (config.credentials === undefined)
15
+ throw new Error(config.loadError ?? buildMissingCredentialsMessage());
16
+ noticeCliCredentialSource(config, output, 'credentials');
17
+ const endpoint = new URL(options.endpoint ?? config.credentialsEndpoint ?? 'https://api2.transloadit.com');
18
+ if (!['http:', 'https:'].includes(endpoint.protocol) ||
19
+ endpoint.username ||
20
+ endpoint.password ||
21
+ endpoint.search ||
22
+ endpoint.hash ||
23
+ endpoint.pathname !== '/') {
24
+ throw new Error('Storage endpoint must be an HTTP(S) API origin without credentials, query or fragment');
25
+ }
26
+ const client = new Transloadit({
27
+ ...config.credentials,
28
+ endpoint: endpoint.origin,
29
+ maxRetries: 0,
30
+ });
31
+ try {
32
+ const { workspace } = await client.listStoredAssets({
33
+ limit: 1,
34
+ signal: readDeadline(options.signal),
35
+ });
36
+ assertStorageWorkspace(workspace, options.projectWorkspace, options.workspace);
37
+ options.signal?.throwIfAborted();
38
+ return await operation(client, workspace, endpoint.origin);
39
+ }
40
+ catch (error) {
41
+ options.signal?.throwIfAborted();
42
+ if (error instanceof ApiError) {
43
+ const status = error.cause?.response?.statusCode;
44
+ if (error.code === 'DAM_INVALID_REQUEST' || error.code === 'DAM_INVALID_INPUT')
45
+ throw new Error(`${failure} received an invalid request. Check the Storage prefix and paging options.`, { cause: error });
46
+ throw new Error(`${failure} failed${status === undefined ? '' : ` (HTTP ${status})`}. Check the Storage API at ${endpoint.origin} and the Auth Key dam:read or dam:write scope.`, { cause: error });
47
+ }
48
+ if (error instanceof RequestError ||
49
+ (error instanceof Error && ['TimeoutError', 'AbortError'].includes(error.name))) {
50
+ throw new Error(`${failure} timed out or lost its connection. Check the Storage endpoint and retry.`, { cause: error });
51
+ }
52
+ throw error;
53
+ }
54
+ }
55
+ /** Catalog prefixes allow ordinary filenames that the image renderer intentionally restricts. */
56
+ function validateCatalogPrefix(prefix) {
57
+ const segments = prefix.replace(/\/$/, '').split('/');
58
+ if ([...prefix].length > damPathMaxCodePoints ||
59
+ new TextEncoder().encode(prefix).length > 1024 ||
60
+ /[\\\p{Cc}\p{Cs}]/u.test(prefix) ||
61
+ (prefix !== '' &&
62
+ segments.some((segment) => segment.trim() === '' || segment === '.' || segment === '..')))
63
+ throw new Error('Invalid Storage prefix: use at most 512 characters (1024 UTF-8 bytes) in a relative path without empty, dot, or parent-directory segments.');
64
+ }
65
+ /** Completes every bounded page, refusing wrong-Workspace, duplicate or out-of-prefix metadata. */
66
+ export async function listStorageAssets(client, workspace, prefix, signal) {
67
+ const normalizedPrefix = prefix.normalize('NFC');
68
+ validateCatalogPrefix(normalizedPrefix);
69
+ const assets = [];
70
+ const paths = new Set();
71
+ const cursors = new Set();
72
+ let cursor;
73
+ do {
74
+ const page = await client.listStoredAssets({
75
+ prefix: normalizedPrefix,
76
+ cursor,
77
+ limit: 500,
78
+ signal: readDeadline(signal),
79
+ });
80
+ if (page.workspace !== workspace)
81
+ throw new Error('Storage changed Workspace while paging the catalog');
82
+ for (const asset of page.assets) {
83
+ try {
84
+ validateCatalogPrefix(asset.path);
85
+ if (asset.path.endsWith('/'))
86
+ throw new Error('Expected a file path');
87
+ }
88
+ catch (error) {
89
+ throw new Error(`Storage returned an invalid asset path: ${JSON.stringify(asset.path)}`, {
90
+ cause: error,
91
+ });
92
+ }
93
+ if (!asset.path.startsWith(normalizedPrefix) || paths.has(asset.path)) {
94
+ throw new Error(`Storage returned a duplicate path or one outside the requested prefix: ${JSON.stringify(asset.path)}`);
95
+ }
96
+ paths.add(asset.path);
97
+ assets.push(asset);
98
+ }
99
+ if (page.next_cursor === null)
100
+ break;
101
+ cursor = page.next_cursor;
102
+ if (!cursor || cursors.has(cursor) || page.assets.at(-1)?.path !== cursor) {
103
+ throw new Error('Storage omitted or repeated its listing cursor; results would be incomplete');
104
+ }
105
+ cursors.add(cursor);
106
+ } while (cursor !== undefined);
107
+ return assets;
108
+ }
109
+ /** Verify writes against the selected key, not an unverified Workspace label in shell dotenv. */
110
+ export async function resolveStorageWorkspace(options, config, projectWorkspace, signal) {
111
+ signal?.throwIfAborted();
112
+ if (config.auth === undefined || !('authKey' in config.auth)) {
113
+ throw new Error('Storage project binding requires an Auth Key. Unset TRANSLOADIT_AUTH_TOKEN to use key credentials; run transloadit auth login if needed.');
114
+ }
115
+ const sameEndpoint = options.endpoint === undefined ||
116
+ new URL(options.endpoint).origin ===
117
+ new URL(config.endpoint ?? 'https://api2.transloadit.com').origin;
118
+ const workspace = config.authWorkspaceVerified && sameEndpoint && config.authWorkspace !== undefined
119
+ ? config.authWorkspace
120
+ : await withStorageCatalog({ endpoint: options.endpoint, signal }, async (_client, actual) => actual, 'Workspace verification', undefined, {
121
+ credentials: config.auth,
122
+ credentialsEndpoint: config.endpoint,
123
+ credentialsSource: config.authSource,
124
+ });
125
+ assertStorageWorkspace(workspace, projectWorkspace, options.workspace);
126
+ signal?.throwIfAborted();
127
+ return workspace;
128
+ }
129
+ //# sourceMappingURL=storageCatalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storageCatalog.js","sourceRoot":"","sources":["../../src/cli/storageCatalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Actionable CLI advice without printing remote response bodies or credentials. */
2
+ export declare function storagePublicError(error: unknown, workspace?: string): string;
3
+ //# sourceMappingURL=storagePublic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storagePublic.d.ts","sourceRoot":"","sources":["../../src/cli/storagePublic.ts"],"names":[],"mappings":"AAEA,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAW7E"}
@@ -0,0 +1,15 @@
1
+ import { ApiError } from "../ApiError.js";
2
+ /** Actionable CLI advice without printing remote response bodies or credentials. */
3
+ export function storagePublicError(error, workspace) {
4
+ if (error instanceof ApiError && error.code === 'STORAGE_PUBLIC_PREFIX_NEEDS_SMART_CDN_KEY') {
5
+ const slug = workspace !== undefined && /^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$/.test(workspace)
6
+ ? workspace
7
+ : '<workspace>';
8
+ return `Enable Smart CDN on an Auth Key at https://transloadit.com/c/${slug}/template-credentials/ and retry. The same key can serve Assemblies and Smart CDN.`;
9
+ }
10
+ if (error instanceof TypeError)
11
+ return error.message;
12
+ // Keep unrecognized server errors out of CLI output; only known codes select specific advice.
13
+ return 'Could not update or list public Storage prefixes. Check the API endpoint and Auth Key dam:write scope, then retry.';
14
+ }
15
+ //# sourceMappingURL=storagePublic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storagePublic.js","sourceRoot":"","sources":["../../src/cli/storagePublic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,oFAAoF;AACpF,MAAM,UAAU,kBAAkB,CAAC,KAAc,EAAE,SAAkB;IACnE,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,2CAA2C,EAAE,CAAC;QAC5F,MAAM,IAAI,GACR,SAAS,KAAK,SAAS,IAAI,mCAAmC,CAAC,IAAI,CAAC,SAAS,CAAC;YAC5E,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,aAAa,CAAA;QACnB,OAAO,gEAAgE,IAAI,oFAAoF,CAAA;IACjK,CAAC;IACD,IAAI,KAAK,YAAY,SAAS;QAAE,OAAO,KAAK,CAAC,OAAO,CAAA;IACpD,8FAA8F;IAC9F,OAAO,oHAAoH,CAAA;AAC7H,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { z } from 'zod';
2
+ /** Project identity and rendering metadata (including optional preview pixels), without credentials. */
3
+ export declare const storageCatalogSchema: z.ZodObject<{
4
+ workspace: z.ZodString;
5
+ apiOrigin: z.ZodOptional<z.ZodString>;
6
+ public: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
7
+ images: z.ZodType<Record<string, unknown>, z.ZodTypeDef, Record<string, unknown>>;
8
+ delivery: z.ZodOptional<z.ZodObject<{
9
+ baseUrl: z.ZodOptional<z.ZodString>;
10
+ urlParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">]>>>;
11
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
12
+ baseUrl: z.ZodOptional<z.ZodString>;
13
+ urlParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">]>>>;
14
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
15
+ baseUrl: z.ZodOptional<z.ZodString>;
16
+ urlParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">]>>>;
17
+ }, z.ZodTypeAny, "passthrough">>>;
18
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
19
+ workspace: z.ZodString;
20
+ apiOrigin: z.ZodOptional<z.ZodString>;
21
+ public: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
22
+ images: z.ZodType<Record<string, unknown>, z.ZodTypeDef, Record<string, unknown>>;
23
+ delivery: z.ZodOptional<z.ZodObject<{
24
+ baseUrl: z.ZodOptional<z.ZodString>;
25
+ urlParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">]>>>;
26
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
27
+ baseUrl: z.ZodOptional<z.ZodString>;
28
+ urlParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">]>>>;
29
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
30
+ baseUrl: z.ZodOptional<z.ZodString>;
31
+ urlParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">]>>>;
32
+ }, z.ZodTypeAny, "passthrough">>>;
33
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
34
+ workspace: z.ZodString;
35
+ apiOrigin: z.ZodOptional<z.ZodString>;
36
+ public: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
37
+ images: z.ZodType<Record<string, unknown>, z.ZodTypeDef, Record<string, unknown>>;
38
+ delivery: z.ZodOptional<z.ZodObject<{
39
+ baseUrl: z.ZodOptional<z.ZodString>;
40
+ urlParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">]>>>;
41
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
42
+ baseUrl: z.ZodOptional<z.ZodString>;
43
+ urlParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">]>>>;
44
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
45
+ baseUrl: z.ZodOptional<z.ZodString>;
46
+ urlParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">]>>>;
47
+ }, z.ZodTypeAny, "passthrough">>>;
48
+ }, z.ZodTypeAny, "passthrough">>;
49
+ export type StorageProjectCatalog = z.infer<typeof storageCatalogSchema>;
50
+ /** Default project catalog; --receipts can select a separate project explicitly. */
51
+ export declare const defaultStorageCatalog = "transloadit.images.json";
52
+ /** Non-production login origins are explicit transport overrides, never rendering credentials. */
53
+ export declare function storageCatalogDelivery(endpoint?: string): StorageProjectCatalog['delivery'];
54
+ /** The single conventional type-registration file beside a CLI catalog. */
55
+ export declare function storageTypesPath(catalog: string): string;
56
+ /** Read a project binding without creating a catalog or making a network request. */
57
+ export declare function readStorageCatalog(file: string): Promise<StorageProjectCatalog | undefined>;
58
+ /** A workspace override selects another workspace, never another key or implicit project rebinding. */
59
+ export declare function assertStorageWorkspace(actual: string, project?: string, requested?: string): void;
60
+ /** Delivery hosts do not prove provenance; a matching Workspace slug is not an API identity. */
61
+ export declare function assertStorageCatalogOrigin(catalog: StorageProjectCatalog | undefined, endpoint: string, file: string): void;
62
+ /**
63
+ * Serializes CLI receipt writers and replaces a catalog only after the complete update succeeds.
64
+ * onCheckpoint observes a completed rename even if interruption or cleanup subsequently fails.
65
+ */
66
+ export declare function updateStorageReceipts(file: string, update: (catalog: StorageProjectCatalog | undefined, signal: AbortSignal) => Promise<StorageProjectCatalog | undefined>, onCheckpoint?: () => void): Promise<void>;
67
+ //# sourceMappingURL=storageReceipts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storageReceipts.d.ts","sourceRoot":"","sources":["../../src/cli/storageReceipts.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAYvB,wGAAwG;AACxG,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAwBjB,CAAA;AAChB,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAExE,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,4BAA4B,CAAA;AAE9D,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAK3F;AAUD,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAkDD,qFAAqF;AACrF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAEjG;AAED,uGAAuG;AACvG,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAWjG;AAID,gGAAgG;AAChG,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAC1C,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,IAAI,CA+BN;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CACN,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAC1C,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EAC/C,YAAY,CAAC,EAAE,MAAM,IAAI,GACxB,OAAO,CAAC,IAAI,CAAC,CAsHf"}