diff --git a/.cursor/rules/coding-style.mdc b/.cursor/rules/coding-style.mdc index 7fda7a28..be212e23 100644 --- a/.cursor/rules/coding-style.mdc +++ b/.cursor/rules/coding-style.mdc @@ -3,6 +3,7 @@ description: globs: alwaysApply: true --- + Coding style: - Favor `async run() {` over `run = async () => {` inside ES6 classes @@ -14,6 +15,6 @@ Coding style: - Do not wrap each function body and function call in `try`/`catch` blocks. It pollutes the code. Assume we will always have an e.g. `main().catch((err) => { console.error(err); process.exit(1) })` to catch us. I repeat: Avoid over-use of try-catch such as `try { // foo } catch (err) { console.error('error while foo'); throw err }`, assume we catch errors on a higher level and do not need the extra explananation. - Before creating new files and new code, see if we can leverage existing work, maybe slighty adapt that without breaking BC, to keep things DRY. - Favor early exits, so quickly `continue`, `return false` (or `throw` if needed), over nesting everything in positive conditions, creating christmas trees. -- Use Prettier with 100 char line width, single quotes for JS/TS, semi: false +- Use Biome with 100 char line width, single quotes for JS/TS, semi: false - Use descriptive names: PascalCase for components/types, camelCase for variables/methods/schemas - Alphabetize imports, group by source type (built-in/external/internal) diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index d68763cb..00000000 --- a/.eslintignore +++ /dev/null @@ -1,5 +0,0 @@ -coverage/ -dist/ -node_modules/ -fixture/ -src/alphalib \ No newline at end of file diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 6d3d36f4..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,52 +0,0 @@ -module.exports = { - root: true, - extends: ['transloadit', 'prettier'], - plugins: ['@typescript-eslint'], - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaVersion: 11, - requireConfigFile: false, - }, - globals: { - // https://github.com/Chatie/eslint-config/issues/45#issuecomment-885507652 - NodeJS: true, - }, - settings: { - 'import/resolver': { - node: { - extensions: ['.js', '.ts', '.mjs', '.mts'], - }, - }, - }, - rules: { - 'import/no-unresolved': 'off', - 'import/extensions': 'off', - 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': ['error'], - }, - overrides: [ - { - files: 'test/**', - globals: { - afterAll: true, - afterEach: true, - beforeAll: true, - beforeEach: true, - describe: true, - it: true, - vi: true, - }, - rules: { - 'no-console': 'off', - }, - }, - { - files: 'examples/**', - rules: { - 'no-console': 0, - 'import/no-extraneous-dependencies': 0, - 'import/no-unresolved': 0, - }, - }, - ], -} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 16d85cb0..68b1afd1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,16 +9,6 @@ on: - '*' jobs: - eslint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 22 - - run: corepack yarn - - run: corepack yarn lint:js - pack: runs-on: ubuntu-latest steps: @@ -33,7 +23,7 @@ jobs: name: package path: '*.tgz' - prettier: + biome: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -41,7 +31,7 @@ jobs: with: node-version: 22 - run: corepack yarn - - run: corepack yarn lint:formatting + - run: corepack yarn lint:js typescript: runs-on: ubuntu-latest @@ -96,9 +86,8 @@ jobs: release: runs-on: ubuntu-latest needs: - - eslint - pack - - prettier + - biome - typescript - vitest if: startsWith(github.ref, 'refs/tags/') diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index acb4f55f..00000000 --- a/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -src/alphalib/ diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index 55b9ca2c..00000000 --- a/.prettierrc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/prettierrc", - "printWidth": 100, - "semi": false, - "singleQuote": true, - "trailingComma": "es5", - "jsxSingleQuote": false -} diff --git a/.vscode/settings.json b/.vscode/settings.json index 6878ab0e..25331937 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,21 @@ { - "[javascript][typescript]": { + "editor.codeActionsOnSave": { + "source.fixAll.biome": "explicit", + "source.fixAll.eslint": "explicit", + "source.fixAll.stylelint": "explicit" + }, + "editor.defaultFormatter": "biomejs.biome", + "editor.formatOnSave": true, + "eslint.format.enable": false, + "[html]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, + "[javascript]": { "editor.defaultFormatter": "biomejs.biome" }, + "[javascriptreact]": { "editor.defaultFormatter": "biomejs.biome" }, + "[json]": { "editor.defaultFormatter": "biomejs.biome" }, + "[liquid]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, + "[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, + "[typescript]": { "editor.defaultFormatter": "biomejs.biome" }, + "[typescriptreact]": { "editor.defaultFormatter": "biomejs.biome" }, + "[yaml]": { "editor.defaultFormatter": "esbenp.prettier-vscode" } } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0b3622b5..0ba9ba38 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,7 +22,7 @@ yarn upgrade-interactive ## Linting -This project is linted using [ESLint](https://eslint.org). You can lint the project by running: +This project is linted using Biome. You can lint the project by running: ```sh yarn lint:js @@ -30,10 +30,10 @@ yarn lint:js ## Formatting -This project is formatted using [Prettier](https://prettier.io). You can format the project: +This project is formatted using Biome. You can format the project: ```sh -yarn fix:formatting +yarn fix:js ``` ## Testing diff --git a/biome.json b/biome.json new file mode 100644 index 00000000..4a3606be --- /dev/null +++ b/biome.json @@ -0,0 +1,69 @@ +{ + "$schema": "https://biomejs.dev/schemas/2.2.2/schema.json", + "files": { + "includes": [ + "**", + "!coverage", + "!dist", + "!node_modules", + "!fixture", + "!.vscode", + "!src/alphalib" + ] + }, + "formatter": { + "enabled": true, + "formatWithErrors": false, + "indentStyle": "space", + "indentWidth": 2, + "lineEnding": "lf", + "lineWidth": 100, + "attributePosition": "auto" + }, + "assist": { "actions": { "source": { "organizeImports": "on" } } }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "suspicious": { + "noExplicitAny": "warn", + "noImplicitAnyLet": "error", + "noConfusingVoidType": "warn", + "noAssignInExpressions": "off", + "noTemplateCurlyInString": "off" + }, + "correctness": { + "noInvalidUseBeforeDeclaration": "warn" + }, + "complexity": { + "useLiteralKeys": "off", + "noForEach": "warn" + }, + "style": { + "noParameterAssign": "warn", + "noUnusedTemplateLiteral": "off", + "useAsConstAssertion": "error", + "useDefaultParameterLast": "error", + "useEnumInitializers": "error", + "useSelfClosingElements": "error", + "useSingleVarDeclarator": "error", + "useNumberNamespace": "error", + "noInferrableTypes": "error", + "noUselessElse": "error" + } + } + }, + "javascript": { + "formatter": { + "jsxQuoteStyle": "double", + "quoteProperties": "asNeeded", + "trailingCommas": "all", + "semicolons": "asNeeded", + "arrowParentheses": "always", + "bracketSpacing": true, + "bracketSameLine": false, + "quoteStyle": "single", + "attributePosition": "auto" + } + } +} diff --git a/examples/convert_to_webp.ts b/examples/convert_to_webp.ts index 4d0bb1f5..256887e9 100644 --- a/examples/convert_to_webp.ts +++ b/examples/convert_to_webp.ts @@ -8,9 +8,13 @@ // import { Transloadit } from 'transloadit' +const { TRANSLOADIT_KEY, TRANSLOADIT_SECRET } = process.env +if (TRANSLOADIT_KEY == null || TRANSLOADIT_SECRET == null) { + throw new Error('Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET') +} const transloadit = new Transloadit({ - authKey: process.env.TRANSLOADIT_KEY!, - authSecret: process.env.TRANSLOADIT_SECRET!, + authKey: TRANSLOADIT_KEY, + authSecret: TRANSLOADIT_SECRET, }) const filePath = process.argv[2] diff --git a/examples/credentials.ts b/examples/credentials.ts index f5bd3cf4..04ad64c0 100644 --- a/examples/credentials.ts +++ b/examples/credentials.ts @@ -1,4 +1,3 @@ -/* eslint-disable max-len */ // Run this file as: // // env TRANSLOADIT_KEY=xxx TRANSLOADIT_SECRET=yyy node template_api.js @@ -7,11 +6,15 @@ // // yarn prepack // -import { CreateTemplateCredentialParams, Transloadit } from 'transloadit' +import { type CreateTemplateCredentialParams, Transloadit } from 'transloadit' +const { TRANSLOADIT_KEY, TRANSLOADIT_SECRET } = process.env +if (TRANSLOADIT_KEY == null || TRANSLOADIT_SECRET == null) { + throw new Error('Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET') +} const transloadit = new Transloadit({ - authKey: process.env.TRANSLOADIT_KEY!, - authSecret: process.env.TRANSLOADIT_SECRET!, + authKey: TRANSLOADIT_KEY, + authSecret: TRANSLOADIT_SECRET, }) const firstName = 'myProductionS3' @@ -54,23 +57,23 @@ console.log('TemplateCredential created successfully:', createTemplateCredential // with Credentials, there is `ok`, `message`, `credentials` <-- and a single object nested directly under it, which is unexpected with that plural imho. Same is true for created, updated, fetched console.log( - `==> editTemplateCredential: ${createTemplateCredentialResult.credential.id} (${createTemplateCredentialResult.credential.name})` + `==> editTemplateCredential: ${createTemplateCredentialResult.credential.id} (${createTemplateCredentialResult.credential.name})`, ) const editResult = await transloadit.editTemplateCredential( createTemplateCredentialResult.credential.id, { ...credentialParams, name: secondName, - } + }, ) console.log('Successfully edited credential', editResult) // ^-- see create console.log( - `==> getTemplateCredential: ${createTemplateCredentialResult.credential.id} (${createTemplateCredentialResult.credential.name})` + `==> getTemplateCredential: ${createTemplateCredentialResult.credential.id} (${createTemplateCredentialResult.credential.name})`, ) const getTemplateCredentialResult = await transloadit.getTemplateCredential( - createTemplateCredentialResult.credential.id + createTemplateCredentialResult.credential.id, ) console.log('Successfully fetched credential', getTemplateCredentialResult) // ^-- not working at al, getting a 404. looking at the API, this is not implemented yet diff --git a/examples/face_detect_download.ts b/examples/face_detect_download.ts index f09165fd..1839e3a2 100644 --- a/examples/face_detect_download.ts +++ b/examples/face_detect_download.ts @@ -10,14 +10,18 @@ // Then it will download the result as a file in the current directory // See https://transloadit.com/demos/artificial-intelligence/detect-faces-in-images/ -import got from 'got' +import assert from 'node:assert' import { createWriteStream } from 'node:fs' +import got from 'got' import { Transloadit } from 'transloadit' -import assert from 'assert' +const { TRANSLOADIT_KEY, TRANSLOADIT_SECRET } = process.env +if (TRANSLOADIT_KEY == null || TRANSLOADIT_SECRET == null) { + throw new Error('Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET') +} const transloadit = new Transloadit({ - authKey: process.env.TRANSLOADIT_KEY!, - authSecret: process.env.TRANSLOADIT_SECRET!, + authKey: TRANSLOADIT_KEY, + authSecret: TRANSLOADIT_SECRET, }) const filePath = process.argv[2] diff --git a/examples/fetch_costs_of_all_assemblies_in_timeframe.ts b/examples/fetch_costs_of_all_assemblies_in_timeframe.ts index dcaa939b..bcb7c952 100644 --- a/examples/fetch_costs_of_all_assemblies_in_timeframe.ts +++ b/examples/fetch_costs_of_all_assemblies_in_timeframe.ts @@ -18,14 +18,18 @@ const params = { page: 1, } +const { TRANSLOADIT_KEY, TRANSLOADIT_SECRET } = process.env +if (TRANSLOADIT_KEY == null || TRANSLOADIT_SECRET == null) { + throw new Error('Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET') +} const transloadit = new Transloadit({ - authKey: process.env.TRANSLOADIT_KEY!, - authSecret: process.env.TRANSLOADIT_SECRET!, + authKey: TRANSLOADIT_KEY, + authSecret: TRANSLOADIT_SECRET, }) let totalBytes = 0 -let lastCount +let lastCount: number do { console.log('Processing page', params.page) const { count, items } = await transloadit.listAssemblies(params) @@ -34,7 +38,6 @@ do { await pMap( items, - // eslint-disable-next-line no-loop-func async (assembly) => { const assemblyFull = await transloadit.getAssembly(assembly.id) // console.log(assemblyFull.assembly_id) @@ -43,7 +46,7 @@ do { totalBytes += bytesUsage || 0 }, - { concurrency: 20 } + { concurrency: 20 }, ) } while (lastCount > 0) diff --git a/examples/rasterize_svg_to_png.ts b/examples/rasterize_svg_to_png.ts index 72da6beb..89cf8799 100644 --- a/examples/rasterize_svg_to_png.ts +++ b/examples/rasterize_svg_to_png.ts @@ -8,9 +8,13 @@ // import { Transloadit } from 'transloadit' +const { TRANSLOADIT_KEY, TRANSLOADIT_SECRET } = process.env +if (TRANSLOADIT_KEY == null || TRANSLOADIT_SECRET == null) { + throw new Error('Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET') +} const transloadit = new Transloadit({ - authKey: process.env.TRANSLOADIT_KEY!, - authSecret: process.env.TRANSLOADIT_SECRET!, + authKey: TRANSLOADIT_KEY, + authSecret: TRANSLOADIT_SECRET, }) const filePath = process.argv[2] diff --git a/examples/resize_an_image.ts b/examples/resize_an_image.ts index f6dce6b7..a282221c 100644 --- a/examples/resize_an_image.ts +++ b/examples/resize_an_image.ts @@ -8,9 +8,13 @@ // import { Transloadit } from 'transloadit' +const { TRANSLOADIT_KEY, TRANSLOADIT_SECRET } = process.env +if (TRANSLOADIT_KEY == null || TRANSLOADIT_SECRET == null) { + throw new Error('Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET') +} const transloadit = new Transloadit({ - authKey: process.env.TRANSLOADIT_KEY!, - authSecret: process.env.TRANSLOADIT_SECRET!, + authKey: TRANSLOADIT_KEY, + authSecret: TRANSLOADIT_SECRET, }) const status = await transloadit.createAssembly({ diff --git a/examples/retry.ts b/examples/retry.ts index 8cb453be..46f09de7 100644 --- a/examples/retry.ts +++ b/examples/retry.ts @@ -9,11 +9,15 @@ // yarn prepack // import pRetry, { AbortError } from 'p-retry' -import { Transloadit, ApiError } from 'transloadit' +import { ApiError, Transloadit } from 'transloadit' +const { TRANSLOADIT_KEY, TRANSLOADIT_SECRET } = process.env +if (TRANSLOADIT_KEY == null || TRANSLOADIT_SECRET == null) { + throw new Error('Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET') +} const transloadit = new Transloadit({ - authKey: process.env.TRANSLOADIT_KEY!, - authSecret: process.env.TRANSLOADIT_SECRET!, + authKey: TRANSLOADIT_KEY, + authSecret: TRANSLOADIT_SECRET, }) async function run() { diff --git a/examples/template_api.ts b/examples/template_api.ts index 0ba17ddf..959a1965 100644 --- a/examples/template_api.ts +++ b/examples/template_api.ts @@ -6,11 +6,15 @@ // // yarn prepack // -import { TemplateContent, Transloadit } from 'transloadit' +import { type TemplateContent, Transloadit } from 'transloadit' +const { TRANSLOADIT_KEY, TRANSLOADIT_SECRET } = process.env +if (TRANSLOADIT_KEY == null || TRANSLOADIT_SECRET == null) { + throw new Error('Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET') +} const transloadit = new Transloadit({ - authKey: process.env.TRANSLOADIT_KEY!, - authSecret: process.env.TRANSLOADIT_SECRET!, + authKey: TRANSLOADIT_KEY, + authSecret: TRANSLOADIT_SECRET, }) const template: TemplateContent = { diff --git a/package.json b/package.json index 77a3e6e4..b00a2a81 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "mp3" ], "author": "Tim Koschuetzki ", - "packageManager": "yarn@4.9.2", + "packageManager": "yarn@4.9.4", "engines": { "node": ">= 20" }, @@ -30,34 +30,19 @@ "zod": "3.25.76" }, "devDependencies": { - "@babel/core": "^7.26.10", - "@babel/eslint-parser": "^7.27.0", - "@babel/eslint-plugin": "^7.27.0", + "@biomejs/biome": "^2.2.2", "@types/debug": "^4.1.12", "@types/temp": "^0.9.4", - "@typescript-eslint/eslint-plugin": "^8.29.1", - "@typescript-eslint/parser": "^8.29.1", "@vitest/coverage-v8": "^3.1.3", "badge-maker": "^4.1.0", "dotenv": "^16.5.0", - "eslint": "8", - "eslint-config-prettier": "^8.10.0", - "eslint-config-transloadit": "^2.0.0", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-jest": "^28.11.0", - "eslint-plugin-jsx-a11y": "^6.10.1", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.3.1", - "eslint-plugin-react": "^7.37.1", - "eslint-plugin-react-hooks": "^4.6.2", "execa": "9.5.2", "nock": "^14.0.3", "npm-run-all": "^4.1.5", "p-retry": "^6.2.1", - "prettier": "^3.5.3", "temp": "^0.9.4", - "tsx": "4.19.4", - "typescript": "5.8.3", + "tsx": "4.20.5", + "typescript": "5.9.2", "vitest": "^3.1.3" }, "repository": { @@ -69,19 +54,18 @@ }, "scripts": { "check": "yarn lint:ts && yarn fix && yarn test:unit", - "fix:js": "yarn lint:js --fix", - "lint:js": "eslint --ext .js,.ts,.mjs,.mts .", + "fix:js": "biome check --write .", "lint:ts": "tsc --build", - "lint": "npm-run-all --parallel 'lint:*'", - "fix": "npm-run-all --serial 'fix:*'", + "fix:js:unsafe": "biome check --write . --unsafe", + "lint:js": "biome check .", + "lint": "npm-run-all --parallel 'lint:js'", + "fix": "npm-run-all --serial 'fix:js'", "next:update": "next-update --keep true --tldr", "prepack": "rm -f tsconfig.tsbuildinfo tsconfig.build.tsbuildinfo && tsc --build tsconfig.build.json", "test:unit": "vitest run --coverage ./test/unit", "test:integration": "vitest run ./test/integration", "test:all": "vitest run --coverage", - "test": "yarn test:unit", - "fix:formatting": "prettier --write .", - "lint:formatting": "prettier --check ." + "test": "yarn test:unit" }, "license": "MIT", "main": "./dist/Transloadit.js", diff --git a/src/ApiError.ts b/src/ApiError.ts index 03f5b185..d1ec2362 100644 --- a/src/ApiError.ts +++ b/src/ApiError.ts @@ -1,4 +1,4 @@ -import { HTTPError, RequestError } from 'got' +import { HTTPError, type RequestError } from 'got' export interface TransloaditErrorResponseBody { error?: string diff --git a/src/PaginationStream.ts b/src/PaginationStream.ts index c136fd73..e79319c7 100644 --- a/src/PaginationStream.ts +++ b/src/PaginationStream.ts @@ -1,9 +1,8 @@ -import { Readable } from 'stream' -import { PaginationList, PaginationListWithCount } from './apiTypes.js' +import { Readable } from 'node:stream' +import type { PaginationList, PaginationListWithCount } from './apiTypes.js' -// eslint-disable-next-line no-unused-vars type FetchPage = ( - pageno: number + pageno: number, ) => | PaginationList | PromiseLike> diff --git a/src/Transloadit.ts b/src/Transloadit.ts index 43c02634..6d1c6fc1 100644 --- a/src/Transloadit.ts +++ b/src/Transloadit.ts @@ -1,34 +1,31 @@ -import { createHmac, randomUUID } from 'crypto' +import * as assert from 'node:assert' +import { createHmac, randomUUID } from 'node:crypto' +import { constants, createReadStream } from 'node:fs' +import { access } from 'node:fs/promises' +import type { Readable } from 'node:stream' +import debug from 'debug' +import FormData from 'form-data' import got, { - RetryOptions, - Headers, - OptionsOfJSONResponseBody, - Delays, - RequestError, + type Delays, + type Headers, HTTPError, + type OptionsOfJSONResponseBody, + RequestError, + type RetryOptions, } from 'got' -import FormData from 'form-data' -import { constants, createReadStream } from 'fs' -import { access } from 'fs/promises' -import debug from 'debug' -import intoStream, { Input as IntoStreamInput } from 'into-stream' +import intoStream, { type Input as IntoStreamInput } from 'into-stream' import { isReadableStream, isStream } from 'is-stream' -import * as assert from 'assert' import pMap from 'p-map' -import type { Readable } from 'stream' -import InconsistentResponseError from './InconsistentResponseError.js' -import PaginationStream from './PaginationStream.js' -import PollingTimeoutError from './PollingTimeoutError.js' -import { TransloaditErrorResponseBody, ApiError } from './ApiError.js' import packageJson from '../package.json' with { type: 'json' } -import { sendTusRequest, Stream } from './tus.js' +import { ApiError, type TransloaditErrorResponseBody } from './ApiError.js' import { - AssemblyStatus, - assemblyStatusSchema, + type AssemblyIndex, type AssemblyIndexItem, + type AssemblyStatus, assemblyIndexSchema, - AssemblyIndex, + assemblyStatusSchema, } from './alphalib/types/assemblyStatus.js' +import { zodParseWithContext } from './alphalib/zodParseWithContext.ts' import type { BaseResponse, BillResponse, @@ -37,6 +34,7 @@ import type { CreateTemplateParams, EditTemplateParams, ListAssembliesParams, + ListedTemplate, ListTemplateCredentialsParams, ListTemplatesParams, OptionalAuthParams, @@ -48,25 +46,26 @@ import type { TemplateCredentialResponse, TemplateCredentialsResponse, TemplateResponse, - ListedTemplate, } from './apiTypes.js' -import { zodParseWithContext } from './alphalib/zodParseWithContext.ts' - -export * from './apiTypes.js' - -export type { AssemblyStatus } from './alphalib/types/assemblyStatus.js' +import InconsistentResponseError from './InconsistentResponseError.js' +import PaginationStream from './PaginationStream.js' +import PollingTimeoutError from './PollingTimeoutError.js' +import { type Stream, sendTusRequest } from './tus.js' // See https://github.com/sindresorhus/got/tree/v11.8.6?tab=readme-ov-file#errors // Expose relevant errors export { - RequestError, - ReadError, - ParseError, - UploadError, HTTPError, MaxRedirectsError, + ParseError, + ReadError, + RequestError, TimeoutError, + UploadError, } from 'got' + +export type { AssemblyStatus } from './alphalib/types/assemblyStatus.js' +export * from './apiTypes.js' export { InconsistentResponseError, ApiError } const log = debug('transloadit') @@ -196,7 +195,7 @@ export class Transloadit { throw new Error('Please provide an authSecret') } - if (opts.endpoint && opts.endpoint.endsWith('/')) { + if (opts.endpoint?.endsWith('/')) { throw new Error('Trailing slash in endpoint is not allowed') } @@ -229,7 +228,7 @@ export class Transloadit { const { params = {}, waitForCompletion = false, - chunkSize: requestedChunkSize = Infinity, + chunkSize: requestedChunkSize = Number.POSITIVE_INFINITY, uploadConcurrency = 10, timeout = 24 * 60 * 60 * 1000, // 1 day onUploadProgress = () => {}, @@ -245,7 +244,7 @@ export class Transloadit { // Undocumented feature to allow specifying a custom assembly id from the client // Not recommended for general use due to security. E.g if the user doesn't provide a cryptographically // secure ID, then anyone could access the assembly. - let effectiveAssemblyId + let effectiveAssemblyId: string if (assemblyId != null) { effectiveAssemblyId = assemblyId } else { @@ -259,9 +258,8 @@ export class Transloadit { await pMap( Object.entries(files), - // eslint-disable-next-line no-bitwise async ([, path]) => access(path, constants.F_OK | constants.R_OK), - { concurrency: 5 } + { concurrency: 5 }, ) // Convert uploads to streams @@ -274,12 +272,12 @@ export class Transloadit { } return [label, isReadableStream(value) ? value : intoStream(value)] - }) + }), ) // Wrap in object structure (so we can store whether it's a pathless stream or not) const allStreamsMap = Object.fromEntries( - Object.entries(streamsMap).map(([label, stream]) => [label, { stream }]) + Object.entries(streamsMap).map(([label, stream]) => [label, { stream }]), ) // Create streams from files too @@ -291,11 +289,15 @@ export class Transloadit { const allStreams = Object.values(allStreamsMap) // Pause all streams - allStreams.forEach(({ stream }) => stream.pause()) + for (const { stream } of allStreams) { + stream.pause() + } // If any stream emits error, we want to handle this and exit with error - const streamErrorPromise = new Promise((resolve, reject) => { - allStreams.forEach(({ stream }) => stream.on('error', reject)) + const streamErrorPromise = new Promise((_resolve, reject) => { + for (const { stream } of allStreams) { + stream.on('error', reject) + } }) const createAssemblyAndUpload = async () => { @@ -324,7 +326,7 @@ export class Transloadit { if (result.assembly_id == null) { throw new InconsistentResponseError( - 'Server returned an assembly response without an assembly_id after creation' + 'Server returned an assembly response without an assembly_id after creation', ) } const awaitResult = await this.awaitAssemblyCompletion(result.assembly_id, { @@ -350,11 +352,10 @@ export class Transloadit { timeout, startTimeMs = getHrTimeMs(), interval = 1000, - }: AwaitAssemblyCompletionOptions = {} + }: AwaitAssemblyCompletionOptions = {}, ): Promise { assert.ok(assemblyId) - // eslint-disable-next-line no-constant-condition while (true) { const result = await this.getAssembly(assemblyId) @@ -398,9 +399,8 @@ export class Transloadit { throw err } - // eslint-disable-next-line no-console console.error( - `---\nPlease report this error to Transloadit (support@transloadit.com). We are working on better schemas for our API and this looks like something we do not cover yet: \n\n${err}\nThank you in advance!\n---\n` + `---\nPlease report this error to Transloadit (support@transloadit.com). We are working on better schemas for our API and this looks like something we do not cover yet: \n\n${err}\nThank you in advance!\n---\n`, ) } @@ -421,7 +421,7 @@ export class Transloadit { if (!parsedResult.success) { this.maybeThrowInconsistentResponseError( - `The API responded with data that does not match the expected schema while cancelling Assembly: ${assemblyId}.\n${parsedResult.humanReadable}` + `The API responded with data that does not match the expected schema while cancelling Assembly: ${assemblyId}.\n${parsedResult.humanReadable}`, ) } @@ -438,7 +438,7 @@ export class Transloadit { */ async replayAssembly( assemblyId: string, - params: ReplayAssemblyParams = {} + params: ReplayAssemblyParams = {}, ): Promise { const result: ReplayAssemblyResponse = await this._remoteJson({ urlSuffix: `/assemblies/${assemblyId}/replay`, @@ -458,7 +458,7 @@ export class Transloadit { */ async replayAssemblyNotification( assemblyId: string, - params: ReplayAssemblyNotificationParams = {} + params: ReplayAssemblyNotificationParams = {}, ): Promise { return this._remoteJson({ urlSuffix: `/assembly_notifications/${assemblyId}/replay`, @@ -474,7 +474,7 @@ export class Transloadit { * @returns list of Assemblies */ async listAssemblies( - params?: ListAssembliesParams + params?: ListAssembliesParams, ): Promise> { const rawResponse = await this._remoteJson< PaginationListWithCount>, @@ -491,7 +491,7 @@ export class Transloadit { !Array.isArray(rawResponse.items) ) { throw new InconsistentResponseError( - 'API response for listAssemblies is malformed or missing items array' + 'API response for listAssemblies is malformed or missing items array', ) } @@ -499,7 +499,7 @@ export class Transloadit { if (!parsedResult.success) { this.maybeThrowInconsistentResponseError( - `API response for listAssemblies contained items that do not match the expected schema.\n${parsedResult.humanReadable}` + `API response for listAssemblies contained items that do not match the expected schema.\n${parsedResult.humanReadable}`, ) } @@ -528,7 +528,7 @@ export class Transloadit { if (!parsedResult.success) { this.maybeThrowInconsistentResponseError( - `The API responded with data that does not match the expected schema while getting Assembly: ${assemblyId}.\n${parsedResult.humanReadable}` + `The API responded with data that does not match the expected schema while getting Assembly: ${assemblyId}.\n${parsedResult.humanReadable}`, ) } @@ -543,7 +543,7 @@ export class Transloadit { * @returns when the Credential is created */ async createTemplateCredential( - params: CreateTemplateCredentialParams + params: CreateTemplateCredentialParams, ): Promise { return this._remoteJson({ urlSuffix: '/template_credentials', @@ -561,7 +561,7 @@ export class Transloadit { */ async editTemplateCredential( credentialId: string, - params: CreateTemplateCredentialParams + params: CreateTemplateCredentialParams, ): Promise { return this._remoteJson({ urlSuffix: `/template_credentials/${credentialId}`, @@ -603,7 +603,7 @@ export class Transloadit { * @returns the list of templates */ async listTemplateCredentials( - params?: ListTemplateCredentialsParams + params?: ListTemplateCredentialsParams, ): Promise { return this._remoteJson({ urlSuffix: '/template_credentials', @@ -680,7 +680,7 @@ export class Transloadit { * @returns the list of templates */ async listTemplates( - params?: ListTemplatesParams + params?: ListTemplatesParams, ): Promise> { return this._remoteJson({ urlSuffix: '/templates', @@ -810,7 +810,6 @@ export class Transloadit { } // We want to mock this method - // eslint-disable-next-line class-methods-use-this private _getExpiresDate(): string { const expiresDate = new Date() expiresDate.setDate(expiresDate.getDate() + 1) diff --git a/src/alphalib/types/assemblyStatus.ts b/src/alphalib/types/assemblyStatus.ts index d7ec6c80..e6940365 100644 --- a/src/alphalib/types/assemblyStatus.ts +++ b/src/alphalib/types/assemblyStatus.ts @@ -1,6 +1,6 @@ import { z } from 'zod' -const assemblyBusyCodeSchema = z.enum(['ASSEMBLY_UPLOADING']) +export const assemblyBusyCodeSchema = z.enum(['ASSEMBLY_UPLOADING']) export const assemblyStatusOkCodeSchema = z.enum([ 'ASSEMBLY_CANCELED', @@ -55,21 +55,34 @@ export const assemblyStatusErrCodeSchema = z.enum([ 'AUTH_KEY_SCOPES_NOT_FOUND', 'AUTH_KEYS_NOT_FOUND', 'AUTH_SECRET_NOT_RETRIEVED', + 'AZURE_STORE_ACCESS_DENIED', + 'BACKBLAZE_IMPORT_ACCESS_DENIED', + 'BACKBLAZE_IMPORT_NOT_FOUND', + 'BACKBLAZE_STORE_ACCESS_DENIED', 'BACKBLAZE_STORE_FAILURE', 'BAD_PRICING', 'BILL_LIMIT_EXCEEDED', 'CANNOT_ACCEPT_NEW_ASSEMBLIES', 'CANNOT_FETCH_ACTIVE_ASSEMBLIES', 'CDN_REQUIRED', + 'CLOUDFILES_IMPORT_ACCESS_DENIED', + 'CLOUDFILES_IMPORT_NOT_FOUND', + 'CLOUDFILES_STORE_ACCESS_DENIED', 'CLOUDFILES_STORE_ERROR', 'CLOUDFLARE_IMPORT_VALIDATION', + 'DIGITALOCEAN_STORE_ACCESS_DENIED', 'DO_NOT_REUSE_ASSEMBLY_IDS', 'DOCUMENT_CONVERT_UNSUPPORTED_CONVERSION', + 'DOCUMENT_SPLIT_VALIDATION', 'FILE_DOWNLOAD_ERROR', 'FILE_FILTER_DECLINED_FILE', + 'FILE_FILTER_INVALID_OPERATOR', 'FILE_FILTER_VALIDATION', 'FILE_META_DATA_ERROR', 'FILE_PREVIEW_VALIDATION', + 'FILE_READ_VALIDATION_ERROR', + 'FILE_VERIFY_INVALID_FILE', + 'FILE_VIRUSSCAN_DECLINED_FILE', 'GET_ACCOUNT_DB_ERROR', 'GET_ACCOUNT_UNKNOWN_AUTH_KEY', 'GOOGLE_IMPORT_VALIDATION', @@ -79,6 +92,7 @@ export const assemblyStatusErrCodeSchema = z.enum([ 'HTTP_IMPORT_FAILURE', 'HTTP_IMPORT_NOT_FOUND', 'HTTP_IMPORT_VALIDATION', + 'IMAGE_DESCRIBE_VALIDATION', 'IMAGE_RESIZE_ERROR', 'IMAGE_RESIZE_VALIDATION', 'IMPORT_FILE_ERROR', @@ -115,12 +129,16 @@ export const assemblyStatusErrCodeSchema = z.enum([ 'PLAN_LIMIT_EXCEEDED', 'POSSIBLY_MALICIOUS_FILE_FOUND', 'PRIORITY_JOB_SLOTS_NOT_FOUND', + 'RATE_LIMIT_REACHED', 'REFERER_MISMATCH', 'REQUEST_PREMATURE_CLOSED', 'ROBOT_VALIDATION_BASE_ERROR', 'S3_ACCESS_DENIED', + 'S3_IMPORT_ACCESS_DENIED', + 'S3_IMPORT_VALIDATION', 'S3_NOT_FOUND', 'S3_STORE_ACCESS_DENIED', + 'S3_STORE_VALIDATION', 'SERVER_403', 'SERVER_404', 'SERVER_500', @@ -133,10 +151,11 @@ export const assemblyStatusErrCodeSchema = z.enum([ 'TMP_FILE_DOWNLOAD_ERROR', 'USER_COMMAND_ERROR', 'VERIFIED_EMAIL_REQUIRED', + 'VIDEO_ENCODE_VALIDATION', + 'VIMEO_IMPORT_FAILURE', 'WORKER_JOB_ERROR', ]) -// --- Define Main Meta Schema (remove HLS specific fields) --- const assemblyStatusMetaSchema = z .object({ width: z.union([z.number(), z.null()]).optional(), @@ -152,7 +171,7 @@ const assemblyStatusMetaSchema = z svgViewBoxHeight: z.union([z.number(), z.null()]).optional(), date_recorded: z.union([z.string(), z.number()]).nullable().optional(), date_file_created: z.string().nullable().optional(), - title: z.string().nullable().optional(), + title: z.union([z.string(), z.number()]).nullable().optional(), description: z.string().nullable().optional(), duration: z.union([z.number(), z.null()]).optional(), location: z.string().nullable().optional(), @@ -182,7 +201,7 @@ const assemblyStatusMetaSchema = z device_software: z.union([z.string(), z.number()]).nullable().optional(), latitude: z.union([z.number(), z.null()]).optional(), longitude: z.union([z.number(), z.null()]).optional(), - orientation: z.string().nullable().optional(), + orientation: z.union([z.string(), z.number()]).nullable().optional(), creator: z.string().nullable().optional(), author: z.string().nullable().optional(), copyright: z.string().nullable().optional(), @@ -193,14 +212,17 @@ const assemblyStatusMetaSchema = z xp_keywords: z.string().nullable().optional(), xp_subject: z.string().nullable().optional(), recognized_text: z - .array( - z - .object({ - text: z.string(), - boundingPolygon: z.array(z.object({ x: z.number(), y: z.number() })), - }) - .passthrough(), - ) + .union([ + z.array(z.string()), + z.array( + z + .object({ + text: z.string(), + boundingPolygon: z.array(z.object({ x: z.number(), y: z.number() })), + }) + .passthrough(), + ), + ]) .optional(), descriptions: z .array( @@ -215,10 +237,28 @@ const assemblyStatusMetaSchema = z audio_bitrate: z.union([z.number(), z.null()]).optional(), audio_samplerate: z.union([z.number(), z.null()]).optional(), audio_channels: z.union([z.number(), z.null()]).optional(), + audio_channel_layout: z.union([z.string(), z.null()]).optional(), + audio_sample_format: z.union([z.string(), z.null()]).optional(), + audio_profile: z.union([z.string(), z.null()]).optional(), audio_codec: z.union([z.string(), z.null()]).optional(), - num_audio_streams: z.number().optional(), + num_audio_streams: z.union([z.number(), z.null()]).optional(), + num_video_streams: z.union([z.number(), z.null()]).optional(), + num_subtitles: z.union([z.number(), z.null()]).optional(), bit_depth: z.union([z.number(), z.null()]).optional(), seekable: z.union([z.boolean(), z.null()]).optional(), + pixel_format: z.union([z.string(), z.null()]).optional(), + reference_count: z.union([z.number(), z.null()]).optional(), + time_base: z.union([z.string(), z.null()]).optional(), + streams: z + .union([ + z.object({ + video: z.array(z.unknown()).optional(), + audio: z.array(z.unknown()).optional(), + subtitle: z.array(z.unknown()).optional(), + }), + z.null(), + ]) + .optional(), rotation: z.union([z.number(), z.null()]).optional(), album: z.string().nullable().optional(), comment: z.string().nullable().optional(), @@ -294,7 +334,9 @@ const assemblyStatusMetaSchema = z .passthrough() export type AssemblyStatusMeta = z.infer -// --- Define HLS Nested Meta Schema --- +// Need to export the schema itself for assemblyStatusForTests.ts +export { assemblyStatusMetaSchema } + const hlsNestedMetaSchema = z.object({ relative_path: z.string().optional(), duration: z.number().optional(), @@ -316,9 +358,7 @@ const hlsNestedMetaSchema = z.object({ has_alpha_channel: z.boolean().optional(), version_id: z.string().optional(), }) -// --- End HLS Nested Meta Schema --- -// --- Define HLS Playlist Schema --- const hlsPlaylistSchema = z.object({ name: z.union([z.string(), z.number()]).optional(), content: z.string().optional(), @@ -326,9 +366,8 @@ const hlsPlaylistSchema = z.object({ stream: z.string().optional(), meta: hlsNestedMetaSchema.optional(), }) -// --- End HLS Playlist Schema --- -const assemblyStatusUploadSchema = z +export const assemblyStatusUploadSchema = z .object({ id: z.string(), name: z.string(), @@ -339,7 +378,7 @@ const assemblyStatusUploadSchema = z type: z.string().nullable(), field: z.string().nullable(), md5hash: z.string().nullable(), - original_id: z.string(), + original_id: z.union([z.string(), z.array(z.string())]), original_basename: z.string(), original_name: z.string(), original_path: z.string(), @@ -348,7 +387,7 @@ const assemblyStatusUploadSchema = z is_tus_file: z.boolean(), tus_upload_url: z.string().nullable(), url: z.string().nullable(), - ssl_url: z.string(), + ssl_url: z.string().nullable(), meta: assemblyStatusMetaSchema, user_meta: z.record(z.unknown()).optional(), as: z @@ -374,7 +413,7 @@ export const assemblyStatusResultSchema = z basename: z.string().nullable().optional(), field: z.string().nullable().optional(), md5hash: z.string().nullable().optional(), - original_id: z.string().optional(), + original_id: z.union([z.string(), z.array(z.string())]).optional(), original_basename: z.string().nullable().optional(), original_path: z.string().nullable().optional(), original_md5hash: z.string().nullable().optional(), @@ -388,7 +427,7 @@ export const assemblyStatusResultSchema = z exec_time: z.number().nullable().optional(), ext: z.string().nullable().optional(), filepath: z.string().nullable().optional(), - path: z.string().optional(), + path: z.string().nullable().optional(), height: z.number().nullable().optional(), meta: assemblyStatusMetaSchema.nullable().optional(), mime: z.string().nullable().optional(), @@ -422,6 +461,13 @@ export const assemblyStatusResultSchema = z playlists: z.array(hlsPlaylistSchema).optional(), hls_url: z.string().optional(), forcedFileExt: z.string().optional(), + // Robot-specific metadata added at runtime by /vimeo/import + vimeo: z + .object({ + title: z.string(), + uri: z.string(), + }) + .optional(), }) .passthrough() export type AssemblyStatusResult = z.infer @@ -429,11 +475,20 @@ export type AssemblyStatusResult = z.infer export const assemblyStatusResultsSchema = z.record(z.array(assemblyStatusResultSchema)) export type AssemblyStatusResults = z.infer -// --- Create Base Schema --- +// Define a more specific schema for debuginfo if its structure is known +export const debugInfoSchema = z + .object({ + err: z.unknown().optional(), // Or a more specific error type if known + screenshot_ssl_url: z.string().optional(), + screenshot_filepath: z.string().optional(), + screenshot_s3_url: z.string().optional(), // Add s3 URL field + console_filepath: z.string().optional(), + console_ssl_url: z.string().optional(), // Add console SSL URL field + console_s3_url: z.string().optional(), // Add console s3 URL field + }) + .passthrough() -const assemblyStatusBaseSchema = z.object({ - // Extracted fields from assemblyStatusOkSchema - http_code: z.number().optional(), +export const assemblyStatusBaseSchema = z.object({ message: z.string().optional(), admin_cmd: z.unknown().optional(), assemblyId: z.string().optional(), @@ -471,6 +526,7 @@ const assemblyStatusBaseSchema = z.object({ ) .optional(), is_infinite: z.boolean().optional(), + error: z.undefined().optional(), has_dupe_jobs: z.boolean().optional(), execution_start: z.string().nullable().optional(), execution_duration: z.number().nullable().optional(), @@ -500,6 +556,7 @@ const assemblyStatusBaseSchema = z.object({ expected_tus_uploads: z.number().optional(), started_tus_uploads: z.number().optional(), finished_tus_uploads: z.number().optional(), + virusname: z.string().optional(), tus_uploads: z .array( z @@ -516,8 +573,16 @@ const assemblyStatusBaseSchema = z.object({ .passthrough(), ) .optional(), + debuginfo: debugInfoSchema.optional(), + step: z.string().optional(), + previousStep: z.string().optional(), + worker: z.string().optional(), + info: z + .object({ + retryIn: z.number().optional(), + }) + .optional(), }) -// --- End Base Schema --- export const assemblyStatusBusySchema = z .object({ @@ -526,18 +591,16 @@ export const assemblyStatusBusySchema = z // Assuming for now it might share some base fields but not all recursively? // Let's make it extend the *non-recursive* base for now. }) - .extend(assemblyStatusBaseSchema.shape) // Extend with non-recursive base fields + .extend(assemblyStatusBaseSchema.shape) .passthrough() -// --- Refactor Ok Schema to use Base --- -export const assemblyStatusOkSchema = assemblyStatusBaseSchema // Use original base +export const assemblyStatusOkSchema = assemblyStatusBaseSchema .extend({ ok: assemblyStatusOkCodeSchema, }) .passthrough() -// --- Refactor Err Schema to use Base --- -export const assemblyStatusErrSchema = assemblyStatusBaseSchema // Use ORIGINAL base +export const assemblyStatusErrSchema = assemblyStatusBaseSchema .extend({ error: assemblyStatusErrCodeSchema, ok: z.null().optional(), @@ -552,29 +615,14 @@ export const assemblyStatusErrSchema = assemblyStatusBaseSchema // Use ORIGINAL stdout: z.string().optional(), stderr: z.string().optional(), cmd: z.union([z.string(), z.array(z.union([z.string(), z.number()]))]).optional(), + admin_cmd: z.union([z.string(), z.array(z.union([z.string(), z.number()]))]).optional(), worker: z.string().optional(), - err: z.record(z.unknown()).optional(), headers: z.record(z.unknown()).optional(), retryable: z.boolean().optional(), + err: z.unknown().optional(), }) - .passthrough() // Restore passthrough() - -// --- Define Step Failed Schema --- -// Represents an error that occurred during a specific step, -// but isn't one of the predefined general error codes. -export const assemblyStatusStepFailedSchema = assemblyStatusBaseSchema // Use ORIGINAL base - .extend({ - // No 'ok' or 'error' discriminator - step: z.string(), - previousStep: z.string(), - worker: z.string(), - // Message is optional in base, but seems required for this state - message: z.string(), - }) - .passthrough() // Restore passthrough() -// --- End Step Failed Schema --- + .passthrough() -// --- Define System Error Schema --- // Represents a low-level system error not mapped to standard assembly errors. // Happened in Assemblies: // - 13ca71f3b8714859b48ec11e49be10f1 @@ -584,7 +632,7 @@ export const assemblyStatusStepFailedSchema = assemblyStatusBaseSchema // Use OR // - dfa372cef24a420092f1be42af6d1df1 // - e975612bc76e4738b759d1b36bc527f1 // All for Workspace: 6f86325febd14de4bfb38cbd04ee1f39 -export const assemblyStatusSysErrSchema = assemblyStatusBaseSchema // Use ORIGINAL base +export const assemblyStatusSysErrSchema = assemblyStatusBaseSchema .extend({ // Changed from .object() // No 'ok' or 'error' discriminator @@ -594,8 +642,7 @@ export const assemblyStatusSysErrSchema = assemblyStatusBaseSchema // Use ORIGIN path: z.string().optional(), // Path might be present // Consider adding other potential sys error fields if observed later }) - .passthrough() // SysErr can keep passthrough as it's inherently less defined -// --- End System Error Schema --- + .passthrough() // Final schema defined lazily to handle recursion // We break up inference to avoid: @@ -605,14 +652,12 @@ export const assemblyStatusSchema: z.ZodUnion< typeof assemblyStatusBusySchema, typeof assemblyStatusOkSchema, typeof assemblyStatusErrSchema, - typeof assemblyStatusStepFailedSchema, typeof assemblyStatusSysErrSchema, ] > = z.union([ assemblyStatusBusySchema, // Use schema defined above assemblyStatusOkSchema, // Use schema defined above assemblyStatusErrSchema, // Use schema defined above - assemblyStatusStepFailedSchema, // Add the new step failed state assemblyStatusSysErrSchema, // Add the new system error state ]) @@ -704,24 +749,24 @@ export function hasOkPartial( export const assemblyIndexItemSchema = z .object({ id: z.string(), // Likely always present for a list item - parent_id: assemblyStatusBaseSchema.shape.parent_id.optional(), // from base, made optional explicitly - account_id: assemblyStatusBaseSchema.shape.account_id.unwrap().optional(), // from base (it's string().optional() so unwrap then optional) - template_id: assemblyStatusBaseSchema.shape.template_id.optional(), // from base, made optional - instance: assemblyStatusBaseSchema.shape.instance.unwrap().optional(), // from base - notify_url: assemblyStatusBaseSchema.shape.notify_url.optional(), // from base - redirect_url: z.string().nullable().optional(), // Specific to list item, was in old ListedAssembly + parent_id: assemblyStatusBaseSchema.shape.parent_id.optional(), + account_id: assemblyStatusBaseSchema.shape.account_id.unwrap().optional(), + template_id: assemblyStatusBaseSchema.shape.template_id.optional(), + instance: assemblyStatusBaseSchema.shape.instance.unwrap().optional(), + notify_url: assemblyStatusBaseSchema.shape.notify_url.optional(), + redirect_url: z.string().nullable().optional(), files: z.string().nullable(), // JSON stringified, specific to list item, CAN BE NULL - warning_count: z.number().optional(), // Specific to list item - execution_duration: assemblyStatusBaseSchema.shape.execution_duration.optional(), // from base - execution_start: assemblyStatusBaseSchema.shape.execution_start.optional(), // from base - region: assemblyStatusBaseSchema.shape.region.optional(), // from base - num_input_files: assemblyStatusBaseSchema.shape.num_input_files.optional(), // from base - bytes_usage: assemblyStatusBaseSchema.shape.bytes_usage.optional(), // from base - ok: assemblyStatusOkCodeSchema.nullable().optional(), // Use exported enum - error: assemblyStatusErrCodeSchema.nullable().optional(), // Use exported enum - created: z.string(), // Specific to list item, mandatory based on old interface - created_ts: z.number().optional(), // Add new field - template_name: z.string().nullable().optional(), // Add new field + warning_count: z.number().optional(), + execution_duration: assemblyStatusBaseSchema.shape.execution_duration.optional(), + execution_start: assemblyStatusBaseSchema.shape.execution_start.optional(), + region: assemblyStatusBaseSchema.shape.region.optional(), + num_input_files: assemblyStatusBaseSchema.shape.num_input_files.optional(), + bytes_usage: assemblyStatusBaseSchema.shape.bytes_usage.optional(), + ok: assemblyStatusOkCodeSchema.nullable().optional(), + error: assemblyStatusErrCodeSchema.nullable().optional(), + created: z.string(), + created_ts: z.number().optional(), + template_name: z.string().nullable().optional(), }) .passthrough() diff --git a/src/alphalib/types/robots/_index.ts b/src/alphalib/types/robots/_index.ts index a067baea..c7bf606f 100644 --- a/src/alphalib/types/robots/_index.ts +++ b/src/alphalib/types/robots/_index.ts @@ -1,306 +1,412 @@ import { z } from 'zod' import { - interpolatableRobotAudioArtworkInstructionsSchema, meta as audioArtworkMeta, + interpolatableRobotAudioArtworkInstructionsSchema, + interpolatableRobotAudioArtworkInstructionsWithHiddenFieldsSchema, } from './audio-artwork.ts' import { - interpolatableRobotAudioConcatInstructionsSchema, meta as audioConcatMeta, + interpolatableRobotAudioConcatInstructionsSchema, + interpolatableRobotAudioConcatInstructionsWithHiddenFieldsSchema, } from './audio-concat.ts' import { - interpolatableRobotAudioEncodeInstructionsSchema, meta as audioEncodeMeta, + interpolatableRobotAudioEncodeInstructionsSchema, + interpolatableRobotAudioEncodeInstructionsWithHiddenFieldsSchema, } from './audio-encode.ts' import { - interpolatableRobotAudioLoopInstructionsSchema, meta as audioLoopMeta, + interpolatableRobotAudioLoopInstructionsSchema, + interpolatableRobotAudioLoopInstructionsWithHiddenFieldsSchema, } from './audio-loop.ts' import { - interpolatableRobotAudioMergeInstructionsSchema, meta as audioMergeMeta, + interpolatableRobotAudioMergeInstructionsSchema, + interpolatableRobotAudioMergeInstructionsWithHiddenFieldsSchema, } from './audio-merge.ts' import { - interpolatableRobotAudioWaveformInstructionsSchema, meta as audioWaveformMeta, + interpolatableRobotAudioWaveformInstructionsSchema, + interpolatableRobotAudioWaveformInstructionsWithHiddenFieldsSchema, } from './audio-waveform.ts' import { - interpolatableRobotAzureImportInstructionsSchema, meta as azureImportMeta, + interpolatableRobotAzureImportInstructionsSchema, + interpolatableRobotAzureImportInstructionsWithHiddenFieldsSchema, } from './azure-import.ts' import { - interpolatableRobotAzureStoreInstructionsSchema, meta as azureStoreMeta, + interpolatableRobotAzureStoreInstructionsSchema, + interpolatableRobotAzureStoreInstructionsWithHiddenFieldsSchema, } from './azure-store.ts' import { - interpolatableRobotBackblazeImportInstructionsSchema, meta as backblazeImportMeta, + interpolatableRobotBackblazeImportInstructionsSchema, + interpolatableRobotBackblazeImportInstructionsWithHiddenFieldsSchema, } from './backblaze-import.ts' import { - interpolatableRobotBackblazeStoreInstructionsSchema, meta as backblazeStoreMeta, + interpolatableRobotBackblazeStoreInstructionsSchema, + interpolatableRobotBackblazeStoreInstructionsWithHiddenFieldsSchema, } from './backblaze-store.ts' import { - interpolatableRobotCloudfilesImportInstructionsSchema, meta as cloudfilesImportMeta, + interpolatableRobotCloudfilesImportInstructionsSchema, + interpolatableRobotCloudfilesImportInstructionsWithHiddenFieldsSchema, } from './cloudfiles-import.ts' import { - interpolatableRobotCloudfilesStoreInstructionsSchema, meta as cloudfilesStoreMeta, + interpolatableRobotCloudfilesStoreInstructionsSchema, + interpolatableRobotCloudfilesStoreInstructionsWithHiddenFieldsSchema, } from './cloudfiles-store.ts' import { - interpolatableRobotCloudflareImportInstructionsSchema, meta as cloudflareImportMeta, + interpolatableRobotCloudflareImportInstructionsSchema, + interpolatableRobotCloudflareImportInstructionsWithHiddenFieldsSchema, } from './cloudflare-import.ts' import { - interpolatableRobotCloudflareStoreInstructionsSchema, meta as cloudflareStoreMeta, + interpolatableRobotCloudflareStoreInstructionsSchema, + interpolatableRobotCloudflareStoreInstructionsWithHiddenFieldsSchema, } from './cloudflare-store.ts' import { - interpolatableRobotDigitaloceanImportInstructionsSchema, meta as digitaloceanImportMeta, + interpolatableRobotDigitaloceanImportInstructionsSchema, + interpolatableRobotDigitaloceanImportInstructionsWithHiddenFieldsSchema, } from './digitalocean-import.ts' import { - interpolatableRobotDigitaloceanStoreInstructionsSchema, meta as digitaloceanStoreMeta, + interpolatableRobotDigitaloceanStoreInstructionsSchema, + interpolatableRobotDigitaloceanStoreInstructionsWithHiddenFieldsSchema, } from './digitalocean-store.ts' import { - interpolatableRobotDocumentAutorotateInstructionsSchema, meta as documentAutorotateMeta, + interpolatableRobotDocumentAutorotateInstructionsSchema, + interpolatableRobotDocumentAutorotateInstructionsWithHiddenFieldsSchema, } from './document-autorotate.ts' import { - interpolatableRobotDocumentConvertInstructionsSchema, meta as documentConvertMeta, + interpolatableRobotDocumentConvertInstructionsSchema, + interpolatableRobotDocumentConvertInstructionsWithHiddenFieldsSchema, } from './document-convert.ts' import { - interpolatableRobotDocumentMergeInstructionsSchema, meta as documentMergeMeta, + interpolatableRobotDocumentMergeInstructionsSchema, + interpolatableRobotDocumentMergeInstructionsWithHiddenFieldsSchema, } from './document-merge.ts' import { - interpolatableRobotDocumentOcrInstructionsSchema, meta as documentOcrMeta, + interpolatableRobotDocumentOcrInstructionsSchema, + interpolatableRobotDocumentOcrInstructionsWithHiddenFieldsSchema, } from './document-ocr.ts' import { - interpolatableRobotDocumentSplitInstructionsSchema, meta as documentSplitMeta, + interpolatableRobotDocumentSplitInstructionsSchema, + interpolatableRobotDocumentSplitInstructionsWithHiddenFieldsSchema, } from './document-split.ts' import { - interpolatableRobotDocumentThumbsInstructionsSchema, meta as documentThumbsMeta, + interpolatableRobotDocumentThumbsInstructionsSchema, + interpolatableRobotDocumentThumbsInstructionsWithHiddenFieldsSchema, } from './document-thumbs.ts' import { - interpolatableRobotDropboxImportInstructionsSchema, meta as dropboxImportMeta, + interpolatableRobotDropboxImportInstructionsSchema, + interpolatableRobotDropboxImportInstructionsWithHiddenFieldsSchema, } from './dropbox-import.ts' import { - interpolatableRobotDropboxStoreInstructionsSchema, meta as dropboxStoreMeta, + interpolatableRobotDropboxStoreInstructionsSchema, + interpolatableRobotDropboxStoreInstructionsWithHiddenFieldsSchema, } from './dropbox-store.ts' import { - interpolatableRobotEdglyDeliverInstructionsSchema, meta as edglyDeliverMeta, + interpolatableRobotEdglyDeliverInstructionsSchema, + interpolatableRobotEdglyDeliverInstructionsWithHiddenFieldsSchema, } from './edgly-deliver.ts' import { - interpolatableRobotFileCompressInstructionsSchema, meta as fileCompressMeta, + interpolatableRobotFileCompressInstructionsSchema, + interpolatableRobotFileCompressInstructionsWithHiddenFieldsSchema, } from './file-compress.ts' import { - interpolatableRobotFileDecompressInstructionsSchema, meta as fileDecompressMeta, + interpolatableRobotFileDecompressInstructionsSchema, + interpolatableRobotFileDecompressInstructionsWithHiddenFieldsSchema, } from './file-decompress.ts' import { - interpolatableRobotFileFilterInstructionsSchema, meta as fileFilterMeta, + interpolatableRobotFileFilterInstructionsSchema, + interpolatableRobotFileFilterInstructionsWithHiddenFieldsSchema, } from './file-filter.ts' -import { interpolatableRobotFileHashInstructionsSchema, meta as fileHashMeta } from './file-hash.ts' import { - interpolatableRobotFilePreviewInstructionsSchema, + meta as fileHashMeta, + interpolatableRobotFileHashInstructionsSchema, + interpolatableRobotFileHashInstructionsWithHiddenFieldsSchema, +} from './file-hash.ts' +import { meta as filePreviewMeta, + interpolatableRobotFilePreviewInstructionsSchema, + interpolatableRobotFilePreviewInstructionsWithHiddenFieldsSchema, } from './file-preview.ts' -import { interpolatableRobotFileReadInstructionsSchema, meta as fileReadMeta } from './file-read.ts' import { - interpolatableRobotFileServeInstructionsSchema, + meta as fileReadMeta, + interpolatableRobotFileReadInstructionsSchema, + interpolatableRobotFileReadInstructionsWithHiddenFieldsSchema, +} from './file-read.ts' +import { meta as fileServeMeta, + interpolatableRobotFileServeInstructionsSchema, + interpolatableRobotFileServeInstructionsWithHiddenFieldsSchema, } from './file-serve.ts' import { - interpolatableRobotFileVerifyInstructionsSchema, meta as fileVerifyMeta, + interpolatableRobotFileVerifyInstructionsSchema, + interpolatableRobotFileVerifyInstructionsWithHiddenFieldsSchema, } from './file-verify.ts' import { - interpolatableRobotFileVirusscanInstructionsSchema, meta as fileVirusscanMeta, + interpolatableRobotFileVirusscanInstructionsSchema, + interpolatableRobotFileVirusscanInstructionsWithHiddenFieldsSchema, } from './file-virusscan.ts' -import { interpolatableRobotFileWatermarkInstructionsSchema } from './file-watermark.ts' import { - interpolatableRobotFtpImportInstructionsSchema, + interpolatableRobotFileWatermarkInstructionsSchema, + interpolatableRobotFileWatermarkInstructionsWithHiddenFieldsSchema, +} from './file-watermark.ts' +import { meta as ftpImportMeta, + interpolatableRobotFtpImportInstructionsSchema, + interpolatableRobotFtpImportInstructionsWithHiddenFieldsSchema, } from './ftp-import.ts' -import { interpolatableRobotFtpStoreInstructionsSchema, meta as ftpStoreMeta } from './ftp-store.ts' import { - interpolatableRobotGoogleImportInstructionsSchema, + meta as ftpStoreMeta, + interpolatableRobotFtpStoreInstructionsSchema, + interpolatableRobotFtpStoreInstructionsWithHiddenFieldsSchema, +} from './ftp-store.ts' +import { meta as googleImportMeta, + interpolatableRobotGoogleImportInstructionsSchema, + interpolatableRobotGoogleImportInstructionsWithHiddenFieldsSchema, } from './google-import.ts' import { - interpolatableRobotGoogleStoreInstructionsSchema, meta as googleStoreMeta, + interpolatableRobotGoogleStoreInstructionsSchema, + interpolatableRobotGoogleStoreInstructionsWithHiddenFieldsSchema, } from './google-store.ts' import { - interpolatableRobotHtmlConvertInstructionsSchema, meta as htmlConvertMeta, + interpolatableRobotHtmlConvertInstructionsSchema, + interpolatableRobotHtmlConvertInstructionsWithHiddenFieldsSchema, } from './html-convert.ts' import { - interpolatableRobotHttpImportInstructionsSchema, meta as httpImportMeta, + interpolatableRobotHttpImportInstructionsSchema, + interpolatableRobotHttpImportInstructionsWithHiddenFieldsSchema, } from './http-import.ts' import { - interpolatableRobotImageBgremoveInstructionsSchema, meta as imageBgremoveMeta, + interpolatableRobotImageBgremoveInstructionsSchema, + interpolatableRobotImageBgremoveInstructionsWithHiddenFieldsSchema, } from './image-bgremove.ts' import { - interpolatableRobotImageDescribeInstructionsSchema, meta as imageDescribeMeta, + interpolatableRobotImageDescribeInstructionsSchema, + interpolatableRobotImageDescribeInstructionsWithHiddenFieldsSchema, } from './image-describe.ts' import { - interpolatableRobotImageFacedetectInstructionsSchema, meta as imageFacedetectMeta, + interpolatableRobotImageFacedetectInstructionsSchema, + interpolatableRobotImageFacedetectInstructionsWithHiddenFieldsSchema, } from './image-facedetect.ts' import { - interpolatableRobotImageGenerateInstructionsSchema, meta as imageGenerateMeta, + interpolatableRobotImageGenerateInstructionsSchema, + interpolatableRobotImageGenerateInstructionsWithHiddenFieldsSchema, } from './image-generate.ts' import { - interpolatableRobotImageMergeInstructionsSchema, meta as imageMergeMeta, + interpolatableRobotImageMergeInstructionsSchema, + interpolatableRobotImageMergeInstructionsWithHiddenFieldsSchema, } from './image-merge.ts' -import { interpolatableRobotImageOcrInstructionsSchema, meta as imageOcrMeta } from './image-ocr.ts' import { - interpolatableRobotImageOptimizeInstructionsSchema, + meta as imageOcrMeta, + interpolatableRobotImageOcrInstructionsSchema, + interpolatableRobotImageOcrInstructionsWithHiddenFieldsSchema, +} from './image-ocr.ts' +import { meta as imageOptimizeMeta, + interpolatableRobotImageOptimizeInstructionsSchema, + interpolatableRobotImageOptimizeInstructionsWithHiddenFieldsSchema, } from './image-optimize.ts' import { - interpolatableRobotImageResizeInstructionsSchema, meta as imageResizeMeta, + interpolatableRobotImageResizeInstructionsSchema, + interpolatableRobotImageResizeInstructionsWithHiddenFieldsSchema, } from './image-resize.ts' +import { + interpolatableRobotMetaReadInstructionsSchema, + interpolatableRobotMetaReadInstructionsWithHiddenFieldsSchema, +} from './meta-read.ts' import { interpolatableRobotMetaWriteInstructionsSchema, + interpolatableRobotMetaWriteInstructionsWithHiddenFieldsSchema, meta as metaWriteMeta, } from './meta-write.ts' import { interpolatableRobotMinioImportInstructionsSchema, + interpolatableRobotMinioImportInstructionsWithHiddenFieldsSchema, meta as minioImportMeta, } from './minio-import.ts' import { interpolatableRobotMinioStoreInstructionsSchema, + interpolatableRobotMinioStoreInstructionsWithHiddenFieldsSchema, meta as minioStoreMeta, } from './minio-store.ts' import { interpolatableRobotProgressSimulateInstructionsSchema } from './progress-simulate.ts' -import { interpolatableRobotS3ImportInstructionsSchema, meta as s3ImportMeta } from './s3-import.ts' -import { interpolatableRobotS3StoreInstructionsSchema, meta as s3StoreMeta } from './s3-store.ts' +import { + interpolatableRobotS3ImportInstructionsSchema, + interpolatableRobotS3ImportInstructionsWithHiddenFieldsSchema, + meta as s3ImportMeta, +} from './s3-import.ts' +import { + interpolatableRobotS3StoreInstructionsSchema, + interpolatableRobotS3StoreInstructionsWithHiddenFieldsSchema, + meta as s3StoreMeta, +} from './s3-store.ts' import { interpolatableRobotScriptRunInstructionsSchema, + interpolatableRobotScriptRunInstructionsWithHiddenFieldsSchema, meta as scriptRunMeta, } from './script-run.ts' import { interpolatableRobotSftpImportInstructionsSchema, + interpolatableRobotSftpImportInstructionsWithHiddenFieldsSchema, meta as sftpImportMeta, } from './sftp-import.ts' import { interpolatableRobotSftpStoreInstructionsSchema, + interpolatableRobotSftpStoreInstructionsWithHiddenFieldsSchema, meta as sftpStoreMeta, } from './sftp-store.ts' import { interpolatableRobotSpeechTranscribeInstructionsSchema, - robotSpeechTranscribeInstructionsWithHiddenFieldsSchema, + interpolatableRobotSpeechTranscribeInstructionsWithHiddenFieldsSchema, meta as speechTranscribeMeta, } from './speech-transcribe.ts' import { interpolatableRobotSupabaseImportInstructionsSchema, + interpolatableRobotSupabaseImportInstructionsWithHiddenFieldsSchema, meta as supabaseImportMeta, } from './supabase-import.ts' import { interpolatableRobotSupabaseStoreInstructionsSchema, + interpolatableRobotSupabaseStoreInstructionsWithHiddenFieldsSchema, meta as supabaseStoreMeta, } from './supabase-store.ts' import { interpolatableRobotSwiftImportInstructionsSchema, + interpolatableRobotSwiftImportInstructionsWithHiddenFieldsSchema, meta as swiftImportMeta, } from './swift-import.ts' import { interpolatableRobotSwiftStoreInstructionsSchema, + interpolatableRobotSwiftStoreInstructionsWithHiddenFieldsSchema, meta as swiftStoreMeta, } from './swift-store.ts' import { interpolatableRobotTextSpeakInstructionsSchema, + interpolatableRobotTextSpeakInstructionsWithHiddenFieldsSchema, meta as textSpeakMeta, } from './text-speak.ts' import { interpolatableRobotTextTranslateInstructionsSchema, + interpolatableRobotTextTranslateInstructionsWithHiddenFieldsSchema, meta as textTranslateMeta, } from './text-translate.ts' import { interpolatableRobotTigrisImportInstructionsSchema, + interpolatableRobotTigrisImportInstructionsWithHiddenFieldsSchema, meta as tigrisImport, } from './tigris-import.ts' import { interpolatableRobotTigrisStoreInstructionsSchema, + interpolatableRobotTigrisStoreInstructionsWithHiddenFieldsSchema, meta as tigrisStore, } from './tigris-store.ts' import { interpolatableRobotTlcdnDeliverInstructionsSchema, + interpolatableRobotTlcdnDeliverInstructionsWithHiddenFieldsSchema, meta as tlcdnDeliverMeta, } from './tlcdn-deliver.ts' -import { interpolatableRobotTusStoreInstructionsSchema, meta as tusStoreMeta } from './tus-store.ts' +import { + interpolatableRobotTusStoreInstructionsSchema, + interpolatableRobotTusStoreInstructionsWithHiddenFieldsSchema, + meta as tusStoreMeta, +} from './tus-store.ts' import { interpolatableRobotUploadHandleInstructionsSchema, + interpolatableRobotUploadHandleInstructionsWithHiddenFieldsSchema, meta as uploadHandleMeta, } from './upload-handle.ts' import { interpolatableRobotVideoAdaptiveInstructionsSchema, + interpolatableRobotVideoAdaptiveInstructionsWithHiddenFieldsSchema, meta as videoAdaptiveMeta, } from './video-adaptive.ts' import { interpolatableRobotVideoConcatInstructionsSchema, + interpolatableRobotVideoConcatInstructionsWithHiddenFieldsSchema, meta as videoConcatMeta, } from './video-concat.ts' import { interpolatableRobotVideoEncodeInstructionsSchema, + interpolatableRobotVideoEncodeInstructionsWithHiddenFieldsSchema, meta as videoEncodeMeta, } from './video-encode.ts' import { interpolatableRobotVideoMergeInstructionsSchema, + interpolatableRobotVideoMergeInstructionsWithHiddenFieldsSchema, meta as videoMergeMeta, } from './video-merge.ts' import { interpolatableRobotVideoOndemandInstructionsSchema, - robotVideoOndemandInstructionsWithHiddenFieldsSchema, + interpolatableRobotVideoOndemandInstructionsWithHiddenFieldsSchema, meta as videoOndemandMeta, } from './video-ondemand.ts' import { interpolatableRobotVideoSubtitleInstructionsSchema, + interpolatableRobotVideoSubtitleInstructionsWithHiddenFieldsSchema, meta as videoSubtitleMeta, } from './video-subtitle.ts' import { interpolatableRobotVideoThumbsInstructionsSchema, + interpolatableRobotVideoThumbsInstructionsWithHiddenFieldsSchema, meta as videoThumbsMeta, } from './video-thumbs.ts' import { interpolatableRobotVimeoImportInstructionsSchema, + interpolatableRobotVimeoImportInstructionsWithHiddenFieldsSchema, meta as vimeoImportMeta, } from './vimeo-import.ts' import { interpolatableRobotVimeoStoreInstructionsSchema, + interpolatableRobotVimeoStoreInstructionsWithHiddenFieldsSchema, meta as vimeoStoreMeta, } from './vimeo-store.ts' import { interpolatableRobotWasabiImportInstructionsSchema, + interpolatableRobotWasabiImportInstructionsWithHiddenFieldsSchema, meta as wasabiImportMeta, } from './wasabi-import.ts' import { interpolatableRobotWasabiStoreInstructionsSchema, + interpolatableRobotWasabiStoreInstructionsWithHiddenFieldsSchema, meta as wasabiStoreMeta, } from './wasabi-store.ts' import { interpolatableRobotYoutubeStoreInstructionsSchema, + interpolatableRobotYoutubeStoreInstructionsWithHiddenFieldsSchema, meta as youtubeStoreMeta, } from './youtube-store.ts' @@ -380,6 +486,7 @@ const robotStepsInstructions = [ interpolatableRobotVideoOndemandInstructionsSchema, interpolatableRobotVideoSubtitleInstructionsSchema, interpolatableRobotVideoThumbsInstructionsSchema, + interpolatableRobotVimeoImportInstructionsSchema, interpolatableRobotVimeoStoreInstructionsSchema, interpolatableRobotWasabiImportInstructionsSchema, interpolatableRobotWasabiStoreInstructionsSchema, @@ -387,85 +494,87 @@ const robotStepsInstructions = [ ] as const const robotStepsInstructionsWithHiddenFields = [ - interpolatableRobotAudioArtworkInstructionsSchema, - interpolatableRobotAudioConcatInstructionsSchema, - interpolatableRobotAudioEncodeInstructionsSchema, - interpolatableRobotAudioLoopInstructionsSchema, - interpolatableRobotAudioMergeInstructionsSchema, - interpolatableRobotAudioWaveformInstructionsSchema, - interpolatableRobotAzureImportInstructionsSchema, - interpolatableRobotAzureStoreInstructionsSchema, - interpolatableRobotBackblazeImportInstructionsSchema, - interpolatableRobotBackblazeStoreInstructionsSchema, - interpolatableRobotCloudfilesImportInstructionsSchema, - interpolatableRobotCloudfilesStoreInstructionsSchema, - interpolatableRobotCloudflareImportInstructionsSchema, - interpolatableRobotCloudflareStoreInstructionsSchema, - interpolatableRobotDigitaloceanImportInstructionsSchema, - interpolatableRobotDigitaloceanStoreInstructionsSchema, - interpolatableRobotDocumentAutorotateInstructionsSchema, - interpolatableRobotDocumentConvertInstructionsSchema, - interpolatableRobotDocumentMergeInstructionsSchema, - interpolatableRobotDocumentOcrInstructionsSchema, - interpolatableRobotFileReadInstructionsSchema, - interpolatableRobotDocumentSplitInstructionsSchema, - interpolatableRobotDocumentThumbsInstructionsSchema, - interpolatableRobotDropboxImportInstructionsSchema, - interpolatableRobotDropboxStoreInstructionsSchema, - interpolatableRobotEdglyDeliverInstructionsSchema, - interpolatableRobotFileCompressInstructionsSchema, - interpolatableRobotFileDecompressInstructionsSchema, - interpolatableRobotFileFilterInstructionsSchema, - interpolatableRobotFileHashInstructionsSchema, - interpolatableRobotFilePreviewInstructionsSchema, - interpolatableRobotFileServeInstructionsSchema, - interpolatableRobotFileVerifyInstructionsSchema, - interpolatableRobotFileVirusscanInstructionsSchema, - interpolatableRobotFtpImportInstructionsSchema, - interpolatableRobotFtpStoreInstructionsSchema, - interpolatableRobotGoogleImportInstructionsSchema, - interpolatableRobotGoogleStoreInstructionsSchema, - interpolatableRobotHtmlConvertInstructionsSchema, - interpolatableRobotHttpImportInstructionsSchema, - interpolatableRobotImageDescribeInstructionsSchema, - interpolatableRobotImageFacedetectInstructionsSchema, - interpolatableRobotImageGenerateInstructionsSchema, - interpolatableRobotImageMergeInstructionsSchema, - interpolatableRobotImageOcrInstructionsSchema, - interpolatableRobotImageOptimizeInstructionsSchema, - interpolatableRobotImageResizeInstructionsSchema, - interpolatableRobotMetaWriteInstructionsSchema, - interpolatableRobotMinioImportInstructionsSchema, - interpolatableRobotMinioStoreInstructionsSchema, - interpolatableRobotS3ImportInstructionsSchema, - interpolatableRobotS3StoreInstructionsSchema, - interpolatableRobotScriptRunInstructionsSchema, - interpolatableRobotSftpImportInstructionsSchema, - interpolatableRobotSftpStoreInstructionsSchema, - robotSpeechTranscribeInstructionsWithHiddenFieldsSchema, - interpolatableRobotSupabaseImportInstructionsSchema, - interpolatableRobotSupabaseStoreInstructionsSchema, - interpolatableRobotSwiftImportInstructionsSchema, - interpolatableRobotSwiftStoreInstructionsSchema, - interpolatableRobotTextSpeakInstructionsSchema, - interpolatableRobotTextTranslateInstructionsSchema, - interpolatableRobotTigrisImportInstructionsSchema, - interpolatableRobotTigrisStoreInstructionsSchema, - interpolatableRobotTlcdnDeliverInstructionsSchema, - interpolatableRobotTusStoreInstructionsSchema, - interpolatableRobotUploadHandleInstructionsSchema, - interpolatableRobotVideoAdaptiveInstructionsSchema, - interpolatableRobotVideoConcatInstructionsSchema, - interpolatableRobotVideoEncodeInstructionsSchema, - interpolatableRobotVideoMergeInstructionsSchema, - robotVideoOndemandInstructionsWithHiddenFieldsSchema, - interpolatableRobotVideoSubtitleInstructionsSchema, - interpolatableRobotVideoThumbsInstructionsSchema, - interpolatableRobotVimeoImportInstructionsSchema, - interpolatableRobotVimeoStoreInstructionsSchema, - interpolatableRobotWasabiImportInstructionsSchema, - interpolatableRobotWasabiStoreInstructionsSchema, - interpolatableRobotYoutubeStoreInstructionsSchema, + interpolatableRobotAudioArtworkInstructionsWithHiddenFieldsSchema, + interpolatableRobotAudioConcatInstructionsWithHiddenFieldsSchema, + interpolatableRobotAudioEncodeInstructionsWithHiddenFieldsSchema, + interpolatableRobotAudioLoopInstructionsWithHiddenFieldsSchema, + interpolatableRobotAudioMergeInstructionsWithHiddenFieldsSchema, + interpolatableRobotAudioWaveformInstructionsWithHiddenFieldsSchema, + interpolatableRobotAzureImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotAzureStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotBackblazeImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotBackblazeStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotCloudfilesImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotCloudfilesStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotCloudflareImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotCloudflareStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotDigitaloceanImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotDigitaloceanStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotDocumentAutorotateInstructionsWithHiddenFieldsSchema, + interpolatableRobotDocumentConvertInstructionsWithHiddenFieldsSchema, + interpolatableRobotDocumentMergeInstructionsWithHiddenFieldsSchema, + interpolatableRobotDocumentOcrInstructionsWithHiddenFieldsSchema, + interpolatableRobotFileReadInstructionsWithHiddenFieldsSchema, + interpolatableRobotDocumentSplitInstructionsWithHiddenFieldsSchema, + interpolatableRobotDocumentThumbsInstructionsWithHiddenFieldsSchema, + interpolatableRobotDropboxImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotDropboxStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotEdglyDeliverInstructionsWithHiddenFieldsSchema, + interpolatableRobotFileCompressInstructionsWithHiddenFieldsSchema, + interpolatableRobotFileDecompressInstructionsWithHiddenFieldsSchema, + interpolatableRobotFileFilterInstructionsWithHiddenFieldsSchema, + interpolatableRobotFileHashInstructionsWithHiddenFieldsSchema, + interpolatableRobotFilePreviewInstructionsWithHiddenFieldsSchema, + interpolatableRobotFileServeInstructionsWithHiddenFieldsSchema, + interpolatableRobotFileVerifyInstructionsWithHiddenFieldsSchema, + interpolatableRobotFileVirusscanInstructionsWithHiddenFieldsSchema, + interpolatableRobotFileWatermarkInstructionsWithHiddenFieldsSchema, + interpolatableRobotFtpImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotFtpStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotGoogleImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotGoogleStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotHtmlConvertInstructionsWithHiddenFieldsSchema, + interpolatableRobotHttpImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotImageBgremoveInstructionsWithHiddenFieldsSchema, + interpolatableRobotImageDescribeInstructionsWithHiddenFieldsSchema, + interpolatableRobotImageFacedetectInstructionsWithHiddenFieldsSchema, + interpolatableRobotImageGenerateInstructionsWithHiddenFieldsSchema, + interpolatableRobotImageMergeInstructionsWithHiddenFieldsSchema, + interpolatableRobotImageOcrInstructionsWithHiddenFieldsSchema, + interpolatableRobotImageOptimizeInstructionsWithHiddenFieldsSchema, + interpolatableRobotImageResizeInstructionsWithHiddenFieldsSchema, + interpolatableRobotMetaWriteInstructionsWithHiddenFieldsSchema, + interpolatableRobotMinioImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotMinioStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotS3ImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotS3StoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotScriptRunInstructionsWithHiddenFieldsSchema, + interpolatableRobotSftpImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotSftpStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotSpeechTranscribeInstructionsWithHiddenFieldsSchema, + interpolatableRobotSupabaseImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotSupabaseStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotSwiftImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotSwiftStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotTextSpeakInstructionsWithHiddenFieldsSchema, + interpolatableRobotTextTranslateInstructionsWithHiddenFieldsSchema, + interpolatableRobotTigrisImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotTigrisStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotTlcdnDeliverInstructionsWithHiddenFieldsSchema, + interpolatableRobotTusStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotUploadHandleInstructionsWithHiddenFieldsSchema, + interpolatableRobotVideoAdaptiveInstructionsWithHiddenFieldsSchema, + interpolatableRobotVideoConcatInstructionsWithHiddenFieldsSchema, + interpolatableRobotVideoEncodeInstructionsWithHiddenFieldsSchema, + interpolatableRobotVideoMergeInstructionsWithHiddenFieldsSchema, + interpolatableRobotVideoOndemandInstructionsWithHiddenFieldsSchema, + interpolatableRobotVideoSubtitleInstructionsWithHiddenFieldsSchema, + interpolatableRobotVideoThumbsInstructionsWithHiddenFieldsSchema, + interpolatableRobotVimeoImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotVimeoStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotWasabiImportInstructionsWithHiddenFieldsSchema, + interpolatableRobotWasabiStoreInstructionsWithHiddenFieldsSchema, + interpolatableRobotYoutubeStoreInstructionsWithHiddenFieldsSchema, ] as const /** @@ -483,11 +592,12 @@ export const robotsWithHiddenFieldsSchema = z.discriminatedUnion('robot', [ export const robotsWithHiddenBotsSchema = z.discriminatedUnion('robot', [ ...robotStepsInstructions, interpolatableRobotFileWatermarkInstructionsSchema, + interpolatableRobotMetaReadInstructionsSchema, interpolatableRobotProgressSimulateInstructionsSchema, ]) export const robotsWithHiddenBotsAndFieldsSchema = z.discriminatedUnion('robot', [ ...robotStepsInstructionsWithHiddenFields, - interpolatableRobotFileWatermarkInstructionsSchema, + interpolatableRobotMetaReadInstructionsWithHiddenFieldsSchema, interpolatableRobotProgressSimulateInstructionsSchema, ]) diff --git a/src/alphalib/types/robots/_instructions-primitives.ts b/src/alphalib/types/robots/_instructions-primitives.ts index f2a44b6e..d51dbea3 100644 --- a/src/alphalib/types/robots/_instructions-primitives.ts +++ b/src/alphalib/types/robots/_instructions-primitives.ts @@ -416,7 +416,8 @@ export function interpolateRobot>( export type RobotBase = z.infer export const robotBase = z .object({ - output_meta: z.union([z.record(z.boolean()), z.boolean()]).optional().describe(` + output_meta: z.union([z.record(z.boolean()), z.boolean(), z.array(z.string())]).optional() + .describe(` Allows you to specify a set of metadata that is more expensive on CPU power to calculate, and thus is disabled by default to keep your Assemblies processing fast. For images, you can add \`"has_transparency": true\` in this object to extract if the image contains transparent parts and \`"dominant_colors": true\` to extract an array of hexadecimal color codes from the image. @@ -474,6 +475,33 @@ export const useParamObjectOfStepsSchema = z steps: useParamStepsSchema, bundle_steps: z.boolean().optional(), group_by_original: z.boolean().optional(), + fields: z.array(z.string()).optional().describe(` +Array of field names to filter input files by when using steps. +`), + }) + .strict() + +// Hidden fields variants for use parameters +export const useParamObjectWithHiddenFieldsSchema = useParamObjectSchema.extend({ + result: z.union([z.literal('debug'), z.boolean()]).optional(), +}) + +export const useParamArrayOfUseParamObjectWithHiddenFieldsSchema = z.array( + useParamObjectWithHiddenFieldsSchema, +) +export const useParamStepsWithHiddenFieldsSchema = z.union([ + useParamStringSchema, + useParamArrayOfStringsSchema, + useParamArrayOfUseParamObjectWithHiddenFieldsSchema, +]) +export const useParamObjectOfStepsWithHiddenFieldsSchema = z + .object({ + steps: useParamStepsWithHiddenFieldsSchema, + bundle_steps: z.boolean().optional(), + group_by_original: z.boolean().optional(), + fields: z.array(z.string()).optional().describe(` +Array of field names to filter input files by when using steps. +`), }) .strict() @@ -502,7 +530,36 @@ Specifies which Step(s) to use as input. \`\`\` > [!Tip] -> That’s likely all you need to know about \`use\`, but you can view [Advanced use cases](/docs/topics/use-parameter/). +> That's likely all you need to know about \`use\`, but you can view [Advanced use cases](/docs/topics/use-parameter/). +`, + ) + .optional(), + }) + .strict() + +export type RobotUseWithHiddenFields = z.infer +export const robotUseWithHiddenFields = z + .object({ + use: z + .union([useParamStepsWithHiddenFieldsSchema, useParamObjectOfStepsWithHiddenFieldsSchema]) + .describe( + ` +Specifies which Step(s) to use as input. + +- You can pick any names for Steps except \`":original"\` (reserved for user uploads handled by Transloadit) +- You can provide several Steps as input with arrays: + \`\`\`json + { + "use": [ + ":original", + "encoded", + "resized" + ] + } + \`\`\` + +> [!Tip] +> That's likely all you need to know about \`use\`, but you can view [Advanced use cases](/docs/topics/use-parameter/). `, ) .optional(), @@ -634,7 +691,7 @@ export const robotFFmpeg = z.object({ qdiff: z.number().optional(), qmax: z.number().optional(), qmin: z.number().optional(), - r: z.number().optional(), + r: z.union([z.number(), z.string()]).nullable().optional(), rc_eq: z.string().optional(), refs: z.number().optional(), s: z.string().optional(), @@ -959,7 +1016,46 @@ export const percentageSchema = z.string().regex(/^\d+%$/) export const color_with_alpha = z.string().regex(/^#?[0-9a-fA-F]{6}([0-9a-fA-F]{2})?$/) -export const color_without_alpha = z.string().regex(/^#?[0-9a-fA-F]{6}$/) +export const color_without_alpha = z.string().regex(/^#?[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/) + +// Extended color schemas that also support named colors (for robots that support them) +export const color_with_alpha_with_named = z.union([ + color_with_alpha, // Extend the base hex color schema + z.enum([ + 'transparent', + 'none', + 'black', + 'white', + 'red', + 'green', + 'blue', + 'yellow', + 'cyan', + 'magenta', + 'gray', + 'grey', + 'opaque', + ]), // Named colors +]) + +export const color_without_alpha_with_named = z.union([ + color_without_alpha, // Extend the base hex color schema + z.enum([ + 'transparent', + 'none', + 'black', + 'white', + 'red', + 'green', + 'blue', + 'yellow', + 'cyan', + 'magenta', + 'gray', + 'grey', + 'opaque', + ]), // Named colors +]) export const bitrateSchema = z.number().int().min(1) @@ -1234,6 +1330,9 @@ While we recommend to use Template Credentials at all times, some use If you do use these parameters, make sure to use the **Endpoint** value under \`Storage > S3 Connection\` in the Supabase console for the \`"host"\` value, and the values under **S3 Access Keys** on the same page for your \`"key"\` and \`"secret"\`. `), bucket: z.string().optional(), + bucket_region: z.string().optional().describe(` +The region where the bucket is located. +`), host: z.string().optional(), key: z.string().optional(), secret: z.string().optional(), @@ -1249,6 +1348,9 @@ export const swiftBase = z While we recommend to use Template Credentials at all times, some use cases demand dynamic credentials for which using Template Credentials is too unwieldy because of their static nature. If you have this requirement, feel free to use the following parameters instead: \`"bucket"\`, \`"host"\`, \`"key"\`, \`"secret"\`. `), bucket: z.string().optional(), + bucket_region: z.string().optional().describe(` +The region where the bucket is located. +`), host: z.string().optional(), key: z.string().optional(), secret: z.string().optional(), @@ -1264,6 +1366,9 @@ Please create your associated Template Credentials in your Transloadi While we recommend to use Template Credentials at all times, some use cases demand dynamic credentials for which using Template Credentials is too unwieldy because of their static nature. If you have this requirement, feel free to use the following parameters instead: \`"bucket"\`, \`"host"\`, \`"key"\`, \`"secret"\`. `), bucket: z.string().optional(), + bucket_region: z.string().optional().describe(` +The region where the bucket is located. +`), host: z.string().optional(), key: z.string().optional(), secret: z.string().optional(), @@ -1279,6 +1384,9 @@ Please create your associated Template Credentials in your Transloadi While we recommend to use Template Credentials at all times, some use cases demand dynamic credentials for which using Template Credentials is too unwieldy because of their static nature. If you have this requirement, feel free to use the following parameters instead: \`"bucket"\`, \`"host"\`, \`"key"\`, \`"secret"\`. `), bucket: z.string().optional(), + bucket_region: z.string().optional().describe(` +The region where the bucket is located. +`), host: z.string().optional(), key: z.string().optional(), secret: z.string().optional(), @@ -1289,11 +1397,13 @@ export type FilterExpression = z.infer export const filterExpression = z.union([ z.string(), z.number(), - z.array(z.union([z.string(), z.number()])), + z.null(), + z.array(z.union([z.string(), z.number(), z.null()])), ]) export type FilterCondition = z.infer export const filterCondition = z.union([ + z.null(), z.string(), z.array( z.tuple([ @@ -1456,6 +1566,9 @@ The prefix used for the naming. For example, a prefix of \`"segment_"\` would pr `), segment_name: z.string().default('').describe(` The name used for the final segment. Available variables are \`\${segment_prefix}\`, \`\${segment_number}\` and \`\${segment_id}\` (which is a UUIDv4 without dashes). +`), + segment_time_delta: z.number().optional().describe(` +Delta to apply to segment duration. This is optional and allows fine-tuning of segment boundaries. `), }) .strict() diff --git a/src/alphalib/types/robots/assembly-savejson.ts b/src/alphalib/types/robots/assembly-savejson.ts index 4baede07..ad5247e2 100644 --- a/src/alphalib/types/robots/assembly-savejson.ts +++ b/src/alphalib/types/robots/assembly-savejson.ts @@ -1,6 +1,6 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, type RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, type RobotMetaInput, robotBase } from './_instructions-primitives.ts' // @ts-expect-error - AssemblySavejsonRobot is not ready yet @TODO please supply missing keys export const meta: RobotMetaInput = { diff --git a/src/alphalib/types/robots/audio-artwork.ts b/src/alphalib/types/robots/audio-artwork.ts index 49661db1..3c45813a 100644 --- a/src/alphalib/types/robots/audio-artwork.ts +++ b/src/alphalib/types/robots/audio-artwork.ts @@ -1,13 +1,13 @@ import { z } from 'zod' +import { stackVersions } from '../stackVersions.ts' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { - robotFFmpegAudio, + interpolateRobot, robotBase, + robotFFmpegAudio, robotUse, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' -import { stackVersions } from '../stackVersions.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -66,7 +66,18 @@ Whether the original file should be transcoded into a new format if there is an `), }) .strict() + +export const robotAudioArtworkInstructionsWithHiddenFieldsSchema = + robotAudioArtworkInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotAudioArtworkInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotAudioArtworkInstructions = z.infer +export type RobotAudioArtworkInstructionsWithHiddenFields = z.infer< + typeof robotAudioArtworkInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotAudioArtworkInstructionsSchema = interpolateRobot( robotAudioArtworkInstructionsSchema, @@ -74,3 +85,13 @@ export const interpolatableRobotAudioArtworkInstructionsSchema = interpolateRobo export type InterpolatableRobotAudioArtworkInstructions = z.input< typeof interpolatableRobotAudioArtworkInstructionsSchema > + +export const interpolatableRobotAudioArtworkInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotAudioArtworkInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotAudioArtworkInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotAudioArtworkInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotAudioArtworkInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotAudioArtworkInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/audio-concat.ts b/src/alphalib/types/robots/audio-concat.ts index 6cbd7dfc..8310495d 100644 --- a/src/alphalib/types/robots/audio-concat.ts +++ b/src/alphalib/types/robots/audio-concat.ts @@ -1,15 +1,16 @@ import { z } from 'zod' +import { stackVersions } from '../stackVersions.ts' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { bitrateSchema, + interpolateRobot, robotBase, + robotFFmpegAudio, robotUse, + robotUseWithHiddenFields, sampleRateSchema, - robotFFmpegAudio, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' -import { stackVersions } from '../stackVersions.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -87,10 +88,30 @@ Sample rate of the resulting audio file, in Hertz. If not specified will default When used this adds an audio fade in and out effect between each section of your concatenated audio file. The float value is used, so if you want an audio delay effect of 500 milliseconds between each video section, you would select 0.5. Integer values can also be represented. This parameter does not add an audio fade effect at the beginning or end of your result audio file. If you want to do so, create an additional [🤖/audio/encode](/docs/robots/audio-encode/) Step and use our \`ffmpeg\` parameter as shown in this [demo](/demos/audio-encoding/ffmpeg-fade-in-and-out/). +`), + crossfade: z.boolean().default(false).describe(` +When set to \`true\`, this parameter enables crossfading between concatenated audio files using FFmpeg's \`acrossfade\` filter. This creates a smooth transition where the end of one audio file overlaps and blends with the beginning of the next file. + +The duration of the crossfade is controlled by the \`audio_fade_seconds\` parameter (defaults to 1 second if \`audio_fade_seconds\` is 0). + +Note: This parameter requires at least 2 audio files to concatenate and only works with audio files, not video files. `), }) .strict() + +export const robotAudioConcatInstructionsWithHiddenFieldsSchema = robotAudioConcatInstructionsSchema + .omit({ use: true }) + .merge(robotUseWithHiddenFields) + .extend({ + result: z + .union([z.literal('debug'), robotAudioConcatInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotAudioConcatInstructions = z.infer +export type RobotAudioConcatInstructionsWithHiddenFields = z.infer< + typeof robotAudioConcatInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotAudioConcatInstructionsSchema = interpolateRobot( robotAudioConcatInstructionsSchema, @@ -98,3 +119,13 @@ export const interpolatableRobotAudioConcatInstructionsSchema = interpolateRobot export type InterpolatableRobotAudioConcatInstructions = z.input< typeof interpolatableRobotAudioConcatInstructionsSchema > + +export const interpolatableRobotAudioConcatInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotAudioConcatInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotAudioConcatInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotAudioConcatInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotAudioConcatInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotAudioConcatInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/audio-encode.ts b/src/alphalib/types/robots/audio-encode.ts index 98d68dac..ce06372c 100644 --- a/src/alphalib/types/robots/audio-encode.ts +++ b/src/alphalib/types/robots/audio-encode.ts @@ -1,15 +1,15 @@ import { z } from 'zod' +import { stackVersions } from '../stackVersions.ts' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { bitrateSchema, - robotFFmpegAudio, + interpolateRobot, robotBase, + robotFFmpegAudio, robotUse, sampleRateSchema, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' -import { stackVersions } from '../stackVersions.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -68,7 +68,18 @@ Sample rate of the resulting audio file, in Hertz. If not specified will default `), }) .strict() + +export const robotAudioEncodeInstructionsWithHiddenFieldsSchema = + robotAudioEncodeInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotAudioEncodeInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotAudioEncodeInstructions = z.infer +export type RobotAudioEncodeInstructionsWithHiddenFields = z.infer< + typeof robotAudioEncodeInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotAudioEncodeInstructionsSchema = interpolateRobot( robotAudioEncodeInstructionsSchema, @@ -76,3 +87,13 @@ export const interpolatableRobotAudioEncodeInstructionsSchema = interpolateRobot export type InterpolatableRobotAudioEncodeInstructions = z.input< typeof interpolatableRobotAudioEncodeInstructionsSchema > + +export const interpolatableRobotAudioEncodeInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotAudioEncodeInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotAudioEncodeInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotAudioEncodeInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotAudioEncodeInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotAudioEncodeInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/audio-loop.ts b/src/alphalib/types/robots/audio-loop.ts index f27af9f5..37d395e7 100644 --- a/src/alphalib/types/robots/audio-loop.ts +++ b/src/alphalib/types/robots/audio-loop.ts @@ -1,15 +1,15 @@ import { z } from 'zod' +import { stackVersions } from '../stackVersions.ts' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { bitrateSchema, - robotFFmpegAudio, + interpolateRobot, robotBase, + robotFFmpegAudio, robotUse, sampleRateSchema, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' -import { stackVersions } from '../stackVersions.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -67,7 +67,16 @@ Target duration for the whole process in seconds. The Robot will loop `), }) .strict() + +export const robotAudioLoopInstructionsWithHiddenFieldsSchema = + robotAudioLoopInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotAudioLoopInstructionsSchema.shape.result]).optional(), + }) + export type RobotAudioLoopInstructions = z.infer +export type RobotAudioLoopInstructionsWithHiddenFields = z.infer< + typeof robotAudioLoopInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotAudioLoopInstructionsSchema = interpolateRobot( robotAudioLoopInstructionsSchema, @@ -75,3 +84,13 @@ export const interpolatableRobotAudioLoopInstructionsSchema = interpolateRobot( export type InterpolatableRobotAudioLoopInstructions = z.input< typeof interpolatableRobotAudioLoopInstructionsSchema > + +export const interpolatableRobotAudioLoopInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotAudioLoopInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotAudioLoopInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotAudioLoopInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotAudioLoopInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotAudioLoopInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/audio-merge.ts b/src/alphalib/types/robots/audio-merge.ts index bb6817a4..214174d9 100644 --- a/src/alphalib/types/robots/audio-merge.ts +++ b/src/alphalib/types/robots/audio-merge.ts @@ -1,15 +1,16 @@ import { z } from 'zod' +import { stackVersions } from '../stackVersions.ts' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { bitrateSchema, - robotFFmpegAudio, + interpolateRobot, robotBase, + robotFFmpegAudio, robotUse, + robotUseWithHiddenFields, sampleRateSchema, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' -import { stackVersions } from '../stackVersions.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -89,7 +90,20 @@ Valid values are \`"average"\` and \`"sum"\` here. \`"average"\` means each inpu `), }) .strict() + +export const robotAudioMergeInstructionsWithHiddenFieldsSchema = robotAudioMergeInstructionsSchema + .omit({ use: true }) + .merge(robotUseWithHiddenFields) + .extend({ + result: z + .union([z.literal('debug'), robotAudioMergeInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotAudioMergeInstructions = z.infer +export type RobotAudioMergeInstructionsWithHiddenFields = z.infer< + typeof robotAudioMergeInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotAudioMergeInstructionsSchema = interpolateRobot( robotAudioMergeInstructionsSchema, @@ -97,3 +111,13 @@ export const interpolatableRobotAudioMergeInstructionsSchema = interpolateRobot( export type InterpolatableRobotAudioMergeInstructions = z.input< typeof interpolatableRobotAudioMergeInstructionsSchema > + +export const interpolatableRobotAudioMergeInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotAudioMergeInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotAudioMergeInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotAudioMergeInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotAudioMergeInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotAudioMergeInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/audio-waveform.ts b/src/alphalib/types/robots/audio-waveform.ts index 6c61efff..35a8e632 100644 --- a/src/alphalib/types/robots/audio-waveform.ts +++ b/src/alphalib/types/robots/audio-waveform.ts @@ -1,13 +1,13 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { color_with_alpha, - robotFFmpeg, + interpolateRobot, robotBase, + robotFFmpeg, robotUse, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -78,8 +78,8 @@ The height of the resulting image if the format \`"image"\` was selected. style: z.union([z.literal(0), z.literal(1)]).default(0).describe(` Either a value of \`0\` or \`1\`, corresponding to using either the legacy waveform tool, or the new tool respectively, with the new tool offering an improved style. Other Robot parameters still function as described, with either tool. `), - antialiasing: z.union([z.literal(0), z.literal(1)]).default(0).describe(` -Either a value of \`0\` or \`1\`, corresponding to if you want to enable antialiasing to achieve smoother edges in the waveform graph or not. + antialiasing: z.union([z.literal(0), z.literal(1), z.boolean()]).default(0).describe(` +Either a value of \`0\` or \`1\`, or \`true\`/\`false\`, corresponding to if you want to enable antialiasing to achieve smoother edges in the waveform graph or not. `), background_color: color_with_alpha.default('#00000000').describe(` The background color of the resulting image in the "rrggbbaa" format (red, green, blue, alpha), if the format \`"image"\` was selected. @@ -92,7 +92,18 @@ The color used in the outer parts of the gradient. The format is "rrggbbaa" (red `), }) .strict() + +export const robotAudioWaveformInstructionsWithHiddenFieldsSchema = + robotAudioWaveformInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotAudioWaveformInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotAudioWaveformInstructions = z.infer +export type RobotAudioWaveformInstructionsWithHiddenFields = z.infer< + typeof robotAudioWaveformInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotAudioWaveformInstructionsSchema = interpolateRobot( robotAudioWaveformInstructionsSchema, @@ -100,3 +111,13 @@ export const interpolatableRobotAudioWaveformInstructionsSchema = interpolateRob export type InterpolatableRobotAudioWaveformInstructions = z.input< typeof interpolatableRobotAudioWaveformInstructionsSchema > + +export const interpolatableRobotAudioWaveformInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotAudioWaveformInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotAudioWaveformInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotAudioWaveformInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotAudioWaveformInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotAudioWaveformInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/azure-import.ts b/src/alphalib/types/robots/azure-import.ts index 5e48cd40..618adb53 100644 --- a/src/alphalib/types/robots/azure-import.ts +++ b/src/alphalib/types/robots/azure-import.ts @@ -1,16 +1,16 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { azureBase, files_per_page, - robotImport, + interpolateRobot, next_page_token, path, recursive, robotBase, - interpolateRobot, + robotImport, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -76,8 +76,17 @@ The pagination page size. }) .strict() +export const robotAzureImportInstructionsWithHiddenFieldsSchema = + robotAzureImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotAzureImportInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotAzureImportInstructions = z.infer -export type RobotAzureImportInstructionsInput = z.input +export type RobotAzureImportInstructionsWithHiddenFields = z.infer< + typeof robotAzureImportInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotAzureImportInstructionsSchema = interpolateRobot( robotAzureImportInstructionsSchema, @@ -85,3 +94,13 @@ export const interpolatableRobotAzureImportInstructionsSchema = interpolateRobot export type InterpolatableRobotAzureImportInstructions = z.input< typeof interpolatableRobotAzureImportInstructionsSchema > + +export const interpolatableRobotAzureImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotAzureImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotAzureImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotAzureImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotAzureImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotAzureImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/azure-store.ts b/src/alphalib/types/robots/azure-store.ts index 7506eef7..bed75d76 100644 --- a/src/alphalib/types/robots/azure-store.ts +++ b/src/alphalib/types/robots/azure-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { azureBase, interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { azureBase, interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -82,8 +82,17 @@ Set this to a combination of \`r\` (read), \`w\` (write) and \`d\` (delete) for }) .strict() +export const robotAzureStoreInstructionsWithHiddenFieldsSchema = + robotAzureStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotAzureStoreInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotAzureStoreInstructions = z.infer -export type RobotAzureStoreInstructionsInput = z.input +export type RobotAzureStoreInstructionsWithHiddenFields = z.infer< + typeof robotAzureStoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotAzureStoreInstructionsSchema = interpolateRobot( robotAzureStoreInstructionsSchema, @@ -91,3 +100,13 @@ export const interpolatableRobotAzureStoreInstructionsSchema = interpolateRobot( export type InterpolatableRobotAzureStoreInstructions = z.input< typeof interpolatableRobotAzureStoreInstructionsSchema > + +export const interpolatableRobotAzureStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotAzureStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotAzureStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotAzureStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotAzureStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotAzureStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/backblaze-import.ts b/src/alphalib/types/robots/backblaze-import.ts index 5b792e39..77d60b15 100644 --- a/src/alphalib/types/robots/backblaze-import.ts +++ b/src/alphalib/types/robots/backblaze-import.ts @@ -1,15 +1,15 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { backblazeBase, files_per_page, - robotImport, + interpolateRobot, path, recursive, robotBase, - interpolateRobot, + robotImport, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -80,11 +80,18 @@ The pagination page size. This only works when recursive is \`true\` for now, in }) .strict() +export const robotBackblazeImportInstructionsWithHiddenFieldsSchema = + robotBackblazeImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotBackblazeImportInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotBackblazeImportInstructions = z.infer< typeof robotBackblazeImportInstructionsSchema > -export type RobotBackblazeImportInstructionsInput = z.input< - typeof robotBackblazeImportInstructionsSchema +export type RobotBackblazeImportInstructionsWithHiddenFields = z.infer< + typeof robotBackblazeImportInstructionsWithHiddenFieldsSchema > export const interpolatableRobotBackblazeImportInstructionsSchema = interpolateRobot( @@ -93,3 +100,12 @@ export const interpolatableRobotBackblazeImportInstructionsSchema = interpolateR export type InterpolatableRobotBackblazeImportInstructions = z.input< typeof interpolatableRobotBackblazeImportInstructionsSchema > + +export const interpolatableRobotBackblazeImportInstructionsWithHiddenFieldsSchema = + interpolateRobot(robotBackblazeImportInstructionsWithHiddenFieldsSchema) +export type InterpolatableRobotBackblazeImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotBackblazeImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotBackblazeImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotBackblazeImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/backblaze-store.ts b/src/alphalib/types/robots/backblaze-store.ts index 61f2a533..09158a9d 100644 --- a/src/alphalib/types/robots/backblaze-store.ts +++ b/src/alphalib/types/robots/backblaze-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { backblazeBase, interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { backblazeBase, interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -64,9 +64,16 @@ Object Metadata can be specified using \`X-Bz-Info-*\` headers. }) .strict() +export const robotBackblazeStoreInstructionsWithHiddenFieldsSchema = + robotBackblazeStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotBackblazeStoreInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotBackblazeStoreInstructions = z.infer -export type RobotBackblazeStoreInstructionsInput = z.input< - typeof robotBackblazeStoreInstructionsSchema +export type RobotBackblazeStoreInstructionsWithHiddenFields = z.infer< + typeof robotBackblazeStoreInstructionsWithHiddenFieldsSchema > export const interpolatableRobotBackblazeStoreInstructionsSchema = interpolateRobot( @@ -75,3 +82,13 @@ export const interpolatableRobotBackblazeStoreInstructionsSchema = interpolateRo export type InterpolatableRobotBackblazeStoreInstructions = z.input< typeof interpolatableRobotBackblazeStoreInstructionsSchema > + +export const interpolatableRobotBackblazeStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotBackblazeStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotBackblazeStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotBackblazeStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotBackblazeStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotBackblazeStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/cloudfiles-import.ts b/src/alphalib/types/robots/cloudfiles-import.ts index fbb2bf31..6d5f1ca2 100644 --- a/src/alphalib/types/robots/cloudfiles-import.ts +++ b/src/alphalib/types/robots/cloudfiles-import.ts @@ -1,15 +1,15 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { cloudfilesBase, files_per_page, - robotImport, + interpolateRobot, page_number, path, robotBase, - interpolateRobot, + robotImport, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -79,11 +79,18 @@ The pagination page size. This only works when recursive is \`true\` for now, in }) .strict() +export const robotCloudfilesImportInstructionsWithHiddenFieldsSchema = + robotCloudfilesImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotCloudfilesImportInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotCloudfilesImportInstructions = z.infer< typeof robotCloudfilesImportInstructionsSchema > -export type RobotCloudfilesImportInstructionsInput = z.input< - typeof robotCloudfilesImportInstructionsSchema +export type RobotCloudfilesImportInstructionsWithHiddenFields = z.infer< + typeof robotCloudfilesImportInstructionsWithHiddenFieldsSchema > export const interpolatableRobotCloudfilesImportInstructionsSchema = interpolateRobot( @@ -92,3 +99,12 @@ export const interpolatableRobotCloudfilesImportInstructionsSchema = interpolate export type InterpolatableRobotCloudfilesImportInstructions = z.input< typeof interpolatableRobotCloudfilesImportInstructionsSchema > + +export const interpolatableRobotCloudfilesImportInstructionsWithHiddenFieldsSchema = + interpolateRobot(robotCloudfilesImportInstructionsWithHiddenFieldsSchema) +export type InterpolatableRobotCloudfilesImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotCloudfilesImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotCloudfilesImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotCloudfilesImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/cloudfiles-store.ts b/src/alphalib/types/robots/cloudfiles-store.ts index 704cbc6f..d65c0c30 100644 --- a/src/alphalib/types/robots/cloudfiles-store.ts +++ b/src/alphalib/types/robots/cloudfiles-store.ts @@ -1,12 +1,12 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { cloudfilesBase, interpolateRobot, robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -66,11 +66,18 @@ The path at which to store the file. This value can also contain [Assembly varia }) .strict() +export const robotCloudfilesStoreInstructionsWithHiddenFieldsSchema = + robotCloudfilesStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotCloudfilesStoreInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotCloudfilesStoreInstructions = z.infer< typeof robotCloudfilesStoreInstructionsSchema > -export type RobotCloudfilesStoreInstructionsInput = z.input< - typeof robotCloudfilesStoreInstructionsSchema +export type RobotCloudfilesStoreInstructionsWithHiddenFields = z.infer< + typeof robotCloudfilesStoreInstructionsWithHiddenFieldsSchema > export const interpolatableRobotCloudfilesStoreInstructionsSchema = interpolateRobot( @@ -79,3 +86,12 @@ export const interpolatableRobotCloudfilesStoreInstructionsSchema = interpolateR export type InterpolatableRobotCloudfilesStoreInstructions = z.input< typeof interpolatableRobotCloudfilesStoreInstructionsSchema > + +export const interpolatableRobotCloudfilesStoreInstructionsWithHiddenFieldsSchema = + interpolateRobot(robotCloudfilesStoreInstructionsWithHiddenFieldsSchema) +export type InterpolatableRobotCloudfilesStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotCloudfilesStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotCloudfilesStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotCloudfilesStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/cloudflare-import.ts b/src/alphalib/types/robots/cloudflare-import.ts index a8ca1a75..ed087d89 100644 --- a/src/alphalib/types/robots/cloudflare-import.ts +++ b/src/alphalib/types/robots/cloudflare-import.ts @@ -1,17 +1,17 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { cloudflareBase, files_per_page, interpolateRobot, - robotImport, page_number, path, recursive, - robotBase, return_file_stubs, + robotBase, + robotImport, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -85,11 +85,18 @@ The pagination page size. This only works when recursive is \`true\` for now, in }) .strict() +export const robotCloudflareImportInstructionsWithHiddenFieldsSchema = + robotCloudflareImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotCloudflareImportInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotCloudflareImportInstructions = z.infer< typeof robotCloudflareImportInstructionsSchema > -export type RobotCloudflareImportInstructionsInput = z.input< - typeof robotCloudflareImportInstructionsSchema +export type RobotCloudflareImportInstructionsWithHiddenFields = z.infer< + typeof robotCloudflareImportInstructionsWithHiddenFieldsSchema > export const interpolatableRobotCloudflareImportInstructionsSchema = interpolateRobot( @@ -98,3 +105,12 @@ export const interpolatableRobotCloudflareImportInstructionsSchema = interpolate export type InterpolatableRobotCloudflareImportInstructions = z.input< typeof interpolatableRobotCloudflareImportInstructionsSchema > + +export const interpolatableRobotCloudflareImportInstructionsWithHiddenFieldsSchema = + interpolateRobot(robotCloudflareImportInstructionsWithHiddenFieldsSchema) +export type InterpolatableRobotCloudflareImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotCloudflareImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotCloudflareImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotCloudflareImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/cloudflare-store.ts b/src/alphalib/types/robots/cloudflare-store.ts index 1229869e..8f3ea35c 100644 --- a/src/alphalib/types/robots/cloudflare-store.ts +++ b/src/alphalib/types/robots/cloudflare-store.ts @@ -1,12 +1,12 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { cloudflareBase, interpolateRobot, robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -64,15 +64,25 @@ Object Metadata can be specified using \`x-amz-meta-*\` headers. Note that these `), sign_urls_for: z.number().int().min(0).optional().describe(` This parameter provides signed URLs in the result JSON (in the \`signed_ssl_url\` property). The number that you set this parameter to is the URL expiry time in seconds. If this parameter is not used, no URL signing is done. +`), + url_prefix: z.string().optional().describe(` +The URL prefix used for accessing files from your Cloudflare R2 bucket. This is typically the custom public URL access host set up in your Cloudflare account. `), }) .strict() +export const robotCloudflareStoreInstructionsWithHiddenFieldsSchema = + robotCloudflareStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotCloudflareStoreInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotCloudflareStoreInstructions = z.infer< typeof robotCloudflareStoreInstructionsSchema > -export type RobotCloudflareStoreInstructionsInput = z.input< - typeof robotCloudflareStoreInstructionsSchema +export type RobotCloudflareStoreInstructionsWithHiddenFields = z.infer< + typeof robotCloudflareStoreInstructionsWithHiddenFieldsSchema > export const interpolatableRobotCloudflareStoreInstructionsSchema = interpolateRobot( @@ -81,3 +91,12 @@ export const interpolatableRobotCloudflareStoreInstructionsSchema = interpolateR export type InterpolatableRobotCloudflareStoreInstructions = z.input< typeof interpolatableRobotCloudflareStoreInstructionsSchema > + +export const interpolatableRobotCloudflareStoreInstructionsWithHiddenFieldsSchema = + interpolateRobot(robotCloudflareStoreInstructionsWithHiddenFieldsSchema) +export type InterpolatableRobotCloudflareStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotCloudflareStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotCloudflareStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotCloudflareStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/digitalocean-import.ts b/src/alphalib/types/robots/digitalocean-import.ts index a3ccbfb5..8a7b515f 100644 --- a/src/alphalib/types/robots/digitalocean-import.ts +++ b/src/alphalib/types/robots/digitalocean-import.ts @@ -1,17 +1,17 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { digitalOceanBase, files_per_page, interpolateRobot, - robotImport, page_number, path, recursive, - robotBase, return_file_stubs, + robotBase, + robotImport, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -82,11 +82,18 @@ The pagination page size. This only works when recursive is \`true\` for now, in }) .strict() +export const robotDigitaloceanImportInstructionsWithHiddenFieldsSchema = + robotDigitaloceanImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotDigitaloceanImportInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotDigitaloceanImportInstructions = z.infer< typeof robotDigitaloceanImportInstructionsSchema > -export type RobotDigitaloceanImportInstructionsInput = z.input< - typeof robotDigitaloceanImportInstructionsSchema +export type RobotDigitaloceanImportInstructionsWithHiddenFields = z.infer< + typeof robotDigitaloceanImportInstructionsWithHiddenFieldsSchema > export const interpolatableRobotDigitaloceanImportInstructionsSchema = interpolateRobot( @@ -95,3 +102,12 @@ export const interpolatableRobotDigitaloceanImportInstructionsSchema = interpola export type InterpolatableRobotDigitaloceanImportInstructions = z.input< typeof interpolatableRobotDigitaloceanImportInstructionsSchema > + +export const interpolatableRobotDigitaloceanImportInstructionsWithHiddenFieldsSchema = + interpolateRobot(robotDigitaloceanImportInstructionsWithHiddenFieldsSchema) +export type InterpolatableRobotDigitaloceanImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotDigitaloceanImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotDigitaloceanImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotDigitaloceanImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/digitalocean-store.ts b/src/alphalib/types/robots/digitalocean-store.ts index 8c26e441..a0cdbfd6 100644 --- a/src/alphalib/types/robots/digitalocean-store.ts +++ b/src/alphalib/types/robots/digitalocean-store.ts @@ -1,12 +1,12 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { digitalOceanBase, interpolateRobot, robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -73,11 +73,18 @@ This parameter provides signed URLs in the result JSON (in the \`signed_ssl_url\ }) .strict() +export const robotDigitaloceanStoreInstructionsWithHiddenFieldsSchema = + robotDigitaloceanStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotDigitaloceanStoreInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotDigitaloceanStoreInstructions = z.infer< typeof robotDigitaloceanStoreInstructionsSchema > -export type RobotDigitaloceanStoreInstructionsInput = z.input< - typeof robotDigitaloceanStoreInstructionsSchema +export type RobotDigitaloceanStoreInstructionsWithHiddenFields = z.infer< + typeof robotDigitaloceanStoreInstructionsWithHiddenFieldsSchema > export const interpolatableRobotDigitaloceanStoreInstructionsSchema = interpolateRobot( @@ -86,3 +93,12 @@ export const interpolatableRobotDigitaloceanStoreInstructionsSchema = interpolat export type InterpolatableRobotDigitaloceanStoreInstructions = z.input< typeof interpolatableRobotDigitaloceanStoreInstructionsSchema > + +export const interpolatableRobotDigitaloceanStoreInstructionsWithHiddenFieldsSchema = + interpolateRobot(robotDigitaloceanStoreInstructionsWithHiddenFieldsSchema) +export type InterpolatableRobotDigitaloceanStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotDigitaloceanStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotDigitaloceanStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotDigitaloceanStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/document-autorotate.ts b/src/alphalib/types/robots/document-autorotate.ts index b5bc9a9e..05fa60d6 100644 --- a/src/alphalib/types/robots/document-autorotate.ts +++ b/src/alphalib/types/robots/document-autorotate.ts @@ -39,9 +39,19 @@ export const robotDocumentAutorotateInstructionsSchema = robotBase }) .strict() +export const robotDocumentAutorotateInstructionsWithHiddenFieldsSchema = + robotDocumentAutorotateInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotDocumentAutorotateInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotDocumentAutorotateInstructions = z.infer< typeof robotDocumentAutorotateInstructionsSchema > +export type RobotDocumentAutorotateInstructionsWithHiddenFields = z.infer< + typeof robotDocumentAutorotateInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotDocumentAutorotateInstructionsSchema = interpolateRobot( robotDocumentAutorotateInstructionsSchema, @@ -49,3 +59,12 @@ export const interpolatableRobotDocumentAutorotateInstructionsSchema = interpola export type InterpolatableRobotDocumentAutorotateInstructions = z.input< typeof interpolatableRobotDocumentAutorotateInstructionsSchema > + +export const interpolatableRobotDocumentAutorotateInstructionsWithHiddenFieldsSchema = + interpolateRobot(robotDocumentAutorotateInstructionsWithHiddenFieldsSchema) +export type InterpolatableRobotDocumentAutorotateInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotDocumentAutorotateInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotDocumentAutorotateInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotDocumentAutorotateInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/document-convert.ts b/src/alphalib/types/robots/document-convert.ts index b011b339..705e9ff5 100644 --- a/src/alphalib/types/robots/document-convert.ts +++ b/src/alphalib/types/robots/document-convert.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -243,9 +243,19 @@ To change the formatting of the HTML element, the \`font-size\` must be specifie }) .strict() +export const robotDocumentConvertInstructionsWithHiddenFieldsSchema = + robotDocumentConvertInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotDocumentConvertInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotDocumentConvertInstructions = z.infer< typeof robotDocumentConvertInstructionsSchema > +export type RobotDocumentConvertInstructionsWithHiddenFields = z.infer< + typeof robotDocumentConvertInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotDocumentConvertInstructionsSchema = interpolateRobot( robotDocumentConvertInstructionsSchema, @@ -253,3 +263,12 @@ export const interpolatableRobotDocumentConvertInstructionsSchema = interpolateR export type InterpolatableRobotDocumentConvertInstructions = z.input< typeof interpolatableRobotDocumentConvertInstructionsSchema > + +export const interpolatableRobotDocumentConvertInstructionsWithHiddenFieldsSchema = + interpolateRobot(robotDocumentConvertInstructionsWithHiddenFieldsSchema) +export type InterpolatableRobotDocumentConvertInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotDocumentConvertInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotDocumentConvertInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotDocumentConvertInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/document-merge.ts b/src/alphalib/types/robots/document-merge.ts index 24a881d7..df315baf 100644 --- a/src/alphalib/types/robots/document-merge.ts +++ b/src/alphalib/types/robots/document-merge.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -74,7 +74,17 @@ If not empty, encrypts the output file and makes it accessible only by typing in }) .strict() +export const robotDocumentMergeInstructionsWithHiddenFieldsSchema = + robotDocumentMergeInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotDocumentMergeInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotDocumentMergeInstructions = z.infer +export type RobotDocumentMergeInstructionsWithHiddenFields = z.infer< + typeof robotDocumentMergeInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotDocumentMergeInstructionsSchema = interpolateRobot( robotDocumentMergeInstructionsSchema, @@ -82,3 +92,13 @@ export const interpolatableRobotDocumentMergeInstructionsSchema = interpolateRob export type InterpolatableRobotDocumentMergeInstructions = z.input< typeof interpolatableRobotDocumentMergeInstructionsSchema > + +export const interpolatableRobotDocumentMergeInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotDocumentMergeInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotDocumentMergeInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotDocumentMergeInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotDocumentMergeInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotDocumentMergeInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/document-ocr.ts b/src/alphalib/types/robots/document-ocr.ts index b11dd602..9ea30a2e 100644 --- a/src/alphalib/types/robots/document-ocr.ts +++ b/src/alphalib/types/robots/document-ocr.ts @@ -1,5 +1,6 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { aiProviderSchema, granularitySchema, @@ -7,7 +8,6 @@ import { robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -83,7 +83,17 @@ In what format to return the extracted text. }) .strict() +export const robotDocumentOcrInstructionsWithHiddenFieldsSchema = + robotDocumentOcrInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotDocumentOcrInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotDocumentOcrInstructions = z.infer +export type RobotDocumentOcrInstructionsWithHiddenFields = z.infer< + typeof robotDocumentOcrInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotDocumentOcrInstructionsSchema = interpolateRobot( robotDocumentOcrInstructionsSchema, @@ -91,3 +101,13 @@ export const interpolatableRobotDocumentOcrInstructionsSchema = interpolateRobot export type InterpolatableRobotDocumentOcrInstructions = z.input< typeof interpolatableRobotDocumentOcrInstructionsSchema > + +export const interpolatableRobotDocumentOcrInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotDocumentOcrInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotDocumentOcrInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotDocumentOcrInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotDocumentOcrInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotDocumentOcrInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/document-split.ts b/src/alphalib/types/robots/document-split.ts index 41d9b9bc..0eb91f01 100644 --- a/src/alphalib/types/robots/document-split.ts +++ b/src/alphalib/types/robots/document-split.ts @@ -44,7 +44,17 @@ export const robotDocumentSplitInstructionsSchema = robotBase }) .strict() +export const robotDocumentSplitInstructionsWithHiddenFieldsSchema = + robotDocumentSplitInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotDocumentSplitInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotDocumentSplitInstructions = z.infer +export type RobotDocumentSplitInstructionsWithHiddenFields = z.infer< + typeof robotDocumentSplitInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotDocumentSplitInstructionsSchema = interpolateRobot( robotDocumentSplitInstructionsSchema, @@ -52,3 +62,13 @@ export const interpolatableRobotDocumentSplitInstructionsSchema = interpolateRob export type InterpolatableRobotDocumentSplitInstructions = z.input< typeof interpolatableRobotDocumentSplitInstructionsSchema > + +export const interpolatableRobotDocumentSplitInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotDocumentSplitInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotDocumentSplitInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotDocumentSplitInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotDocumentSplitInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotDocumentSplitInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/document-thumbs.ts b/src/alphalib/types/robots/document-thumbs.ts index 2f48c5f0..e7117ea9 100644 --- a/src/alphalib/types/robots/document-thumbs.ts +++ b/src/alphalib/types/robots/document-thumbs.ts @@ -1,13 +1,13 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { colorspaceSchema, - robotImagemagick, + interpolateRobot, robotBase, + robotImagemagick, robotUse, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -93,7 +93,7 @@ By default, the background of transparent images is changed to white. For detail alpha: z.enum(['Remove', 'Set']).optional().describe(` Change how the alpha channel of the resulting image should work. Valid values are \`"Set"\` to enable transparency and \`"Remove"\` to remove transparency. -For a list of all valid values please check the ImageMagick documentation [here](http://www.imagemagick.org/script/command-line-options.php?#alpha). +For a list of all valid values please check the ImageMagick documentation [here](http://www.imagemagick.org/script/command-line-options.php#alpha). `), density: z .string() @@ -124,7 +124,30 @@ Some PDF documents lie about their dimensions. For instance they'll say they are }) .strict() +export const robotDocumentThumbsInstructionsWithHiddenFieldsSchema = + robotDocumentThumbsInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotDocumentThumbsInstructionsSchema.shape.result]) + .optional(), + stack: z.string().optional().describe(` +The image processing stack to use. Defaults to the robot's preferred stack (ImageMagick). +`), + // Override to support lowercase for BC: + alpha: z.enum(['Remove', 'Set', 'remove', 'set']).optional().describe(` +Change how the alpha channel of the resulting image should work. Valid values are \`"Set"\` to enable transparency and \`"Remove"\` to remove transparency. Lowercase values are also accepted for backwards compatibility. +`), + // Override to support 'none' for BC + resize_strategy: z + .enum(['crop', 'fillcrop', 'fit', 'min_fit', 'pad', 'stretch', 'none']) + .optional().describe(` +One of the [available resize strategies](/docs/transcoding/image-manipulation/image-resize/#resize-strategies). The 'none' value is supported for backwards compatibility. +`), + }) + export type RobotDocumentThumbsInstructions = z.infer +export type RobotDocumentThumbsInstructionsWithHiddenFields = z.infer< + typeof robotDocumentThumbsInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotDocumentThumbsInstructionsSchema = interpolateRobot( robotDocumentThumbsInstructionsSchema, @@ -132,3 +155,13 @@ export const interpolatableRobotDocumentThumbsInstructionsSchema = interpolateRo export type InterpolatableRobotDocumentThumbsInstructions = z.input< typeof interpolatableRobotDocumentThumbsInstructionsSchema > + +export const interpolatableRobotDocumentThumbsInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotDocumentThumbsInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotDocumentThumbsInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotDocumentThumbsInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotDocumentThumbsInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotDocumentThumbsInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/dropbox-import.ts b/src/alphalib/types/robots/dropbox-import.ts index f1493cfe..3ba3c052 100644 --- a/src/alphalib/types/robots/dropbox-import.ts +++ b/src/alphalib/types/robots/dropbox-import.ts @@ -1,13 +1,13 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { dropboxBase, - robotImport, + interpolateRobot, path, robotBase, - interpolateRobot, + robotImport, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -64,9 +64,17 @@ You can also use an array of path strings here to import multiple paths in the s }) .strict() +export const robotDropboxImportInstructionsWithHiddenFieldsSchema = + robotDropboxImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotDropboxImportInstructionsSchema.shape.result]) + .optional(), + access_token: z.string().optional(), // Legacy field for backward compatibility + }) + export type RobotDropboxImportInstructions = z.infer -export type RobotDropboxImportInstructionsInput = z.input< - typeof robotDropboxImportInstructionsSchema +export type RobotDropboxImportInstructionsWithHiddenFields = z.infer< + typeof robotDropboxImportInstructionsWithHiddenFieldsSchema > export const interpolatableRobotDropboxImportInstructionsSchema = interpolateRobot( @@ -75,3 +83,13 @@ export const interpolatableRobotDropboxImportInstructionsSchema = interpolateRob export type InterpolatableRobotDropboxImportInstructions = z.input< typeof interpolatableRobotDropboxImportInstructionsSchema > + +export const interpolatableRobotDropboxImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotDropboxImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotDropboxImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotDropboxImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotDropboxImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotDropboxImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/dropbox-store.ts b/src/alphalib/types/robots/dropbox-store.ts index 81aeae0c..d5f75a43 100644 --- a/src/alphalib/types/robots/dropbox-store.ts +++ b/src/alphalib/types/robots/dropbox-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { dropboxBase, interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { dropboxBase, interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -55,8 +55,19 @@ Whether to create a URL to this file for sharing with other people. This will ov }) .strict() +export const robotDropboxStoreInstructionsWithHiddenFieldsSchema = + robotDropboxStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotDropboxStoreInstructionsSchema.shape.result]) + .optional(), + access_token: z.string().optional(), // Legacy field for backward compatibility + }) + export type RobotDropboxStoreInstructions = z.infer export type RobotDropboxStoreInstructionsInput = z.input +export type RobotDropboxStoreInstructionsWithHiddenFields = z.infer< + typeof robotDropboxStoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotDropboxStoreInstructionsSchema = interpolateRobot( robotDropboxStoreInstructionsSchema, @@ -64,3 +75,13 @@ export const interpolatableRobotDropboxStoreInstructionsSchema = interpolateRobo export type InterpolatableRobotDropboxStoreInstructions = z.input< typeof interpolatableRobotDropboxStoreInstructionsSchema > + +export const interpolatableRobotDropboxStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotDropboxStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotDropboxStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotDropboxStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotDropboxStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotDropboxStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/edgly-deliver.ts b/src/alphalib/types/robots/edgly-deliver.ts index fcc5a0ea..ded418d9 100644 --- a/src/alphalib/types/robots/edgly-deliver.ts +++ b/src/alphalib/types/robots/edgly-deliver.ts @@ -1,6 +1,6 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, type RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, type RobotMetaInput, robotBase } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -39,7 +39,17 @@ When you want Transloadit to tranform files on the fly, this Robot ca }) .strict() +export const robotEdglyDeliverInstructionsWithHiddenFieldsSchema = + robotEdglyDeliverInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotEdglyDeliverInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotEdglyDeliverInstructions = z.infer +export type RobotEdglyDeliverInstructionsWithHiddenFields = z.infer< + typeof robotEdglyDeliverInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotEdglyDeliverInstructionsSchema = interpolateRobot( robotEdglyDeliverInstructionsSchema, @@ -47,3 +57,13 @@ export const interpolatableRobotEdglyDeliverInstructionsSchema = interpolateRobo export type InterpolatableRobotEdglyDeliverInstructions = z.input< typeof interpolatableRobotEdglyDeliverInstructionsSchema > + +export const interpolatableRobotEdglyDeliverInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotEdglyDeliverInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotEdglyDeliverInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotEdglyDeliverInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotEdglyDeliverInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotEdglyDeliverInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/file-compress.ts b/src/alphalib/types/robots/file-compress.ts index 20241944..1f65aaa2 100644 --- a/src/alphalib/types/robots/file-compress.ts +++ b/src/alphalib/types/robots/file-compress.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -100,15 +100,28 @@ Determines how fiercely to try to compress the archive. \`-0\` is compressionles If you are using \`-0\` in combination with the \`tar\` format with \`gzip\` enabled, consider setting \`gzip: false\` instead. This results in a plain Tar archive, meaning it already has no compression. `), - file_layout: z.enum(['advanced', 'simple']).default('advanced').describe(` -Determines if the result archive should contain all files in one directory (value for this is \`"simple"\`) or in subfolders according to the explanation below (value for this is \`"advanced"\`). + file_layout: z.enum(['advanced', 'simple', 'relative-path']).default('advanced').describe(` +Determines if the result archive should contain all files in one directory (value for this is \`"simple"\`) or in subfolders according to the explanation below (value for this is \`"advanced"\`). The \`"relative-path"\` option preserves the relative directory structure of the input files. Files with same names are numbered in the \`"simple"\` file layout to avoid naming collisions. +`), + archive_name: z.string().optional().describe(` +The name of the archive file to be created (without the file extension). `), }) .strict() +export const robotFileCompressInstructionsWithHiddenFieldsSchema = + robotFileCompressInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotFileCompressInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotFileCompressInstructions = z.infer +export type RobotFileCompressInstructionsWithHiddenFields = z.infer< + typeof robotFileCompressInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotFileCompressInstructionsSchema = interpolateRobot( robotFileCompressInstructionsSchema, @@ -116,3 +129,13 @@ export const interpolatableRobotFileCompressInstructionsSchema = interpolateRobo export type InterpolatableRobotFileCompressInstructions = z.input< typeof interpolatableRobotFileCompressInstructionsSchema > + +export const interpolatableRobotFileCompressInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotFileCompressInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotFileCompressInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotFileCompressInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotFileCompressInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotFileCompressInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/file-decompress.ts b/src/alphalib/types/robots/file-decompress.ts index 7bf69012..eb147bc0 100644 --- a/src/alphalib/types/robots/file-decompress.ts +++ b/src/alphalib/types/robots/file-decompress.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -90,7 +90,17 @@ To keep backwards compatibility, setting this parameter to \`true\` will set it }) .strict() +export const robotFileDecompressInstructionsWithHiddenFieldsSchema = + robotFileDecompressInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotFileDecompressInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotFileDecompressInstructions = z.infer +export type RobotFileDecompressInstructionsWithHiddenFields = z.infer< + typeof robotFileDecompressInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotFileDecompressInstructionsSchema = interpolateRobot( robotFileDecompressInstructionsSchema, @@ -98,3 +108,13 @@ export const interpolatableRobotFileDecompressInstructionsSchema = interpolateRo export type InterpolatableRobotFileDecompressInstructions = z.input< typeof interpolatableRobotFileDecompressInstructionsSchema > + +export const interpolatableRobotFileDecompressInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotFileDecompressInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotFileDecompressInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotFileDecompressInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotFileDecompressInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotFileDecompressInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/file-filter.ts b/src/alphalib/types/robots/file-filter.ts index f59a4386..71e2af4d 100644 --- a/src/alphalib/types/robots/file-filter.ts +++ b/src/alphalib/types/robots/file-filter.ts @@ -1,12 +1,12 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { filterCondition, interpolateRobot, robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -130,8 +130,17 @@ The error message shown to your users (such as by Uppy) when a file is declined }) .strict() +export const robotFileFilterInstructionsWithHiddenFieldsSchema = + robotFileFilterInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotFileFilterInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotFileFilterInstructions = z.infer -export type RobotFileFilterInstructionsInput = z.input +export type RobotFileFilterInstructionsWithHiddenFields = z.infer< + typeof robotFileFilterInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotFileFilterInstructionsSchema = interpolateRobot( robotFileFilterInstructionsSchema, @@ -139,3 +148,13 @@ export const interpolatableRobotFileFilterInstructionsSchema = interpolateRobot( export type InterpolatableRobotFileFilterInstructions = z.input< typeof interpolatableRobotFileFilterInstructionsSchema > + +export const interpolatableRobotFileFilterInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotFileFilterInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotFileFilterInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotFileFilterInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotFileFilterInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotFileFilterInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/file-hash.ts b/src/alphalib/types/robots/file-hash.ts index fd7a5f50..29a3269b 100644 --- a/src/alphalib/types/robots/file-hash.ts +++ b/src/alphalib/types/robots/file-hash.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -54,7 +54,15 @@ The file hash is exported as \`file.meta.hash\`. }) .strict() +export const robotFileHashInstructionsWithHiddenFieldsSchema = + robotFileHashInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotFileHashInstructionsSchema.shape.result]).optional(), + }) + export type RobotFileHashInstructions = z.infer +export type RobotFileHashInstructionsWithHiddenFields = z.infer< + typeof robotFileHashInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotFileHashInstructionsSchema = interpolateRobot( robotFileHashInstructionsSchema, @@ -62,3 +70,13 @@ export const interpolatableRobotFileHashInstructionsSchema = interpolateRobot( export type InterpolatableRobotFileHashInstructions = z.input< typeof interpolatableRobotFileHashInstructionsSchema > + +export const interpolatableRobotFileHashInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotFileHashInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotFileHashInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotFileHashInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotFileHashInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotFileHashInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/file-preview.ts b/src/alphalib/types/robots/file-preview.ts index 0a6bde5a..37a20e53 100644 --- a/src/alphalib/types/robots/file-preview.ts +++ b/src/alphalib/types/robots/file-preview.ts @@ -1,5 +1,6 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { color_with_alpha, complexHeightSchema, @@ -10,7 +11,6 @@ import { robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -109,6 +109,12 @@ The parameter defaults to the following definition: } \`\`\` `), + artwork_outer_color: color_with_alpha.optional().describe(` + The color used in the outer parts of the artwork's gradient. + `), + artwork_center_color: color_with_alpha.optional().describe(` + The color used in the center of the artwork's gradient. + `), waveform_center_color: color_with_alpha.default('#000000ff').describe(` The color used in the center of the waveform's gradient. The format is \`#rrggbb[aa]\` (red, green, blue, alpha). Only used if the \`waveform\` strategy for audio files is applied. `), @@ -168,8 +174,18 @@ Specifies whether the generated animated image should loop forever (\`true\`) or }) .strict() +export const robotFilePreviewInstructionsWithHiddenFieldsSchema = + robotFilePreviewInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotFilePreviewInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotFilePreviewInstructions = z.infer export type RobotFilePreviewInstructionsInput = z.input +export type RobotFilePreviewInstructionsWithHiddenFields = z.infer< + typeof robotFilePreviewInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotFilePreviewInstructionsSchema = interpolateRobot( robotFilePreviewInstructionsSchema, @@ -177,3 +193,13 @@ export const interpolatableRobotFilePreviewInstructionsSchema = interpolateRobot export type InterpolatableRobotFilePreviewInstructions = z.input< typeof interpolatableRobotFilePreviewInstructionsSchema > + +export const interpolatableRobotFilePreviewInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotFilePreviewInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotFilePreviewInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotFilePreviewInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotFilePreviewInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotFilePreviewInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/file-read.ts b/src/alphalib/types/robots/file-read.ts index 392351ec..08302699 100644 --- a/src/alphalib/types/robots/file-read.ts +++ b/src/alphalib/types/robots/file-read.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -40,7 +40,15 @@ The Robot currently only accepts files under 500KB. }) .strict() +export const robotFileReadInstructionsWithHiddenFieldsSchema = + robotFileReadInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotFileReadInstructionsSchema.shape.result]).optional(), + }) + export type RobotFileReadInstructions = z.infer +export type RobotFileReadInstructionsWithHiddenFields = z.infer< + typeof robotFileReadInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotFileReadInstructionsSchema = interpolateRobot( robotFileReadInstructionsSchema, @@ -48,3 +56,13 @@ export const interpolatableRobotFileReadInstructionsSchema = interpolateRobot( export type InterpolatableRobotFileReadInstructions = z.input< typeof interpolatableRobotFileReadInstructionsSchema > + +export const interpolatableRobotFileReadInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotFileReadInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotFileReadInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotFileReadInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotFileReadInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotFileReadInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/file-serve.ts b/src/alphalib/types/robots/file-serve.ts index 5ed5967e..4fab1f71 100644 --- a/src/alphalib/types/robots/file-serve.ts +++ b/src/alphalib/types/robots/file-serve.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -65,8 +65,16 @@ An object containing a list of headers to be set for a file as we serve it to a }) .strict() +export const robotFileServeInstructionsWithHiddenFieldsSchema = + robotFileServeInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotFileServeInstructionsSchema.shape.result]).optional(), + }) + export type RobotFileServeInstructions = z.infer export type RobotFileServeInstructionsInput = z.input +export type RobotFileServeInstructionsWithHiddenFields = z.infer< + typeof robotFileServeInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotFileServeInstructionsSchema = interpolateRobot( robotFileServeInstructionsSchema, @@ -74,3 +82,13 @@ export const interpolatableRobotFileServeInstructionsSchema = interpolateRobot( export type InterpolatableRobotFileServeInstructions = z.input< typeof interpolatableRobotFileServeInstructionsSchema > + +export const interpolatableRobotFileServeInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotFileServeInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotFileServeInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotFileServeInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotFileServeInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotFileServeInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/file-verify.ts b/src/alphalib/types/robots/file-verify.ts index 2416de21..9f553053 100644 --- a/src/alphalib/types/robots/file-verify.ts +++ b/src/alphalib/types/robots/file-verify.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -58,7 +58,17 @@ The type that you want to match against to ensure your file is of this type. For }) .strict() +export const robotFileVerifyInstructionsWithHiddenFieldsSchema = + robotFileVerifyInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotFileVerifyInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotFileVerifyInstructions = z.infer +export type RobotFileVerifyInstructionsWithHiddenFields = z.infer< + typeof robotFileVerifyInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotFileVerifyInstructionsSchema = interpolateRobot( robotFileVerifyInstructionsSchema, @@ -66,3 +76,13 @@ export const interpolatableRobotFileVerifyInstructionsSchema = interpolateRobot( export type InterpolatableRobotFileVerifyInstructions = z.input< typeof interpolatableRobotFileVerifyInstructionsSchema > + +export const interpolatableRobotFileVerifyInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotFileVerifyInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotFileVerifyInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotFileVerifyInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotFileVerifyInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotFileVerifyInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/file-virusscan.ts b/src/alphalib/types/robots/file-virusscan.ts index 7f1ae0ae..9616a546 100644 --- a/src/alphalib/types/robots/file-virusscan.ts +++ b/src/alphalib/types/robots/file-virusscan.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -67,7 +67,20 @@ The error message shown to your users (such as by Uppy) when a file is declined }) .strict() +export const robotFileVirusscanInstructionsWithHiddenFieldsSchema = + robotFileVirusscanInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotFileVirusscanInstructionsSchema.shape.result]) + .optional(), + can_use_daemon_fallback: z.boolean().optional().describe(` +Allow the robot to use a daemon fallback mechanism if the primary scanning method fails. +`), + }) + export type RobotFileVirusscanInstructions = z.infer +export type RobotFileVirusscanInstructionsWithHiddenFields = z.infer< + typeof robotFileVirusscanInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotFileVirusscanInstructionsSchema = interpolateRobot( robotFileVirusscanInstructionsSchema, @@ -75,3 +88,13 @@ export const interpolatableRobotFileVirusscanInstructionsSchema = interpolateRob export type InterpolatableRobotFileVirusscanInstructions = z.input< typeof interpolatableRobotFileVirusscanInstructionsSchema > + +export const interpolatableRobotFileVirusscanInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotFileVirusscanInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotFileVirusscanInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotFileVirusscanInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotFileVirusscanInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotFileVirusscanInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/file-watermark.ts b/src/alphalib/types/robots/file-watermark.ts index 9fe2d848..73bc3736 100644 --- a/src/alphalib/types/robots/file-watermark.ts +++ b/src/alphalib/types/robots/file-watermark.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' // @ts-expect-error - FileWatermarkRobot is not ready yet @TODO please supply missing keys export const meta: RobotMetaInput = { @@ -22,7 +22,17 @@ export const robotFileWatermarkInstructionsSchema = robotBase }) .strict() +export const robotFileWatermarkInstructionsWithHiddenFieldsSchema = + robotFileWatermarkInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotFileWatermarkInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotFileWatermarkInstructions = z.infer +export type RobotFileWatermarkInstructionsWithHiddenFields = z.infer< + typeof robotFileWatermarkInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotFileWatermarkInstructionsSchema = interpolateRobot( robotFileWatermarkInstructionsSchema, @@ -30,3 +40,13 @@ export const interpolatableRobotFileWatermarkInstructionsSchema = interpolateRob export type InterpolatableRobotFileWatermarkInstructions = z.input< typeof interpolatableRobotFileWatermarkInstructionsSchema > + +export const interpolatableRobotFileWatermarkInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotFileWatermarkInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotFileWatermarkInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotFileWatermarkInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotFileWatermarkInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotFileWatermarkInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/ftp-import.ts b/src/alphalib/types/robots/ftp-import.ts index cb43ddb6..074a4e0b 100644 --- a/src/alphalib/types/robots/ftp-import.ts +++ b/src/alphalib/types/robots/ftp-import.ts @@ -1,13 +1,13 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { ftpBase, - robotImport, + interpolateRobot, path, robotBase, - interpolateRobot, + robotImport, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -60,8 +60,15 @@ Determines if passive mode should be used for the FTP connection. }) .strict() +export const robotFtpImportInstructionsWithHiddenFieldsSchema = + robotFtpImportInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotFtpImportInstructionsSchema.shape.result]).optional(), + }) + export type RobotFtpImportInstructions = z.infer -export type RobotFtpImportInstructionsInput = z.input +export type RobotFtpImportInstructionsWithHiddenFields = z.infer< + typeof robotFtpImportInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotFtpImportInstructionsSchema = interpolateRobot( robotFtpImportInstructionsSchema, @@ -69,3 +76,13 @@ export const interpolatableRobotFtpImportInstructionsSchema = interpolateRobot( export type InterpolatableRobotFtpImportInstructions = z.input< typeof interpolatableRobotFtpImportInstructionsSchema > + +export const interpolatableRobotFtpImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotFtpImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotFtpImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotFtpImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotFtpImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotFtpImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/ftp-store.ts b/src/alphalib/types/robots/ftp-store.ts index 5dd7b5e7..d1578f38 100644 --- a/src/alphalib/types/robots/ftp-store.ts +++ b/src/alphalib/types/robots/ftp-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { ftpBase, interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { ftpBase, interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -63,8 +63,22 @@ Determines whether to establish a secure connection to the FTP server using SSL. }) .strict() +export const robotFtpStoreInstructionsWithHiddenFieldsSchema = + robotFtpStoreInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotFtpStoreInstructionsSchema.shape.result]).optional(), + use_remote_utime: z.boolean().optional().describe(` +Use the remote file's modification time instead of the current time when storing the file. +`), + version: z.union([z.string(), z.number()]).optional().describe(` +Version identifier for the underlying tool used (2 is ncftp, 1 is ftp). +`), + allowNetwork: z.string().optional(), // For internal test purposes + }) + export type RobotFtpStoreInstructions = z.infer -export type RobotFtpStoreInstructionsInput = z.input +export type RobotFtpStoreInstructionsWithHiddenFields = z.infer< + typeof robotFtpStoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotFtpStoreInstructionsSchema = interpolateRobot( robotFtpStoreInstructionsSchema, @@ -72,3 +86,13 @@ export const interpolatableRobotFtpStoreInstructionsSchema = interpolateRobot( export type InterpolatableRobotFtpStoreInstructions = z.input< typeof interpolatableRobotFtpStoreInstructionsSchema > + +export const interpolatableRobotFtpStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotFtpStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotFtpStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotFtpStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotFtpStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotFtpStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/google-import.ts b/src/alphalib/types/robots/google-import.ts index 67df7a55..1f992aa7 100644 --- a/src/alphalib/types/robots/google-import.ts +++ b/src/alphalib/types/robots/google-import.ts @@ -1,16 +1,16 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { files_per_page, googleBase, - robotImport, + interpolateRobot, next_page_token, path, recursive, robotBase, - interpolateRobot, + robotImport, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -80,8 +80,17 @@ The pagination page size. This only works when recursive is \`true\` for now, in }) .strict() +export const robotGoogleImportInstructionsWithHiddenFieldsSchema = + robotGoogleImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotGoogleImportInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotGoogleImportInstructions = z.infer -export type RobotGoogleImportInstructionsInput = z.input +export type RobotGoogleImportInstructionsWithHiddenFields = z.infer< + typeof robotGoogleImportInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotGoogleImportInstructionsSchema = interpolateRobot( robotGoogleImportInstructionsSchema, @@ -89,3 +98,13 @@ export const interpolatableRobotGoogleImportInstructionsSchema = interpolateRobo export type InterpolatableRobotGoogleImportInstructions = z.input< typeof interpolatableRobotGoogleImportInstructionsSchema > + +export const interpolatableRobotGoogleImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotGoogleImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotGoogleImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotGoogleImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotGoogleImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotGoogleImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/google-store.ts b/src/alphalib/types/robots/google-store.ts index 900ef36c..91c8116a 100644 --- a/src/alphalib/types/robots/google-store.ts +++ b/src/alphalib/types/robots/google-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { googleBase, interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { googleBase, interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -92,8 +92,17 @@ The SSL URL of the file in the result JSON. The following [Assembly variables](/ }) .strict() +export const robotGoogleStoreInstructionsWithHiddenFieldsSchema = + robotGoogleStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotGoogleStoreInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotGoogleStoreInstructions = z.infer -export type RobotGoogleStoreInstructionsInput = z.input +export type RobotGoogleStoreInstructionsWithHiddenFields = z.infer< + typeof robotGoogleStoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotGoogleStoreInstructionsSchema = interpolateRobot( robotGoogleStoreInstructionsSchema, @@ -101,3 +110,13 @@ export const interpolatableRobotGoogleStoreInstructionsSchema = interpolateRobot export type InterpolatableRobotGoogleStoreInstructions = z.input< typeof interpolatableRobotGoogleStoreInstructionsSchema > + +export const interpolatableRobotGoogleStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotGoogleStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotGoogleStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotGoogleStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotGoogleStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotGoogleStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/html-convert.ts b/src/alphalib/types/robots/html-convert.ts index 36a93bdb..ee1bf370 100644 --- a/src/alphalib/types/robots/html-convert.ts +++ b/src/alphalib/types/robots/html-convert.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -95,7 +95,20 @@ See [Playwright's documentation](https://playwright.dev/docs/api/class-page#page }) .strict() +export const robotHtmlConvertInstructionsWithHiddenFieldsSchema = + robotHtmlConvertInstructionsSchema.extend({ + debuginfo: z.boolean().optional(), + timeouts: z.record(z.unknown()).optional(), + actions: z.array(z.record(z.unknown())).optional(), + result: z + .union([z.literal('debug'), robotHtmlConvertInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotHtmlConvertInstructions = z.infer +export type RobotHtmlConvertInstructionsWithHiddenFields = z.infer< + typeof robotHtmlConvertInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotHtmlConvertInstructionsSchema = interpolateRobot( robotHtmlConvertInstructionsSchema, @@ -103,3 +116,13 @@ export const interpolatableRobotHtmlConvertInstructionsSchema = interpolateRobot export type InterpolatableRobotHtmlConvertInstructions = z.input< typeof interpolatableRobotHtmlConvertInstructionsSchema > + +export const interpolatableRobotHtmlConvertInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotHtmlConvertInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotHtmlConvertInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotHtmlConvertInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotHtmlConvertInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotHtmlConvertInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/http-import.ts b/src/alphalib/types/robots/http-import.ts index ef486014..b889e8db 100644 --- a/src/alphalib/types/robots/http-import.ts +++ b/src/alphalib/types/robots/http-import.ts @@ -1,12 +1,12 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { interpolateRobot, - robotImport, - robotBase, return_file_stubs, + robotBase, + robotImport, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -66,10 +66,21 @@ You can also specify an array of URLs or a string of \`|\` delimited URLs to imp url_delimiter: z.string().default('|').describe(` Provides the delimiter that is used to split the URLs in your \`url\` parameter value. `), - headers: z.array(z.string()).default([]).describe(` + headers: z + .union([ + z.array(z.string()), + z.array(z.record(z.string())), + z.string(), // For JSON strings like '{"X-Database":"volt"}' + ]) + .default([]).describe(` Custom headers to be sent for file import. This is an empty array by default, such that no additional headers except the necessary ones (e.g. Host) are sent. + +Headers can be specified as: +- An array of strings in the format "Header-Name: value" +- An array of objects with header names as keys and values as values +- A JSON string that will be parsed into an object `), import_on_errors: z.array(z.string()).default([]).describe(` Setting this to \`"meta"\` will still import the file on metadata extraction errors. \`ignore_errors\` is similar, it also ignores the error and makes sure the Robot doesn't stop, but it doesn't import the file. @@ -78,11 +89,46 @@ Setting this to \`"meta"\` will still import the file on metadata extraction err Disable the internal retry mechanism, and fail immediately if a resource can't be imported. This can be useful for performance critical applications. `), return_file_stubs, + range: z.union([z.string(), z.array(z.string())]).optional().describe(` +Allows you to specify one or more byte ranges to import from the file. The server must support range requests for this to work. + +**Single range**: Use a string like \`"0-99"\` to import bytes 0-99 (the first 100 bytes). + +**Multiple ranges**: Use an array like \`["0-99", "200-299"]\` to import multiple separate ranges. The resulting file will contain all requested ranges concatenated together, with zero bytes (\\0) filling any gaps between non-contiguous ranges. + +**Range formats**: +- \`"0-99"\`: Bytes 0 through 99 (inclusive) +- \`"100-199"\`: Bytes 100 through 199 (inclusive) +- \`"-100"\`: The last 100 bytes of the file + +**Important notes**: +- The server must support HTTP range requests (respond with 206 Partial Content) +- If the server doesn't support range requests, the entire file will be imported instead +- Overlapping ranges are allowed and will be included as requested +- The resulting file size will be the highest byte position requested, with gaps filled with zero bytes +`), }) .strict() +export const robotHttpImportInstructionsWithHiddenFieldsSchema = + robotHttpImportInstructionsSchema.extend({ + force_original_id: z.string().optional(), + force_name: z.union([z.string(), z.record(z.string())]).optional().describe(` +Force a specific filename for imported files. Can be a string to apply to all imports, or an object mapping URLs to filenames. +`), + result: z + .union([z.literal('debug'), robotHttpImportInstructionsSchema.shape.result]) + .optional(), + credentials: z.string().optional(), // For test purposes + bucket: z.string().optional(), // For test purposes + // Override url to support relative URLs in tests with bucket + url: z.union([z.string(), z.array(z.string())]).optional(), + }) + export type RobotHttpImportInstructions = z.infer -export type RobotHttpImportInstructionsInput = z.input +export type RobotHttpImportInstructionsWithHiddenFields = z.infer< + typeof robotHttpImportInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotHttpImportInstructionsSchema = interpolateRobot( robotHttpImportInstructionsSchema, @@ -90,3 +136,13 @@ export const interpolatableRobotHttpImportInstructionsSchema = interpolateRobot( export type InterpolatableRobotHttpImportInstructions = z.input< typeof interpolatableRobotHttpImportInstructionsSchema > + +export const interpolatableRobotHttpImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotHttpImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotHttpImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotHttpImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotHttpImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotHttpImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/image-bgremove.ts b/src/alphalib/types/robots/image-bgremove.ts index e6e4818c..a7e26f7a 100644 --- a/src/alphalib/types/robots/image-bgremove.ts +++ b/src/alphalib/types/robots/image-bgremove.ts @@ -55,7 +55,17 @@ export const robotImageBgremoveInstructionsSchema = robotBase }) .strict() +export const robotImageBgremoveInstructionsWithHiddenFieldsSchema = + robotImageBgremoveInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotImageBgremoveInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotImageBgremoveInstructions = z.infer +export type RobotImageBgremoveInstructionsWithHiddenFields = z.infer< + typeof robotImageBgremoveInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotImageBgremoveInstructionsSchema = interpolateRobot( robotImageBgremoveInstructionsSchema, @@ -63,3 +73,13 @@ export const interpolatableRobotImageBgremoveInstructionsSchema = interpolateRob export type InterpolatableRobotImageBgremoveInstructions = z.input< typeof interpolatableRobotImageBgremoveInstructionsSchema > + +export const interpolatableRobotImageBgremoveInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotImageBgremoveInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotImageBgremoveInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotImageBgremoveInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotImageBgremoveInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotImageBgremoveInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/image-describe.ts b/src/alphalib/types/robots/image-describe.ts index 9ac52939..f182a5cc 100644 --- a/src/alphalib/types/robots/image-describe.ts +++ b/src/alphalib/types/robots/image-describe.ts @@ -1,5 +1,6 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { aiProviderSchema, granularitySchema, @@ -7,7 +8,6 @@ import { robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -57,7 +57,7 @@ export const robotImageDescribeInstructionsSchema = robotBase robot: z.literal('/image/describe').describe(` You can use the labels that we return in your application to automatically classify images. You can also pass the labels down to other Robots to filter images that contain (or do not contain) certain content. `), - provider: aiProviderSchema.describe(` + provider: aiProviderSchema.optional().describe(` Which AI provider to leverage. Transloadit outsources this task and abstracts the interface so you can expect the same data structures, but different latencies and information being returned. Different cloud vendors have different areas they shine in, and we recommend to try out and see what yields the best results for your use case. @@ -81,7 +81,17 @@ For an example of how to automatically reject NSFW content and malware, please c }) .strict() +export const robotImageDescribeInstructionsWithHiddenFieldsSchema = + robotImageDescribeInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotImageDescribeInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotImageDescribeInstructions = z.infer +export type RobotImageDescribeInstructionsWithHiddenFields = z.infer< + typeof robotImageDescribeInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotImageDescribeInstructionsSchema = interpolateRobot( robotImageDescribeInstructionsSchema, @@ -89,3 +99,13 @@ export const interpolatableRobotImageDescribeInstructionsSchema = interpolateRob export type InterpolatableRobotImageDescribeInstructions = z.input< typeof interpolatableRobotImageDescribeInstructionsSchema > + +export const interpolatableRobotImageDescribeInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotImageDescribeInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotImageDescribeInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotImageDescribeInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotImageDescribeInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotImageDescribeInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/image-facedetect.ts b/src/alphalib/types/robots/image-facedetect.ts index 1469593b..d84046ed 100644 --- a/src/alphalib/types/robots/image-facedetect.ts +++ b/src/alphalib/types/robots/image-facedetect.ts @@ -1,12 +1,12 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { aiProviderSchema, interpolateRobot, robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -138,9 +138,19 @@ For the following examples, the input image is: }) .strict() +export const robotImageFacedetectInstructionsWithHiddenFieldsSchema = + robotImageFacedetectInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotImageFacedetectInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotImageFacedetectInstructions = z.infer< typeof robotImageFacedetectInstructionsSchema > +export type RobotImageFacedetectInstructionsWithHiddenFields = z.infer< + typeof robotImageFacedetectInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotImageFacedetectInstructionsSchema = interpolateRobot( robotImageFacedetectInstructionsSchema, @@ -148,3 +158,12 @@ export const interpolatableRobotImageFacedetectInstructionsSchema = interpolateR export type InterpolatableRobotImageFacedetectInstructions = z.input< typeof interpolatableRobotImageFacedetectInstructionsSchema > + +export const interpolatableRobotImageFacedetectInstructionsWithHiddenFieldsSchema = + interpolateRobot(robotImageFacedetectInstructionsWithHiddenFieldsSchema) +export type InterpolatableRobotImageFacedetectInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotImageFacedetectInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotImageFacedetectInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotImageFacedetectInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/image-generate.ts b/src/alphalib/types/robots/image-generate.ts index bc8324b6..6b8144d6 100644 --- a/src/alphalib/types/robots/image-generate.ts +++ b/src/alphalib/types/robots/image-generate.ts @@ -49,8 +49,10 @@ export const robotImageGenerateInstructionsSchema = robotBase export const robotImageGenerateInstructionsWithHiddenFieldsSchema = robotImageGenerateInstructionsSchema.extend({ - result: z.union([z.literal('debug'), robotImageGenerateInstructionsSchema.shape.result]), provider: z.string().optional().describe('Provider for generating the image.'), + result: z + .union([z.literal('debug'), robotImageGenerateInstructionsSchema.shape.result]) + .optional(), }) export type RobotImageGenerateInstructions = z.infer @@ -64,3 +66,13 @@ export const interpolatableRobotImageGenerateInstructionsSchema = interpolateRob export type InterpolatableRobotImageGenerateInstructions = z.input< typeof interpolatableRobotImageGenerateInstructionsSchema > + +export const interpolatableRobotImageGenerateInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotImageGenerateInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotImageGenerateInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotImageGenerateInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotImageGenerateInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotImageGenerateInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/image-merge.ts b/src/alphalib/types/robots/image-merge.ts index aaed1d7b..693008a8 100644 --- a/src/alphalib/types/robots/image-merge.ts +++ b/src/alphalib/types/robots/image-merge.ts @@ -1,5 +1,6 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { color_without_alpha, imageQualitySchema, @@ -7,7 +8,6 @@ import { robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -67,7 +67,7 @@ similar size before merging them. .default('horizontal') .describe('Specifies the direction which the images are displayed.'), // TODO: default is not between 1 and 10 - border: z.number().int().min(1).max(10).default(0).describe(` + border: z.number().int().default(0).describe(` An integer value which defines the gap between images on the spritesheet. A value of \`10\` would cause the images to have the largest gap between them, while a value of \`1\` would place the images side-by-side. @@ -85,7 +85,18 @@ Controls the image compression for PNG images. Setting to \`true\` results in sm quality: imageQualitySchema, }) .strict() + +export const robotImageMergeInstructionsWithHiddenFieldsSchema = + robotImageMergeInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotImageMergeInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotImageMergeInstructions = z.infer +export type RobotImageMergeInstructionsWithHiddenFields = z.infer< + typeof robotImageMergeInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotImageMergeInstructionsSchema = interpolateRobot( robotImageMergeInstructionsSchema, @@ -93,3 +104,13 @@ export const interpolatableRobotImageMergeInstructionsSchema = interpolateRobot( export type InterpolatableRobotImageMergeInstructions = z.input< typeof interpolatableRobotImageMergeInstructionsSchema > + +export const interpolatableRobotImageMergeInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotImageMergeInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotImageMergeInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotImageMergeInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotImageMergeInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotImageMergeInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/image-ocr.ts b/src/alphalib/types/robots/image-ocr.ts index 8203eee5..7dcbba77 100644 --- a/src/alphalib/types/robots/image-ocr.ts +++ b/src/alphalib/types/robots/image-ocr.ts @@ -1,5 +1,6 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { aiProviderSchema, granularitySchema, @@ -7,7 +8,6 @@ import { robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -78,7 +78,15 @@ In what format to return the extracted text. }) .strict() +export const robotImageOcrInstructionsWithHiddenFieldsSchema = + robotImageOcrInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotImageOcrInstructionsSchema.shape.result]).optional(), + }) + export type RobotImageOcrInstructions = z.infer +export type RobotImageOcrInstructionsWithHiddenFields = z.infer< + typeof robotImageOcrInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotImageOcrInstructionsSchema = interpolateRobot( robotImageOcrInstructionsSchema, @@ -86,3 +94,13 @@ export const interpolatableRobotImageOcrInstructionsSchema = interpolateRobot( export type InterpolatableRobotImageOcrInstructions = z.input< typeof interpolatableRobotImageOcrInstructionsSchema > + +export const interpolatableRobotImageOcrInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotImageOcrInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotImageOcrInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotImageOcrInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotImageOcrInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotImageOcrInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/image-optimize.ts b/src/alphalib/types/robots/image-optimize.ts index 7c9f3f51..aeb1aa2a 100644 --- a/src/alphalib/types/robots/image-optimize.ts +++ b/src/alphalib/types/robots/image-optimize.ts @@ -1,12 +1,12 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { interpolateRobot, optimize_priority, robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -70,7 +70,18 @@ If set to \`true\` this parameter tries to fix images that would otherwise make `), }) .strict() + +export const robotImageOptimizeInstructionsWithHiddenFieldsSchema = + robotImageOptimizeInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotImageOptimizeInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotImageOptimizeInstructions = z.infer +export type RobotImageOptimizeInstructionsWithHiddenFields = z.infer< + typeof robotImageOptimizeInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotImageOptimizeInstructionsSchema = interpolateRobot( robotImageOptimizeInstructionsSchema, @@ -78,3 +89,13 @@ export const interpolatableRobotImageOptimizeInstructionsSchema = interpolateRob export type InterpolatableRobotImageOptimizeInstructions = z.input< typeof interpolatableRobotImageOptimizeInstructionsSchema > + +export const interpolatableRobotImageOptimizeInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotImageOptimizeInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotImageOptimizeInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotImageOptimizeInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotImageOptimizeInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotImageOptimizeInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/image-resize.ts b/src/alphalib/types/robots/image-resize.ts index 46d17b2d..dc3f3282 100644 --- a/src/alphalib/types/robots/image-resize.ts +++ b/src/alphalib/types/robots/image-resize.ts @@ -2,18 +2,18 @@ import { z } from 'zod' import type { RobotMetaInput } from './_instructions-primitives.ts' import { - color_without_alpha, + color_without_alpha_with_named, colorspaceSchema, complexHeightSchema, complexWidthSchema, imageQualitySchema, + interpolateRobot, percentageSchema, positionSchema, - unsafeCoordinatesSchema, robotBase, - robotUse, robotImagemagick, - interpolateRobot, + robotUse, + unsafeCoordinatesSchema, } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { @@ -55,6 +55,69 @@ export const meta: RobotMetaInput = { removeJobResultFilesFromDiskRightAfterStoringOnS3: false, } +export const oneTextSchema = z.object({ + // TODO: Determine valid fonts + text: z.string(), + font: z.string().default('Arial').describe(` +The font family to use. Also includes boldness and style of the font. + +[Here](/docs/supported-formats/fonts/) is a list of all +supported fonts. +`), + size: z.number().int().min(1).default(12).describe(` +The text size in pixels. +`), + rotate: z.number().int().default(0).describe(` +The rotation angle in degrees. +`), + color: color_without_alpha_with_named.default('#000000').describe(` +The text color. All hex colors in the form \`"#xxxxxx"\` are supported, where each x can be \`0-9\` or \`a-f\`. Named colors like \`"black"\`, \`"white"\`, \`"transparent"\` etc. are also supported. If you want a transparent text color, use "stroke" instead, otherwise your text will not be visible. +`), + background_color: color_without_alpha_with_named.default('transparent').describe(` +The background color behind the text. All hex colors in the form \`"#xxxxxx"\` are supported, where each x can be \`0-9\` or \`a-f\`. Named colors like \`"black"\`, \`"white"\`, \`"transparent"\` etc. are also supported. +`), + stroke_width: z.number().int().min(0).default(0).describe(` +The stroke's width in pixels. +`), + stroke_color: color_without_alpha_with_named.default('transparent').describe(` +The stroke's color. All hex colors in the form \`"#xxxxxx"\` are supported, where each x can be \`0-9\` or \`a-f\`. Named colors like \`"black"\`, \`"white"\`, \`"transparent"\` etc. are also supported. +`), + align: z.enum(['center', 'left', 'right']).default('center').describe(` +The horizontal text alignment. Can be \`"left"\`, \`"center"\` and \`"right"\`. +`), + valign: z.enum(['bottom', 'center', 'top']).default('center').describe(` +The vertical text alignment. Can be \`"top"\`, \`"center"\` and \`"bottom"\`. +`), + x_offset: z.number().int().default(0).describe(` +The horizontal offset for the text in pixels that is added (positive integer) or removed (negative integer) from the horizontal alignment. +`), + y_offset: z.number().int().default(0).describe(` +The vertical offset for the text in pixels that is added (positive integer) or removed (negative integer) from the vertical alignment. +`), +}) + +const TEXT_DESCRIPTION = ` +Text overlays to be applied to the image. Can be either a single text object or an array of text objects. Each text object contains text rules. The following text parameters are intended to be used as properties for your text overlays. Here is an example: + +\`\`\`json +"watermarked": { + "use": "resized", + "robot": "/image/resize", + "text": [ + { + "text": "© 2018 Transloadit.com", + "size": 12, + "font": "Ubuntu", + "color": "#eeeeee", + "valign": "bottom", + "align": "right", + "x_offset": 16, + "y_offset": -10 + } + ] +} +\`\`\`` + export const robotImageResizeInstructionsSchema = robotBase .merge(robotUse) .merge(robotImagemagick) @@ -177,7 +240,7 @@ Gives control of the alpha/matte channel of an image. Gives control of the alpha/matte channel of an image before applying the clipping path via \`clip: true\`. `), flatten: z.boolean().default(true).describe(` -Flattens all layers onto the specified background to achieve better results from transparent formats to non-transparent formats, as explained in the [ImageMagick documentation](https://www.imagemagick.org/script/command-line-options.php?#layers). +Flattens all layers onto the specified background to achieve better results from transparent formats to non-transparent formats, as explained in the [ImageMagick documentation](https://www.imagemagick.org/script/command-line-options.php#layers). To preserve animations, GIF files are not flattened when this is set to \`true\`. To flatten GIF animations, use the \`frame\` parameter. `), @@ -188,9 +251,7 @@ Prevents gamma errors [common in many image scaling algorithms](https://www.4p8. adaptive_filtering: z.boolean().default(false).describe(` Controls the image compression for PNG images. Setting to \`true\` results in smaller file size, while increasing processing time. It is encouraged to keep this option disabled. `), - background: z - .union([z.literal('transparent'), z.literal('none'), color_without_alpha]) - .default('#FFFFFF').describe(` + background: color_without_alpha_with_named.default('#FFFFFF').describe(` Either the hexadecimal code or [name](https://www.imagemagick.org/script/color.php#color_names) of the color used to fill the background (used for the \`pad\` resize strategy). **Note:** By default, the background of transparent images is changed to white. To preserve transparency, set \`"background"\` to \`"none"\`. @@ -220,9 +281,13 @@ Sets the image color type. For details about the available values, see the [Imag Applies a sepia tone effect in percent. `), rotation: z - .union([z.literal(90), z.literal(180), z.literal(270), z.literal(360), z.boolean()]) + .union([ + z.number(), // Support any numeric rotation value (including precise angles like 2.9) + z.boolean(), + z.literal('auto'), // Support 'auto' string value + ]) .default(true).describe(` -Determines whether the image should be rotated. Use integers to specify the rotation for each quarter revolution(\`90\`, \`180\`, \`270\`, \`360\`). Use the value \`true\` to auto-rotate images that are rotated incorrectly or depend on EXIF rotation settings. Otherwise, use \`false\` to disable auto-fixing altogether. +Determines whether the image should be rotated. Use any number to specify the rotation angle in degrees (e.g., \`90\`, \`180\`, \`270\`, \`360\`, or precise values like \`2.9\`). Use the value \`true\` or \`"auto"\` to auto-rotate images that are rotated incorrectly or depend on EXIF rotation settings. Otherwise, use \`false\` to disable auto-fixing altogether. `), compress: z .enum(['BZip', 'Fax', 'Group4', 'JPEG', 'JPEG2000', 'Lossless', 'LZW', 'None', 'RLE', 'Zip']) @@ -305,80 +370,20 @@ For the \`"stretch"\` resize strategy, the watermark is stretched (meaning, it i For the \`"area"\` resize strategy, the watermark is resized (keeping its aspect ratio in check) so that it covers \`"xx%"\` of the image's surface area. The value from \`watermark_size\` is used for the percentage area size. `), text: z - .array( - z.object({ - // TODO: Determine valid fonts - text: z.string(), - font: z.string().default('Arial').describe(` -The font family to use. Also includes boldness and style of the font. - -[Here](/docs/supported-formats/fonts/) is a list of all -supported fonts. -`), - size: z.number().int().min(1).default(12).describe(` -The text size in pixels. -`), - rotate: z.number().int().default(0).describe(` -The rotation angle in degrees. -`), - color: z.union([color_without_alpha, z.literal('transparent')]).default('#000000') - .describe(` -The text color. All hex colors in the form \`"#xxxxxx"\` are supported, where each x can be \`0-9\` or \`a-f\`. \`"transparent"\` is also supported if you want a transparent text color. In that case use "stroke" instead, otherwise your text will not be visible. -`), - background_color: z - .union([color_without_alpha, z.literal('transparent')]) - .default('transparent').describe(` -The text color. All hex colors in the form \`"#xxxxxx"\` are supported, where each x is can be \`0-9\` or \`a-f\`. \`"transparent"\` is also supported. -`), - stroke_width: z.number().int().min(0).default(0).describe(` -The stroke's width in pixels. -`), - stroke_color: z - .union([color_without_alpha, z.literal('transparent')]) - .default('transparent').describe(` -The stroke's color. All hex colors in the form \`"#xxxxxx"\` are supported, where each x is can be \`0-9\` or \`a-f\`. \`"transparent"\` is also supported. -`), - align: z.enum(['center', 'left', 'right']).default('center').describe(` -The horizontal text alignment. Can be \`"left"\`, \`"center"\` and \`"right"\`. -`), - valign: z.enum(['bottom', 'center', 'top']).default('center').describe(` -The vertical text alignment. Can be \`"top"\`, \`"center"\` and \`"bottom"\`. -`), - x_offset: z.number().int().default(0).describe(` -The horizontal offset for the text in pixels that is added (positive integer) or removed (negative integer) from the horizontal alignment. -`), - y_offset: z.number().int().default(0).describe(` -The vertical offset for the text in pixels that is added (positive integer) or removed (negative integer) from the vertical alignment. -`), - }), - ) - .default([]).describe(` -An array of objects each containing text rules. The following text parameters are intended to be used as properties for your array of text overlays. Here is an example: - -\`\`\`json -"watermarked": { - "use": "resized", - "robot": "/image/resize", - "text": [ - { - "text": "© 2018 Transloadit.com", - "size": 12, - "font": "Ubuntu", - "color": "#eeeeee", - "valign": "bottom", - "align": "right", - "x_offset": 16, - "y_offset": -10 - } - ] -} -\`\`\` -`), + .union([ + // Support single text object (backward compatibility) + oneTextSchema, + // Support array of text objects (current schema) + z.array(oneTextSchema), + ]) + .optional() + .describe(TEXT_DESCRIPTION), progressive: z.boolean().default(false).describe(` Interlaces the image if set to \`true\`, which makes the image load progressively in browsers. Instead of rendering the image from top to bottom, the browser will first show a low-res blurry version of the images which is then quickly replaced with the actual image as the data arrives. This greatly increases the user experience, but comes at a cost of a file size increase by around 10%. `), - transparent: z.union([color_without_alpha, z.string().regex(/^\d+,\d+,\d+$/)]).optional() - .describe(` + transparent: z + .union([color_without_alpha_with_named, z.string().regex(/^\d+,\d+,\d+$/)]) + .optional().describe(` Make this color transparent within the image. Example: \`"255,255,255"\`. `), trim_whitespace: z.boolean().default(false).describe(` @@ -400,12 +405,58 @@ While in-memory quality and file format depth specifies the color resolution, th You can set this value to a specific \`width\` or in the format \`width\`x\`height\`. If your converted image is unsharp, please try increasing density. +`), + monochrome: z.boolean().default(false).describe(` +Transform the image to black and white. This is a shortcut for setting the colorspace to Gray and type to Bilevel. +`), + shave: z + .union([ + z.string().regex(/^\d+(x\d+)?$/), + z.number().int().min(0).transform(String), // Accept numbers and convert to string + ]) + .optional().describe(` +Shave pixels from the image edges. The value should be in the format \`width\` or \`width\`x\`height\` to specify the number of pixels to remove from each side. `), }) .strict() +export const robotImageResizeInstructionsWithHiddenFieldsSchema = + robotImageResizeInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotImageResizeInstructionsSchema.shape.result]) + .optional(), + stack: z.string().optional().describe('Legacy parameter, use imagemagick_stack instead'), + text: z + .union([ + // Support single text object (backward compatibility) + oneTextSchema.extend({ + gravity: positionSchema.default('top-left').optional().describe(` + Legacy. The direction from which to start the offsets. + `), + }), + // Support array of text objects (current schema) + z.array( + oneTextSchema.extend({ + gravity: positionSchema.default('top-left').optional().describe(` + Legacy. The direction from which to start the offsets. + `), + }), + ), + ]) + .optional() + .describe(TEXT_DESCRIPTION), + watermark_position_x: z.number().int().optional().describe(` + Legacy alias for \`watermark_x_offset\`. The x-offset in number of pixels at which the watermark will be placed. + `), + watermark_position_y: z.number().int().optional().describe(` + Legacy alias for \`watermark_y_offset\`. The y-offset in number of pixels at which the watermark will be placed. + `), + }) + export type RobotImageResizeInstructions = z.infer -export type RobotImageResizeInstructionsInput = z.input +export type RobotImageResizeInstructionsWithHiddenFields = z.infer< + typeof robotImageResizeInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotImageResizeInstructionsSchema = interpolateRobot( robotImageResizeInstructionsSchema, @@ -413,3 +464,13 @@ export const interpolatableRobotImageResizeInstructionsSchema = interpolateRobot export type InterpolatableRobotImageResizeInstructions = z.input< typeof interpolatableRobotImageResizeInstructionsSchema > + +export const interpolatableRobotImageResizeInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotImageResizeInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotImageResizeInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotImageResizeInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotImageResizeInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotImageResizeInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/meta-read.ts b/src/alphalib/types/robots/meta-read.ts index 1a7a93ef..10663062 100644 --- a/src/alphalib/types/robots/meta-read.ts +++ b/src/alphalib/types/robots/meta-read.ts @@ -1,6 +1,6 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, type RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, type RobotMetaInput, robotBase } from './_instructions-primitives.ts' // @ts-expect-error - MetaReadRobot is not ready yet @TODO please supply missing keys export const meta: RobotMetaInput = { @@ -21,9 +21,21 @@ export const robotMetaReadInstructionsSchema = robotBase export type RobotMetaReadInstructions = z.infer +export const robotMetaReadInstructionsWithHiddenFieldsSchema = + robotMetaReadInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotMetaReadInstructionsSchema.shape.result]).optional(), + }) + export const interpolatableRobotMetaReadInstructionsSchema = interpolateRobot( robotMetaReadInstructionsSchema, ) export type InterpolatableRobotMetaReadInstructions = z.input< typeof interpolatableRobotMetaReadInstructionsSchema > + +export const interpolatableRobotMetaReadInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotMetaReadInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotMetaReadInstructionsWithHiddenFields = z.input< + typeof interpolatableRobotMetaReadInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/meta-write.ts b/src/alphalib/types/robots/meta-write.ts index ec77baba..33f6b93e 100644 --- a/src/alphalib/types/robots/meta-write.ts +++ b/src/alphalib/types/robots/meta-write.ts @@ -1,8 +1,8 @@ import { z } from 'zod' -import { robotFFmpeg, robotBase, robotUse, interpolateRobot } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' import { stackVersions } from '../stackVersions.ts' +import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotFFmpeg, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -59,7 +59,15 @@ Valid metadata keys can be found [here](https://exiftool.org/TagNames/EXIF.html) }) .strict() +export const robotMetaWriteInstructionsWithHiddenFieldsSchema = + robotMetaWriteInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotMetaWriteInstructionsSchema.shape.result]).optional(), + }) + export type RobotMetaWriteInstructions = z.infer +export type RobotMetaWriteInstructionsWithHiddenFields = z.infer< + typeof robotMetaWriteInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotMetaWriteInstructionsSchema = interpolateRobot( robotMetaWriteInstructionsSchema, @@ -67,3 +75,13 @@ export const interpolatableRobotMetaWriteInstructionsSchema = interpolateRobot( export type InterpolatableRobotMetaWriteInstructions = z.input< typeof interpolatableRobotMetaWriteInstructionsSchema > + +export const interpolatableRobotMetaWriteInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotMetaWriteInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotMetaWriteInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotMetaWriteInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotMetaWriteInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotMetaWriteInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/minio-import.ts b/src/alphalib/types/robots/minio-import.ts index 1ac3f6a0..9053ea9c 100644 --- a/src/alphalib/types/robots/minio-import.ts +++ b/src/alphalib/types/robots/minio-import.ts @@ -1,17 +1,17 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { files_per_page, interpolateRobot, - robotImport, minioBase, page_number, path, recursive, - robotBase, return_file_stubs, + robotBase, + robotImport, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -85,8 +85,17 @@ The pagination page size. This only works when recursive is \`true\` for now, in }) .strict() +export const robotMinioImportInstructionsWithHiddenFieldsSchema = + robotMinioImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotMinioImportInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotMinioImportInstructions = z.infer -export type RobotMinioImportInstructionsInput = z.input +export type RobotMinioImportInstructionsWithHiddenFields = z.infer< + typeof robotMinioImportInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotMinioImportInstructionsSchema = interpolateRobot( robotMinioImportInstructionsSchema, @@ -94,3 +103,13 @@ export const interpolatableRobotMinioImportInstructionsSchema = interpolateRobot export type InterpolatableRobotMinioImportInstructions = z.input< typeof interpolatableRobotMinioImportInstructionsSchema > + +export const interpolatableRobotMinioImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotMinioImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotMinioImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotMinioImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotMinioImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotMinioImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/minio-store.ts b/src/alphalib/types/robots/minio-store.ts index edc24fc3..f5208754 100644 --- a/src/alphalib/types/robots/minio-store.ts +++ b/src/alphalib/types/robots/minio-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, minioBase, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, minioBase, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -67,8 +67,17 @@ If this parameter is not used, no URL signing is done. }) .strict() +export const robotMinioStoreInstructionsWithHiddenFieldsSchema = + robotMinioStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotMinioStoreInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotMinioStoreInstructions = z.infer -export type RobotMinioStoreInstructionsInput = z.input +export type RobotMinioStoreInstructionsWithHiddenFields = z.infer< + typeof robotMinioStoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotMinioStoreInstructionsSchema = interpolateRobot( robotMinioStoreInstructionsSchema, @@ -76,3 +85,13 @@ export const interpolatableRobotMinioStoreInstructionsSchema = interpolateRobot( export type InterpolatableRobotMinioStoreInstructions = z.input< typeof interpolatableRobotMinioStoreInstructionsSchema > + +export const interpolatableRobotMinioStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotMinioStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotMinioStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotMinioStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotMinioStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotMinioStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/progress-simulate.ts b/src/alphalib/types/robots/progress-simulate.ts index 2ab87b80..857da837 100644 --- a/src/alphalib/types/robots/progress-simulate.ts +++ b/src/alphalib/types/robots/progress-simulate.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' // @ts-expect-error - ProgressSimulateRobot is not ready yet @TODO please supply missing keys export const meta: RobotMetaInput = { @@ -15,6 +15,7 @@ export const meta: RobotMetaInput = { } export const robotProgressSimulateInstructionsSchema = robotBase + .merge(robotUse) .extend({ robot: z.literal('/progress/simulate'), duration: z.number(), diff --git a/src/alphalib/types/robots/s3-import.ts b/src/alphalib/types/robots/s3-import.ts index f6cdbf11..ca2bbafb 100644 --- a/src/alphalib/types/robots/s3-import.ts +++ b/src/alphalib/types/robots/s3-import.ts @@ -1,17 +1,17 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { files_per_page, interpolateRobot, - robotImport, page_number, path, recursive, - robotBase, return_file_stubs, + robotBase, + robotImport, s3Base, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -119,11 +119,36 @@ When doing big imports, make sure no files are added or removed from other scrip The pagination page size. This only works when recursive is \`true\` for now, in order to not break backwards compatibility in non-recursive imports. `), return_file_stubs, + range: z.union([z.string(), z.array(z.string())]).optional().describe(` +Allows you to specify one or more byte ranges to import from the file. S3 must support range requests for this to work. + +**Single range**: Use a string like \`"0-99"\` to import bytes 0-99 (the first 100 bytes). + +**Multiple ranges**: Use an array like \`["0-99", "200-299"]\` to import multiple separate ranges. The resulting file will contain all requested ranges concatenated together, with zero bytes (\\0) filling any gaps between non-contiguous ranges. + +**Range formats**: +- \`"0-99"\`: Bytes 0 through 99 (inclusive) +- \`"100-199"\`: Bytes 100 through 199 (inclusive) +- \`"-100"\`: The last 100 bytes of the file + +**Important notes**: +- S3 supports range requests by default +- Overlapping ranges are allowed and will be included as requested +- The resulting file size will be the highest byte position requested, with gaps filled with zero bytes +- Each range is fetched in a separate request to ensure compatibility with S3 +`), }) .strict() +export const robotS3ImportInstructionsWithHiddenFieldsSchema = + robotS3ImportInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotS3ImportInstructionsSchema.shape.result]).optional(), + }) + export type RobotS3ImportInstructions = z.infer -export type RobotS3ImportInstructionsInput = z.input +export type RobotS3ImportInstructionsWithHiddenFields = z.infer< + typeof robotS3ImportInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotS3ImportInstructionsSchema = interpolateRobot( robotS3ImportInstructionsSchema, @@ -131,3 +156,13 @@ export const interpolatableRobotS3ImportInstructionsSchema = interpolateRobot( export type InterpolatableRobotS3ImportInstructions = z.input< typeof interpolatableRobotS3ImportInstructionsSchema > + +export const interpolatableRobotS3ImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotS3ImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotS3ImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotS3ImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotS3ImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotS3ImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/s3-store.ts b/src/alphalib/types/robots/s3-store.ts index 7cea97ee..174c4dd9 100644 --- a/src/alphalib/types/robots/s3-store.ts +++ b/src/alphalib/types/robots/s3-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse, s3Base } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse, s3Base } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -125,8 +125,20 @@ This parameter provides signed URLs in the result JSON (in the \`signed_url\` an }) .strict() +export const robotS3StoreInstructionsWithHiddenFieldsSchema = robotS3StoreInstructionsSchema.extend( + { + result: z.union([z.literal('debug'), robotS3StoreInstructionsSchema.shape.result]).optional(), + skip_region_lookup: z.boolean().optional().describe(` +Internal parameter to skip region lookup for testing purposes. +`), + }, +) + export type RobotS3StoreInstructions = z.infer export type RobotS3StoreInstructionsInput = z.input +export type RobotS3StoreInstructionsWithHiddenFields = z.infer< + typeof robotS3StoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotS3StoreInstructionsSchema = interpolateRobot( robotS3StoreInstructionsSchema, @@ -134,3 +146,13 @@ export const interpolatableRobotS3StoreInstructionsSchema = interpolateRobot( export type InterpolatableRobotS3StoreInstructions = z.input< typeof interpolatableRobotS3StoreInstructionsSchema > + +export const interpolatableRobotS3StoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotS3StoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotS3StoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotS3StoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotS3StoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotS3StoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/script-run.ts b/src/alphalib/types/robots/script-run.ts index 2f358a6f..3ce743c1 100644 --- a/src/alphalib/types/robots/script-run.ts +++ b/src/alphalib/types/robots/script-run.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -85,7 +85,18 @@ You can check whether evaluating this script was free by inspecting \`file.meta. }) .strict() +export const robotScriptRunInstructionsWithHiddenFieldsSchema = + robotScriptRunInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotScriptRunInstructionsSchema.shape.result]).optional(), + contextJSON: z.string().optional().describe(` +A JSON string that provides additional context data to the script. This will be parsed and made available to the script as a \`context\` variable. For example, if you pass \`'{"foo":{"bar":"baz"}}'\`, the script can access \`context.foo.bar\` to get the value \`"baz"\`. +`), + }) + export type RobotScriptRunInstructions = z.infer +export type RobotScriptRunInstructionsWithHiddenFields = z.infer< + typeof robotScriptRunInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotScriptRunInstructionsSchema = interpolateRobot( robotScriptRunInstructionsSchema, @@ -93,3 +104,13 @@ export const interpolatableRobotScriptRunInstructionsSchema = interpolateRobot( export type InterpolatableRobotScriptRunInstructions = z.input< typeof interpolatableRobotScriptRunInstructionsSchema > + +export const interpolatableRobotScriptRunInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotScriptRunInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotScriptRunInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotScriptRunInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotScriptRunInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotScriptRunInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/sftp-import.ts b/src/alphalib/types/robots/sftp-import.ts index 2aad8a6a..fb2bf1e3 100644 --- a/src/alphalib/types/robots/sftp-import.ts +++ b/src/alphalib/types/robots/sftp-import.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { robotImport, robotBase, sftpBase, interpolateRobot } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotImport, sftpBase } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -51,8 +51,20 @@ The path on your SFTP server where to search for files. }) .strict() +export const robotSftpImportInstructionsWithHiddenFieldsSchema = + robotSftpImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotSftpImportInstructionsSchema.shape.result]) + .optional(), + allowNetwork: z.string().optional().describe(` +Network access permission for the SFTP connection. This is used to control which networks the SFTP robot can access. +`), + }) + export type RobotSftpImportInstructions = z.infer -export type RobotSftpImportInstructionsInput = z.input +export type RobotSftpImportInstructionsWithHiddenFields = z.infer< + typeof robotSftpImportInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotSftpImportInstructionsSchema = interpolateRobot( robotSftpImportInstructionsSchema, @@ -60,3 +72,13 @@ export const interpolatableRobotSftpImportInstructionsSchema = interpolateRobot( export type InterpolatableRobotSftpImportInstructions = z.input< typeof interpolatableRobotSftpImportInstructionsSchema > + +export const interpolatableRobotSftpImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotSftpImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotSftpImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotSftpImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotSftpImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotSftpImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/sftp-store.ts b/src/alphalib/types/robots/sftp-store.ts index 670f3066..a391a60a 100644 --- a/src/alphalib/types/robots/sftp-store.ts +++ b/src/alphalib/types/robots/sftp-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse, sftpBase } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse, sftpBase } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -63,8 +63,18 @@ This optional parameter controls how an uploaded file's permission bits are set. }) .strict() +export const robotSftpStoreInstructionsWithHiddenFieldsSchema = + robotSftpStoreInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotSftpStoreInstructionsSchema.shape.result]).optional(), + allowNetwork: z.string().optional().describe(` +Network access permission for the SFTP connection. This is used to control which networks the SFTP robot can access. +`), + }) + export type RobotSftpStoreInstructions = z.infer -export type RobotSftpStoreInstructionsInput = z.input +export type RobotSftpStoreInstructionsWithHiddenFields = z.infer< + typeof robotSftpStoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotSftpStoreInstructionsSchema = interpolateRobot( robotSftpStoreInstructionsSchema, @@ -72,3 +82,13 @@ export const interpolatableRobotSftpStoreInstructionsSchema = interpolateRobot( export type InterpolatableRobotSftpStoreInstructions = z.input< typeof interpolatableRobotSftpStoreInstructionsSchema > + +export const interpolatableRobotSftpStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotSftpStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotSftpStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotSftpStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotSftpStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotSftpStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/speech-transcribe.ts b/src/alphalib/types/robots/speech-transcribe.ts index d65b21f0..d93ced39 100644 --- a/src/alphalib/types/robots/speech-transcribe.ts +++ b/src/alphalib/types/robots/speech-transcribe.ts @@ -1,5 +1,6 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { aiProviderSchema, granularitySchema, @@ -7,7 +8,6 @@ import { robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -95,15 +95,16 @@ The language should be specified in the [BCP-47](https://www.rfc-editor.org/rfc/ }) .strict() -export type RobotSpeechTranscribeInstructions = z.infer< - typeof robotSpeechTranscribeInstructionsSchema -> - export const robotSpeechTranscribeInstructionsWithHiddenFieldsSchema = robotSpeechTranscribeInstructionsSchema.extend({ - result: z.union([z.literal('debug'), robotSpeechTranscribeInstructionsSchema.shape.result]), + result: z + .union([z.literal('debug'), robotSpeechTranscribeInstructionsSchema.shape.result]) + .optional(), }) +export type RobotSpeechTranscribeInstructions = z.infer< + typeof robotSpeechTranscribeInstructionsSchema +> export type RobotSpeechTranscribeInstructionsWithHiddenFields = z.infer< typeof robotSpeechTranscribeInstructionsWithHiddenFieldsSchema > @@ -114,3 +115,12 @@ export const interpolatableRobotSpeechTranscribeInstructionsSchema = interpolate export type InterpolatableRobotSpeechTranscribeInstructions = z.input< typeof interpolatableRobotSpeechTranscribeInstructionsSchema > + +export const interpolatableRobotSpeechTranscribeInstructionsWithHiddenFieldsSchema = + interpolateRobot(robotSpeechTranscribeInstructionsWithHiddenFieldsSchema) +export type InterpolatableRobotSpeechTranscribeInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotSpeechTranscribeInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotSpeechTranscribeInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotSpeechTranscribeInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/supabase-import.ts b/src/alphalib/types/robots/supabase-import.ts index 3e83227b..a380411a 100644 --- a/src/alphalib/types/robots/supabase-import.ts +++ b/src/alphalib/types/robots/supabase-import.ts @@ -1,17 +1,17 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { files_per_page, - robotImport, + interpolateRobot, page_number, path, recursive, - robotBase, return_file_stubs, + robotBase, + robotImport, supabaseBase, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -87,9 +87,16 @@ The pagination page size. This only works when recursive is \`true\` for now, in }) .strict() +export const robotSupabaseImportInstructionsWithHiddenFieldsSchema = + robotSupabaseImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotSupabaseImportInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotSupabaseImportInstructions = z.infer -export type RobotSupabaseImportInstructionsInput = z.input< - typeof robotSupabaseImportInstructionsSchema +export type RobotSupabaseImportInstructionsWithHiddenFields = z.infer< + typeof robotSupabaseImportInstructionsWithHiddenFieldsSchema > export const interpolatableRobotSupabaseImportInstructionsSchema = interpolateRobot( @@ -98,3 +105,13 @@ export const interpolatableRobotSupabaseImportInstructionsSchema = interpolateRo export type InterpolatableRobotSupabaseImportInstructions = z.input< typeof interpolatableRobotSupabaseImportInstructionsSchema > + +export const interpolatableRobotSupabaseImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotSupabaseImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotSupabaseImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotSupabaseImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotSupabaseImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotSupabaseImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/supabase-store.ts b/src/alphalib/types/robots/supabase-store.ts index fa3e955f..d1b2073e 100644 --- a/src/alphalib/types/robots/supabase-store.ts +++ b/src/alphalib/types/robots/supabase-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse, supabaseBase } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse, supabaseBase } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -60,9 +60,16 @@ This parameter provides signed URLs in the result JSON (in the \`signed_ssl_url\ }) .strict() +export const robotSupabaseStoreInstructionsWithHiddenFieldsSchema = + robotSupabaseStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotSupabaseStoreInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotSupabaseStoreInstructions = z.infer -export type RobotSupabaseStoreInstructionsInput = z.input< - typeof robotSupabaseStoreInstructionsSchema +export type RobotSupabaseStoreInstructionsWithHiddenFields = z.infer< + typeof robotSupabaseStoreInstructionsWithHiddenFieldsSchema > export const interpolatableRobotSupabaseStoreInstructionsSchema = interpolateRobot( @@ -71,3 +78,13 @@ export const interpolatableRobotSupabaseStoreInstructionsSchema = interpolateRob export type InterpolatableRobotSupabaseStoreInstructions = z.input< typeof interpolatableRobotSupabaseStoreInstructionsSchema > + +export const interpolatableRobotSupabaseStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotSupabaseStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotSupabaseStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotSupabaseStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotSupabaseStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotSupabaseStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/swift-import.ts b/src/alphalib/types/robots/swift-import.ts index bdcf9a08..bc82c0ec 100644 --- a/src/alphalib/types/robots/swift-import.ts +++ b/src/alphalib/types/robots/swift-import.ts @@ -1,17 +1,17 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { files_per_page, - robotImport, + interpolateRobot, page_number, path, recursive, - robotBase, return_file_stubs, + robotBase, + robotImport, swiftBase, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -85,8 +85,17 @@ The pagination page size. This only works when recursive is \`true\` for now, in }) .strict() +export const robotSwiftImportInstructionsWithHiddenFieldsSchema = + robotSwiftImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotSwiftImportInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotSwiftImportInstructions = z.infer -export type RobotSwiftImportInstructionsInput = z.input +export type RobotSwiftImportInstructionsWithHiddenFields = z.infer< + typeof robotSwiftImportInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotSwiftImportInstructionsSchema = interpolateRobot( robotSwiftImportInstructionsSchema, @@ -94,3 +103,13 @@ export const interpolatableRobotSwiftImportInstructionsSchema = interpolateRobot export type InterpolatableRobotSwiftImportInstructions = z.input< typeof interpolatableRobotSwiftImportInstructionsSchema > + +export const interpolatableRobotSwiftImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotSwiftImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotSwiftImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotSwiftImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotSwiftImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotSwiftImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/swift-store.ts b/src/alphalib/types/robots/swift-store.ts index b678d7f6..46b11289 100644 --- a/src/alphalib/types/robots/swift-store.ts +++ b/src/alphalib/types/robots/swift-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse, swiftBase } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse, swiftBase } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -64,8 +64,17 @@ This parameter provides signed URLs in the result JSON (in the \`signed_ssl_url\ }) .strict() +export const robotSwiftStoreInstructionsWithHiddenFieldsSchema = + robotSwiftStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotSwiftStoreInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotSwiftStoreInstructions = z.infer -export type RobotSwiftStoreInstructionsInput = z.input +export type RobotSwiftStoreInstructionsWithHiddenFields = z.infer< + typeof robotSwiftStoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotSwiftStoreInstructionsSchema = interpolateRobot( robotSwiftStoreInstructionsSchema, @@ -73,3 +82,13 @@ export const interpolatableRobotSwiftStoreInstructionsSchema = interpolateRobot( export type InterpolatableRobotSwiftStoreInstructions = z.input< typeof interpolatableRobotSwiftStoreInstructionsSchema > + +export const interpolatableRobotSwiftStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotSwiftStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotSwiftStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotSwiftStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotSwiftStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotSwiftStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/text-speak.ts b/src/alphalib/types/robots/text-speak.ts index 384e3037..4524db56 100644 --- a/src/alphalib/types/robots/text-speak.ts +++ b/src/alphalib/types/robots/text-speak.ts @@ -1,12 +1,12 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { aiProviderSchema, interpolateRobot, robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -111,7 +111,15 @@ Please see the supported syntaxes for [AWS](https://docs.aws.amazon.com/polly/la }) .strict() +export const robotTextSpeakInstructionsWithHiddenFieldsSchema = + robotTextSpeakInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotTextSpeakInstructionsSchema.shape.result]).optional(), + }) + export type RobotTextSpeakInstructions = z.infer +export type RobotTextSpeakInstructionsWithHiddenFields = z.infer< + typeof robotTextSpeakInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotTextSpeakInstructionsSchema = interpolateRobot( robotTextSpeakInstructionsSchema, @@ -119,3 +127,13 @@ export const interpolatableRobotTextSpeakInstructionsSchema = interpolateRobot( export type InterpolatableRobotTextSpeakInstructions = z.input< typeof interpolatableRobotTextSpeakInstructionsSchema > + +export const interpolatableRobotTextSpeakInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotTextSpeakInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotTextSpeakInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotTextSpeakInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotTextSpeakInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotTextSpeakInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/text-translate.ts b/src/alphalib/types/robots/text-translate.ts index 2356ddd1..7624188a 100644 --- a/src/alphalib/types/robots/text-translate.ts +++ b/src/alphalib/types/robots/text-translate.ts @@ -1,12 +1,12 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { aiProviderSchema, interpolateRobot, robotBase, robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -81,6 +81,7 @@ const translatableLanguages = z 'de', 'el', 'en', + 'en-US', 'eo', 'es', 'es-MX', @@ -210,7 +211,17 @@ If the exact language can't be found, a generic variant can be fallen back to. F }) .strict() +export const robotTextTranslateInstructionsWithHiddenFieldsSchema = + robotTextTranslateInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotTextTranslateInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotTextTranslateInstructions = z.infer +export type RobotTextTranslateInstructionsWithHiddenFields = z.infer< + typeof robotTextTranslateInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotTextTranslateInstructionsSchema = interpolateRobot( robotTextTranslateInstructionsSchema, @@ -218,3 +229,13 @@ export const interpolatableRobotTextTranslateInstructionsSchema = interpolateRob export type InterpolatableRobotTextTranslateInstructions = z.input< typeof interpolatableRobotTextTranslateInstructionsSchema > + +export const interpolatableRobotTextTranslateInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotTextTranslateInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotTextTranslateInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotTextTranslateInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotTextTranslateInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotTextTranslateInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/tigris-import.ts b/src/alphalib/types/robots/tigris-import.ts index b150aab5..766c3b7b 100644 --- a/src/alphalib/types/robots/tigris-import.ts +++ b/src/alphalib/types/robots/tigris-import.ts @@ -1,17 +1,17 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { files_per_page, interpolateRobot, page_number, path, recursive, - robotBase, return_file_stubs, + robotBase, robotImport, tigrisBase, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -82,11 +82,24 @@ When doing big imports, make sure no files are added or removed from other scrip The pagination page size. This only works when recursive is \`true\` for now, in order to not break backwards compatibility in non-recursive imports. `), return_file_stubs, + bucket_region: z + .string() + .optional() + .describe(`The region of your Tigris bucket. This is optional as it can often be derived.`), }) .strict() +export const robotTigrisImportInstructionsWithHiddenFieldsSchema = + robotTigrisImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotTigrisImportInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotTigrisImportInstructions = z.infer -export type RobotTigrisImportInstructionsInput = z.input +export type RobotTigrisImportInstructionsWithHiddenFields = z.infer< + typeof robotTigrisImportInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotTigrisImportInstructionsSchema = interpolateRobot( robotTigrisImportInstructionsSchema, @@ -94,3 +107,13 @@ export const interpolatableRobotTigrisImportInstructionsSchema = interpolateRobo export type InterpolatableRobotTigrisImportInstructions = z.input< typeof interpolatableRobotTigrisImportInstructionsSchema > + +export const interpolatableRobotTigrisImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotTigrisImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotTigrisImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotTigrisImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotTigrisImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotTigrisImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/tigris-store.ts b/src/alphalib/types/robots/tigris-store.ts index b1809a98..c9824e60 100644 --- a/src/alphalib/types/robots/tigris-store.ts +++ b/src/alphalib/types/robots/tigris-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse, tigrisBase } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse, tigrisBase } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -64,11 +64,24 @@ This parameter provides signed URLs in the result JSON (in the \`signed_ssl_url\ If this parameter is not used, no URL signing is done. `), + bucket_region: z + .string() + .optional() + .describe(`The region of your Tigris bucket. This is optional as it can often be derived.`), }) .strict() +export const robotTigrisStoreInstructionsWithHiddenFieldsSchema = + robotTigrisStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotTigrisStoreInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotTigrisStoreInstructions = z.infer -export type RobotTigrisStoreInstructionsInput = z.input +export type RobotTigrisStoreInstructionsWithHiddenFields = z.infer< + typeof robotTigrisStoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotTigrisStoreInstructionsSchema = interpolateRobot( robotTigrisStoreInstructionsSchema, @@ -76,3 +89,13 @@ export const interpolatableRobotTigrisStoreInstructionsSchema = interpolateRobot export type InterpolatableRobotTigrisStoreInstructions = z.input< typeof interpolatableRobotTigrisStoreInstructionsSchema > + +export const interpolatableRobotTigrisStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotTigrisStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotTigrisStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotTigrisStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotTigrisStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotTigrisStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/tlcdn-deliver.ts b/src/alphalib/types/robots/tlcdn-deliver.ts index 366c0901..6ce09da4 100644 --- a/src/alphalib/types/robots/tlcdn-deliver.ts +++ b/src/alphalib/types/robots/tlcdn-deliver.ts @@ -1,6 +1,6 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, type RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, type RobotMetaInput, robotBase } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -39,7 +39,17 @@ When you want Transloadit to tranform files on the fly, this Robot ca }) .strict() +export const robotTlcdnDeliverInstructionsWithHiddenFieldsSchema = + robotTlcdnDeliverInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotTlcdnDeliverInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotTlcdnDeliverInstructions = z.infer +export type RobotTlcdnDeliverInstructionsWithHiddenFields = z.infer< + typeof robotTlcdnDeliverInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotTlcdnDeliverInstructionsSchema = interpolateRobot( robotTlcdnDeliverInstructionsSchema, @@ -47,3 +57,13 @@ export const interpolatableRobotTlcdnDeliverInstructionsSchema = interpolateRobo export type InterpolatableRobotTlcdnDeliverInstructions = z.input< typeof interpolatableRobotTlcdnDeliverInstructionsSchema > + +export const interpolatableRobotTlcdnDeliverInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotTlcdnDeliverInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotTlcdnDeliverInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotTlcdnDeliverInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotTlcdnDeliverInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotTlcdnDeliverInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/tus-store.ts b/src/alphalib/types/robots/tus-store.ts index aa92a0c2..7085393a 100644 --- a/src/alphalib/types/robots/tus-store.ts +++ b/src/alphalib/types/robots/tus-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -81,8 +81,15 @@ The SSL URL of the file in the Assembly Status JSON. The following [A }) .strict() +export const robotTusStoreInstructionsWithHiddenFieldsSchema = + robotTusStoreInstructionsSchema.extend({ + result: z.union([z.literal('debug'), robotTusStoreInstructionsSchema.shape.result]).optional(), + }) + export type RobotTusStoreInstructions = z.infer -export type RobotTusStoreInstructionsInput = z.input +export type RobotTusStoreInstructionsWithHiddenFields = z.infer< + typeof robotTusStoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotTusStoreInstructionsSchema = interpolateRobot( robotTusStoreInstructionsSchema, @@ -90,3 +97,13 @@ export const interpolatableRobotTusStoreInstructionsSchema = interpolateRobot( export type InterpolatableRobotTusStoreInstructions = z.input< typeof interpolatableRobotTusStoreInstructionsSchema > + +export const interpolatableRobotTusStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotTusStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotTusStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotTusStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotTusStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotTusStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/upload-handle.ts b/src/alphalib/types/robots/upload-handle.ts index 64d56b51..bd982dbc 100644 --- a/src/alphalib/types/robots/upload-handle.ts +++ b/src/alphalib/types/robots/upload-handle.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -46,7 +46,6 @@ export const meta: RobotMetaInput = { } export const robotUploadHandleInstructionsSchema = robotBase - .merge(robotUse) .extend({ robot: z.literal('/upload/handle').describe(` Transloadit handles file uploads by default, so specifying this Robot is optional. @@ -62,8 +61,17 @@ There are **3 important constraints** when using this Robot: }) .strict() +export const robotUploadHandleInstructionsWithHiddenFieldsSchema = + robotUploadHandleInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotUploadHandleInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotUploadHandleInstructions = z.infer -export type RobotUploadHandleInstructionsInput = z.input +export type RobotUploadHandleInstructionsWithHiddenFields = z.infer< + typeof robotUploadHandleInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotUploadHandleInstructionsSchema = interpolateRobot( robotUploadHandleInstructionsSchema, @@ -71,3 +79,13 @@ export const interpolatableRobotUploadHandleInstructionsSchema = interpolateRobo export type InterpolatableRobotUploadHandleInstructions = z.input< typeof interpolatableRobotUploadHandleInstructionsSchema > + +export const interpolatableRobotUploadHandleInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotUploadHandleInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotUploadHandleInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotUploadHandleInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotUploadHandleInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotUploadHandleInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/video-adaptive.ts b/src/alphalib/types/robots/video-adaptive.ts index 925061e8..655e309d 100644 --- a/src/alphalib/types/robots/video-adaptive.ts +++ b/src/alphalib/types/robots/video-adaptive.ts @@ -1,13 +1,13 @@ import { z } from 'zod' +import { stackVersions } from '../stackVersions.ts' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { + interpolateRobot, robotBase, - robotUse, robotFFmpegVideo, - interpolateRobot, + robotUse, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' -import { stackVersions } from '../stackVersions.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -132,7 +132,17 @@ Determines whether you want closed caption support when using the \`"hls"\` tech }) .strict() +export const robotVideoAdaptiveInstructionsWithHiddenFieldsSchema = + robotVideoAdaptiveInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotVideoAdaptiveInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotVideoAdaptiveInstructions = z.infer +export type RobotVideoAdaptiveInstructionsWithHiddenFields = z.infer< + typeof robotVideoAdaptiveInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotVideoAdaptiveInstructionsSchema = interpolateRobot( robotVideoAdaptiveInstructionsSchema, @@ -140,3 +150,13 @@ export const interpolatableRobotVideoAdaptiveInstructionsSchema = interpolateRob export type InterpolatableRobotVideoAdaptiveInstructions = z.input< typeof interpolatableRobotVideoAdaptiveInstructionsSchema > + +export const interpolatableRobotVideoAdaptiveInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotVideoAdaptiveInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotVideoAdaptiveInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotVideoAdaptiveInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotVideoAdaptiveInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotVideoAdaptiveInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/video-concat.ts b/src/alphalib/types/robots/video-concat.ts index a3db6fab..f0c61a68 100644 --- a/src/alphalib/types/robots/video-concat.ts +++ b/src/alphalib/types/robots/video-concat.ts @@ -1,12 +1,12 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { - robotFFmpegVideo, + interpolateRobot, robotBase, + robotFFmpegVideo, robotUse, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -89,7 +89,17 @@ Please note this parameter is independent of adding video fades between sections }) .strict() +export const robotVideoConcatInstructionsWithHiddenFieldsSchema = + robotVideoConcatInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotVideoConcatInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotVideoConcatInstructions = z.infer +export type RobotVideoConcatInstructionsWithHiddenFields = z.infer< + typeof robotVideoConcatInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotVideoConcatInstructionsSchema = interpolateRobot( robotVideoConcatInstructionsSchema, @@ -97,3 +107,13 @@ export const interpolatableRobotVideoConcatInstructionsSchema = interpolateRobot export type InterpolatableRobotVideoConcatInstructions = z.input< typeof interpolatableRobotVideoConcatInstructionsSchema > + +export const interpolatableRobotVideoConcatInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotVideoConcatInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotVideoConcatInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotVideoConcatInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotVideoConcatInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotVideoConcatInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/video-encode.ts b/src/alphalib/types/robots/video-encode.ts index 92d9a210..bf64901f 100644 --- a/src/alphalib/types/robots/video-encode.ts +++ b/src/alphalib/types/robots/video-encode.ts @@ -1,12 +1,12 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { + interpolateRobot, robotBase, robotUse, - interpolateRobot, videoEncodeSpecificInstructionsSchema, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -51,11 +51,25 @@ export const robotVideoEncodeInstructionsSchema = robotBase .merge(videoEncodeSpecificInstructionsSchema) .extend({ robot: z.literal('/video/encode'), + font_size: z.number().optional(), + font_color: z.string().optional(), + text_background_color: z.string().optional(), }) .strict() +export const robotVideoEncodeInstructionsWithHiddenFieldsSchema = + robotVideoEncodeInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotVideoEncodeInstructionsSchema.shape.result]) + .optional(), + chunked_transcoding: z.boolean().optional(), + realtime: z.boolean().optional(), + }) + export type RobotVideoEncodeInstructions = z.infer -export type RobotVideoEncodeInstructionsInput = z.input +export type RobotVideoEncodeInstructionsWithHiddenFields = z.infer< + typeof robotVideoEncodeInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotVideoEncodeInstructionsSchema = interpolateRobot( robotVideoEncodeInstructionsSchema, @@ -63,3 +77,13 @@ export const interpolatableRobotVideoEncodeInstructionsSchema = interpolateRobot export type InterpolatableRobotVideoEncodeInstructions = z.input< typeof interpolatableRobotVideoEncodeInstructionsSchema > + +export const interpolatableRobotVideoEncodeInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotVideoEncodeInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotVideoEncodeInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotVideoEncodeInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotVideoEncodeInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotVideoEncodeInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/video-merge.ts b/src/alphalib/types/robots/video-merge.ts index 2a6b6b61..7d351418 100644 --- a/src/alphalib/types/robots/video-merge.ts +++ b/src/alphalib/types/robots/video-merge.ts @@ -1,14 +1,14 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { color_with_alpha, - robotFFmpegVideo, + interpolateRobot, resize_strategy, robotBase, + robotFFmpegVideo, robotUse, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -74,10 +74,24 @@ Determines whether the audio of the video should be replaced with a provided aud `), vstack: z.boolean().default(false).describe(` Stacks the input media vertically. All streams need to have the same pixel format and width - so consider using a [/video/encode](/docs/robots/video-encode/) Step before using this parameter to enforce this. +`), + image_url: z.string().url().optional().describe(` +The URL of an image to be merged with the audio or video. When this parameter is provided, the robot will download the image from the URL and merge it with the other media. `), }) .strict() + +export const robotVideoMergeInstructionsWithHiddenFieldsSchema = + robotVideoMergeInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotVideoMergeInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotVideoMergeInstructions = z.infer +export type RobotVideoMergeInstructionsWithHiddenFields = z.infer< + typeof robotVideoMergeInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotVideoMergeInstructionsSchema = interpolateRobot( robotVideoMergeInstructionsSchema, @@ -85,3 +99,13 @@ export const interpolatableRobotVideoMergeInstructionsSchema = interpolateRobot( export type InterpolatableRobotVideoMergeInstructions = z.input< typeof interpolatableRobotVideoMergeInstructionsSchema > + +export const interpolatableRobotVideoMergeInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotVideoMergeInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotVideoMergeInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotVideoMergeInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotVideoMergeInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotVideoMergeInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/video-ondemand.ts b/src/alphalib/types/robots/video-ondemand.ts index 76094377..d9167eb5 100644 --- a/src/alphalib/types/robots/video-ondemand.ts +++ b/src/alphalib/types/robots/video-ondemand.ts @@ -115,6 +115,9 @@ export const robotVideoOndemandInstructionsSchema = robotBase export const robotVideoOndemandInstructionsWithHiddenFieldsSchema = robotVideoOndemandInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotVideoOndemandInstructionsSchema.shape.result]) + .optional(), cdn_required_bypass: z .boolean() .optional() @@ -142,3 +145,13 @@ export const interpolatableRobotVideoOndemandInstructionsSchema = interpolateRob export type InterpolatableRobotVideoOndemandInstructions = z.input< typeof interpolatableRobotVideoOndemandInstructionsSchema > + +export const interpolatableRobotVideoOndemandInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotVideoOndemandInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotVideoOndemandInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotVideoOndemandInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotVideoOndemandInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotVideoOndemandInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/video-subtitle.ts b/src/alphalib/types/robots/video-subtitle.ts index 94dc2b0d..8d85a5de 100644 --- a/src/alphalib/types/robots/video-subtitle.ts +++ b/src/alphalib/types/robots/video-subtitle.ts @@ -1,16 +1,16 @@ import { z } from 'zod' +import { stackVersions } from '../stackVersions.ts' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { color_with_alpha, color_without_alpha, - robotFFmpegVideo, + interpolateRobot, positionSchema, robotBase, + robotFFmpegVideo, robotUse, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' -import { stackVersions } from '../stackVersions.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -104,7 +104,18 @@ Specifies if existing subtitles in the input file should be kept or be replaced `), }) .strict() + +export const robotVideoSubtitleInstructionsWithHiddenFieldsSchema = + robotVideoSubtitleInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotVideoSubtitleInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotVideoSubtitleInstructions = z.infer +export type RobotVideoSubtitleInstructionsWithHiddenFields = z.infer< + typeof robotVideoSubtitleInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotVideoSubtitleInstructionsSchema = interpolateRobot( robotVideoSubtitleInstructionsSchema, @@ -112,3 +123,13 @@ export const interpolatableRobotVideoSubtitleInstructionsSchema = interpolateRob export type InterpolatableRobotVideoSubtitleInstructions = z.input< typeof interpolatableRobotVideoSubtitleInstructionsSchema > + +export const interpolatableRobotVideoSubtitleInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotVideoSubtitleInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotVideoSubtitleInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotVideoSubtitleInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotVideoSubtitleInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotVideoSubtitleInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/video-thumbs.ts b/src/alphalib/types/robots/video-thumbs.ts index 362e899b..c28211f6 100644 --- a/src/alphalib/types/robots/video-thumbs.ts +++ b/src/alphalib/types/robots/video-thumbs.ts @@ -1,16 +1,16 @@ import { z } from 'zod' +import { stackVersions } from '../stackVersions.ts' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { color_with_alpha, - robotFFmpeg, + interpolateRobot, percentageSchema, resize_strategy, robotBase, + robotFFmpeg, robotUse, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' -import { stackVersions } from '../stackVersions.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: false, @@ -65,7 +65,7 @@ The thumbnails are taken at regular intervals, determined by dividing the video To extract thumbnails for specific timestamps, use the \`offsets\` parameter. `), - offsets: z.union([z.array(z.number().int()), z.array(percentageSchema)]).default([]).describe(` + offsets: z.union([z.array(z.number()), z.array(percentageSchema)]).default([]).describe(` An array of offsets representing seconds of the file duration, such as \`[ 2, 45, 120 ]\`. Millisecond durations of a file can also be used by using decimal place values. For example, an offset from 1250 milliseconds would be represented with \`1.25\`. Offsets can also be percentage values such as \`[ "2%", "50%", "75%" ]\`. This option cannot be used with the \`count\` parameter, and takes precedence if both are specified. Out-of-range offsets are silently ignored. @@ -89,11 +89,24 @@ The background color of the resulting thumbnails in the \`"rrggbbaa"\` format (r .union([z.literal(0), z.literal(90), z.literal(180), z.literal(270), z.literal(360)]) .default(0).describe(` Forces the video to be rotated by the specified degree integer. Currently, only multiples of 90 are supported. We automatically correct the orientation of many videos when the orientation is provided by the camera. This option is only useful for videos requiring rotation because it was not detected by the camera. +`), + input_codec: z.string().optional().describe(` +Specifies the input codec to use when decoding the video. This is useful for videos with special codecs that require specific decoders. `), }) .strict() +export const robotVideoThumbsInstructionsWithHiddenFieldsSchema = + robotVideoThumbsInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotVideoThumbsInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotVideoThumbsInstructions = z.infer +export type RobotVideoThumbsInstructionsWithHiddenFields = z.infer< + typeof robotVideoThumbsInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotVideoThumbsInstructionsSchema = interpolateRobot( robotVideoThumbsInstructionsSchema, @@ -101,3 +114,13 @@ export const interpolatableRobotVideoThumbsInstructionsSchema = interpolateRobot export type InterpolatableRobotVideoThumbsInstructions = z.input< typeof interpolatableRobotVideoThumbsInstructionsSchema > + +export const interpolatableRobotVideoThumbsInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotVideoThumbsInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotVideoThumbsInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotVideoThumbsInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotVideoThumbsInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotVideoThumbsInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/vimeo-import.ts b/src/alphalib/types/robots/vimeo-import.ts index bbc61462..795b6f33 100644 --- a/src/alphalib/types/robots/vimeo-import.ts +++ b/src/alphalib/types/robots/vimeo-import.ts @@ -1,13 +1,13 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { - vimeoBase, - robotImport, + interpolateRobot, path, robotBase, - interpolateRobot, + robotImport, + vimeoBase, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -96,3 +96,27 @@ export const interpolatableRobotVimeoImportInstructionsSchema = interpolateRobot export type InterpolatableRobotVimeoImportInstructions = z.input< typeof interpolatableRobotVimeoImportInstructionsSchema > + +export const robotVimeoImportInstructionsWithHiddenFieldsSchema = + robotVimeoImportInstructionsSchema.extend({ + access_token: z + .string() + .optional() + .describe('Legacy authentication field. Use credentials instead.'), + return_file_stubs: z + .boolean() + .optional() + .describe( + 'When true, returns file stubs instead of downloading the actual files. Used for testing.', + ), + }) + +export const interpolatableRobotVimeoImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotVimeoImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotVimeoImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotVimeoImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotVimeoImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotVimeoImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/vimeo-store.ts b/src/alphalib/types/robots/vimeo-store.ts index 82336f72..15d8dfd8 100644 --- a/src/alphalib/types/robots/vimeo-store.ts +++ b/src/alphalib/types/robots/vimeo-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { vimeoBase, interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse, vimeoBase } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -81,12 +81,28 @@ Only set this to \`true\` if you have unlocked this feature in your Vimeo accoun The ID of the folder to which the video is uploaded. When visiting one of your folders, the URL is similar to \`https://vimeo.com/manage/folders/xxxxxxxx\`. The folder_id would be \`"xxxxxxxx"\`. +`), + folder_uri: z.string().optional().describe(` +Deprecated. Please use \`folder_id\` instead. The URI of the folder to which the video is uploaded. `), }) .strict() +export const robotVimeoStoreInstructionsWithHiddenFieldsSchema = + robotVimeoStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotVimeoStoreInstructionsSchema.shape.result]) + .optional(), + access_token: z + .string() + .optional() + .describe('Legacy authentication field. Use credentials instead.'), + }) + export type RobotVimeoStoreInstructions = z.infer -export type RobotVimeoStoreInstructionsInput = z.input +export type RobotVimeoStoreInstructionsWithHiddenFields = z.infer< + typeof robotVimeoStoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotVimeoStoreInstructionsSchema = interpolateRobot( robotVimeoStoreInstructionsSchema, @@ -94,3 +110,13 @@ export const interpolatableRobotVimeoStoreInstructionsSchema = interpolateRobot( export type InterpolatableRobotVimeoStoreInstructions = z.input< typeof interpolatableRobotVimeoStoreInstructionsSchema > + +export const interpolatableRobotVimeoStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotVimeoStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotVimeoStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotVimeoStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotVimeoStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotVimeoStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/wasabi-import.ts b/src/alphalib/types/robots/wasabi-import.ts index 9c8c9d08..39c74a70 100644 --- a/src/alphalib/types/robots/wasabi-import.ts +++ b/src/alphalib/types/robots/wasabi-import.ts @@ -1,17 +1,17 @@ import { z } from 'zod' +import type { RobotMetaInput } from './_instructions-primitives.ts' import { files_per_page, - robotImport, + interpolateRobot, page_number, path, recursive, - robotBase, return_file_stubs, + robotBase, + robotImport, wasabiBase, - interpolateRobot, } from './_instructions-primitives.ts' -import type { RobotMetaInput } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -89,8 +89,17 @@ The pagination page size. This only works when recursive is \`true\` for now, in }) .strict() +export const robotWasabiImportInstructionsWithHiddenFieldsSchema = + robotWasabiImportInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotWasabiImportInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotWasabiImportInstructions = z.infer -export type RobotWasabiImportInstructionsInput = z.input +export type RobotWasabiImportInstructionsWithHiddenFields = z.infer< + typeof robotWasabiImportInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotWasabiImportInstructionsSchema = interpolateRobot( robotWasabiImportInstructionsSchema, @@ -98,3 +107,13 @@ export const interpolatableRobotWasabiImportInstructionsSchema = interpolateRobo export type InterpolatableRobotWasabiImportInstructions = z.input< typeof interpolatableRobotWasabiImportInstructionsSchema > + +export const interpolatableRobotWasabiImportInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotWasabiImportInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotWasabiImportInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotWasabiImportInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotWasabiImportInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotWasabiImportInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/wasabi-store.ts b/src/alphalib/types/robots/wasabi-store.ts index ab3fc4dc..66dcf239 100644 --- a/src/alphalib/types/robots/wasabi-store.ts +++ b/src/alphalib/types/robots/wasabi-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse, wasabiBase } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse, wasabiBase } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -65,8 +65,17 @@ This parameter provides signed URLs in the result JSON (in the \`signed_ssl_url\ }) .strict() +export const robotWasabiStoreInstructionsWithHiddenFieldsSchema = + robotWasabiStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotWasabiStoreInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotWasabiStoreInstructions = z.infer -export type RobotWasabiStoreInstructionsInput = z.input +export type RobotWasabiStoreInstructionsWithHiddenFields = z.infer< + typeof robotWasabiStoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotWasabiStoreInstructionsSchema = interpolateRobot( robotWasabiStoreInstructionsSchema, @@ -74,3 +83,13 @@ export const interpolatableRobotWasabiStoreInstructionsSchema = interpolateRobot export type InterpolatableRobotWasabiStoreInstructions = z.input< typeof interpolatableRobotWasabiStoreInstructionsSchema > + +export const interpolatableRobotWasabiStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotWasabiStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotWasabiStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotWasabiStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotWasabiStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotWasabiStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/robots/youtube-store.ts b/src/alphalib/types/robots/youtube-store.ts index 2f137eef..a89a66e4 100644 --- a/src/alphalib/types/robots/youtube-store.ts +++ b/src/alphalib/types/robots/youtube-store.ts @@ -1,7 +1,7 @@ import { z } from 'zod' -import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' import type { RobotMetaInput } from './_instructions-primitives.ts' +import { interpolateRobot, robotBase, robotUse } from './_instructions-primitives.ts' export const meta: RobotMetaInput = { allowed_for_url_transform: true, @@ -84,22 +84,25 @@ Note that since the YouTube API requires titles to be within 80 characters, long description: z.string().describe(` The description of the video to be displayed on YouTube. This can be up to 5000 characters, including \`\\n\` for new-lines. `), - category: z.enum([ - 'autos & vehicles', - 'comedy', - 'education', - 'entertainment', - 'film & animation', - 'gaming', - 'howto & style', - 'music', - 'news & politics', - 'people & blogs', - 'pets & animals', - 'science & technology', - 'sports', - 'travel & events', - ]).describe(` + category: z.preprocess( + (val) => (typeof val === 'string' ? val.toLowerCase() : val), + z.enum([ + 'autos & vehicles', + 'comedy', + 'education', + 'entertainment', + 'film & animation', + 'gaming', + 'howto & style', + 'music', + 'news & politics', + 'people & blogs', + 'pets & animals', + 'science & technology', + 'sports', + 'travel & events', + ]), + ).describe(` The category to which this video will be assigned. `), keywords: z.string().describe(` @@ -111,8 +114,17 @@ Defines the visibility of the uploaded video. }) .strict() +export const robotYoutubeStoreInstructionsWithHiddenFieldsSchema = + robotYoutubeStoreInstructionsSchema.extend({ + result: z + .union([z.literal('debug'), robotYoutubeStoreInstructionsSchema.shape.result]) + .optional(), + }) + export type RobotYoutubeStoreInstructions = z.infer -export type RobotYoutubeStoreInstructionsInput = z.input +export type RobotYoutubeStoreInstructionsWithHiddenFields = z.infer< + typeof robotYoutubeStoreInstructionsWithHiddenFieldsSchema +> export const interpolatableRobotYoutubeStoreInstructionsSchema = interpolateRobot( robotYoutubeStoreInstructionsSchema, @@ -120,3 +132,13 @@ export const interpolatableRobotYoutubeStoreInstructionsSchema = interpolateRobo export type InterpolatableRobotYoutubeStoreInstructions = z.input< typeof interpolatableRobotYoutubeStoreInstructionsSchema > + +export const interpolatableRobotYoutubeStoreInstructionsWithHiddenFieldsSchema = interpolateRobot( + robotYoutubeStoreInstructionsWithHiddenFieldsSchema, +) +export type InterpolatableRobotYoutubeStoreInstructionsWithHiddenFields = z.infer< + typeof interpolatableRobotYoutubeStoreInstructionsWithHiddenFieldsSchema +> +export type InterpolatableRobotYoutubeStoreInstructionsWithHiddenFieldsInput = z.input< + typeof interpolatableRobotYoutubeStoreInstructionsWithHiddenFieldsSchema +> diff --git a/src/alphalib/types/template.ts b/src/alphalib/types/template.ts index d60b5e51..cfa3b43c 100644 --- a/src/alphalib/types/template.ts +++ b/src/alphalib/types/template.ts @@ -1,6 +1,6 @@ import { z } from 'zod' -import { robotsWithHiddenBotsAndFieldsSchema, robotsSchema } from './robots/_index.ts' +import { robotsSchema, robotsWithHiddenBotsAndFieldsSchema } from './robots/_index.ts' import type { RobotUse } from './robots/_instructions-primitives.ts' export const stepSchema = z @@ -30,6 +30,7 @@ export type StepWithHiddenFields = z.infer export type StepWithHiddenFieldsInput = z.input export type StepsWithHiddenFields = z.infer export type StepsWithHiddenFieldsInput = z.input +const optionalStepsWithHiddenFieldsSchema = stepsSchemaWithHiddenFields.optional() export const assemblyAuthInstructionsSchema = z.object({ key: z.string().describe('The Transloadit API key to use'), @@ -48,6 +49,7 @@ export const assemblyInstructionsSchema = z.object({ ), notify_url: z .string() + .nullable() .optional() .describe( 'Transloadit can send a Pingback to your server when the Assembly is completed. We’ll send the Assembly status in a form url-encoded JSON string inside of a transloadit field in a multipart POST request to the URL supplied here.', @@ -71,3 +73,37 @@ export const assemblyInstructionsSchema = z.object({ export type AssemblyInstructions = z.infer export type AssemblyInstructionsInput = z.input + +// These are used in system tests, but not exposed to the public right now +// Meaning we do not want to document them, do not want to offer auto complete on them +// if customers use them, they will have to surpress a typescript error +// however when they do, our runtime schema validation will not blow up on it +// because we are using this version of the schema in our actual API +// so that tests can also use them: +export const assemblyInstructionsWithHiddenSchema = assemblyInstructionsSchema.extend({ + steps: optionalStepsWithHiddenFieldsSchema as typeof optionalStepsWithHiddenFieldsSchema, + imagemagick_stack: z.string().optional(), + exiftool_stack: z.string().optional(), + mplayer_stack: z.string().optional(), + mediainfo_stack: z.string().optional(), + ffmpeg_stack: z.string().optional(), + usage_tags: z.string().optional(), + randomize_watermarks: z.boolean().optional(), + await: z + .union([ + z.boolean(), + z.literal('notification'), + z.literal('persisting'), + z.literal('transcoding'), + ]) + .optional(), + blocking: z.boolean().optional(), + reparse_template: z.union([z.literal(1), z.boolean()]).optional(), + ignore_upload_meta_data_errors: z.boolean().optional(), + emit_execution_progress: z.boolean().optional(), +}) + +export type AssemblyInstructionsWithHidden = z.infer +export type AssemblyInstructionsWithHiddenInput = z.input< + typeof assemblyInstructionsWithHiddenSchema +> diff --git a/src/alphalib/zodParseWithContext.ts b/src/alphalib/zodParseWithContext.ts index 923a5e1b..ec4f6e6b 100644 --- a/src/alphalib/zodParseWithContext.ts +++ b/src/alphalib/zodParseWithContext.ts @@ -43,7 +43,6 @@ export function zodParseWithContext( Object.keys(obj).length === 0 && zodRes.error.errors.length > 0 ) { - // eslint-disable-next-line no-console // console.log('[zodParseWithContext] Empty object detected, Zod errors:', JSON.stringify(zodRes.error.errors, null, 2)); const firstError = zodRes.error.errors[0] @@ -232,7 +231,6 @@ export function zodParseWithContext( switch (zodIssue.code) { case 'invalid_type': { received = zodIssue.received === 'undefined' ? 'missing' : zodIssue.received - // eslint-disable-next-line @typescript-eslint/no-explicit-any const actualValue = getByPath(obj, path) as any const actualValueStr = typeof actualValue === 'object' && actualValue !== null diff --git a/src/apiTypes.ts b/src/apiTypes.ts index d68b8609..62f36bb4 100644 --- a/src/apiTypes.ts +++ b/src/apiTypes.ts @@ -1,11 +1,11 @@ -import { AssemblyInstructions, AssemblyInstructionsInput } from './alphalib/types/template.js' +import type { AssemblyInstructions, AssemblyInstructionsInput } from './alphalib/types/template.js' -export { assemblyInstructionsSchema } from './alphalib/types/template.js' export { - assemblyStatusSchema, - assemblyIndexItemSchema, type AssemblyIndexItem, + assemblyIndexItemSchema, + assemblyStatusSchema, } from './alphalib/types/assemblyStatus.js' +export { assemblyInstructionsSchema } from './alphalib/types/template.js' export interface OptionalAuthParams { auth?: { key?: string; expires?: string } @@ -150,4 +150,4 @@ export interface TemplateCredentialsResponse extends BaseResponse { credentials: TemplateCredential[] } -export type BillResponse = any // todo +export type BillResponse = unknown // todo diff --git a/src/tus.ts b/src/tus.ts index a1981517..90bdb322 100644 --- a/src/tus.ts +++ b/src/tus.ts @@ -1,11 +1,11 @@ +import { stat } from 'node:fs/promises' +import { basename } from 'node:path' +import type { Readable } from 'node:stream' import debug from 'debug' -import { basename } from 'path' -import { OnSuccessPayload, Upload, UploadOptions } from 'tus-js-client' -import { stat } from 'fs/promises' import pMap from 'p-map' -import type { Readable } from 'stream' +import { type OnSuccessPayload, Upload, type UploadOptions } from 'tus-js-client' +import type { AssemblyStatus } from './alphalib/types/assemblyStatus.js' import type { UploadProgress } from './Transloadit.js' -import { AssemblyStatus } from './alphalib/types/assemblyStatus.js' const log = debug('transloadit') @@ -36,13 +36,17 @@ export async function sendTusRequest({ const sizes: Record = {} - const haveUnknownLengthStreams = streamLabels.some((label) => !streamsMap[label]!.path) + const haveUnknownLengthStreams = streamLabels.some((label) => !streamsMap[label]?.path) // Initialize size data await pMap( streamLabels, async (label) => { - const { path } = streamsMap[label]! + const streamInfo = streamsMap[label] + if (!streamInfo) { + throw new Error(`Stream info not found for label: ${label}`) + } + const { path } = streamInfo if (path) { const { size } = await stat(path) @@ -50,7 +54,7 @@ export async function sendTusRequest({ totalBytes += size } }, - { concurrency: 5 } + { concurrency: 5 }, ) const uploadProgresses: Record = {} @@ -58,7 +62,11 @@ export async function sendTusRequest({ async function uploadSingleStream(label: string) { uploadProgresses[label] = 0 - const { stream, path } = streamsMap[label]! + const streamInfo = streamsMap[label] + if (!streamInfo) { + throw new Error(`Stream info not found for label: ${label}`) + } + const { stream, path } = streamInfo const size = sizes[label] let chunkSize = requestedChunkSize @@ -68,7 +76,7 @@ export async function sendTusRequest({ // tus-js-client requires these options to be set for unknown size streams // https://github.com/tus/tus-js-client/blob/master/docs/api.md#uploadlengthdeferred uploadLengthDeferred = true - if (chunkSize === Infinity) chunkSize = 50e6 + if (chunkSize === Number.POSITIVE_INFINITY) chunkSize = 50e6 } const onTusProgress = (bytesUploaded: number): void => { diff --git a/test/generate-coverage-badge.ts b/test/generate-coverage-badge.ts index ba856eb8..a2f3b5e1 100644 --- a/test/generate-coverage-badge.ts +++ b/test/generate-coverage-badge.ts @@ -1,6 +1,6 @@ #!/usr/bin/env node -import fs from 'fs/promises' +import fs from 'node:fs/promises' import { makeBadge } from 'badge-maker' const json = JSON.parse(await fs.readFile(process.argv[2], 'utf-8')) diff --git a/test/integration/live-api.test.ts b/test/integration/live-api.test.ts index bdf5fcae..5694c848 100644 --- a/test/integration/live-api.test.ts +++ b/test/integration/live-api.test.ts @@ -1,32 +1,36 @@ -import { randomUUID } from 'crypto' -import { parse } from 'querystring' -import * as temp from 'temp' -import { createWriteStream } from 'fs' -import { IncomingMessage, RequestListener } from 'http' -import { join } from 'path' -import { pipeline } from 'stream/promises' -import { setTimeout } from 'timers/promises' -import got, { RetryOptions } from 'got' -import intoStream from 'into-stream' +import { randomUUID } from 'node:crypto' +import { createWriteStream } from 'node:fs' +import type { IncomingMessage, RequestListener } from 'node:http' +import { join } from 'node:path' +import { parse } from 'node:querystring' +import { pipeline } from 'node:stream/promises' +import { setTimeout } from 'node:timers/promises' import debug from 'debug' import { config } from 'dotenv' - +import got, { type RetryOptions } from 'got' +import intoStream from 'into-stream' +import * as temp from 'temp' +import type { InterpolatableRobotFileFilterInstructions } from '../../src/alphalib/types/robots/file-filter.js' +import type { InterpolatableRobotImageResizeInstructions } from '../../src/alphalib/types/robots/image-resize.js' import { - CreateAssemblyOptions, - CreateAssemblyParams, + type CreateAssemblyOptions, + type CreateAssemblyParams, Transloadit, - UploadProgress, + type UploadProgress, } from '../../src/Transloadit.js' -import { createTestServer, TestServer } from '../testserver.js' +import { createTestServer, type TestServer } from '../testserver.js' import { createProxy } from '../util.js' -import { RobotImageResizeInstructionsInput } from '../../src/alphalib/types/robots/image-resize.js' -import { RobotFileFilterInstructionsInput } from '../../src/alphalib/types/robots/file-filter.js' // Load environment variables from .env file config() const log = debug('transloadit:live-api') +function nn(value: T | null | undefined, name = 'value'): T { + if (value == null) throw new Error(`${name} was undefined`) + return value +} + async function downloadTmpFile(url: string) { const { path } = await temp.open('transloadit') await pipeline(got.stream(url), createWriteStream(path)) @@ -83,14 +87,14 @@ function createAssembly(client: Transloadit, params: CreateAssemblyOptions) { const genericImg = 'https://demos.transloadit.com/66/01604e7d0248109df8c7cc0f8daef8/snowflake.jpg' const sampleSvg = '' -const resizeOriginalStep: RobotImageResizeInstructionsInput = { +const resizeOriginalStep: InterpolatableRobotImageResizeInstructions = { robot: '/image/resize', use: ':original', result: true, width: 130, height: 130, } -const dummyStep: RobotFileFilterInstructionsInput = { +const dummyStep: InterpolatableRobotFileFilterInstructions = { use: ':original', robot: '/file/filter', accepts: [], @@ -171,7 +175,7 @@ describe('API integration', { timeout: 60000 }, () => { it('should create a retrievable assembly on the server', async () => { const client = createClient() - let uploadProgressCalled + let uploadProgressCalled: UploadProgress | undefined const options: CreateAssemblyOptions = { ...genericOptions, onUploadProgress: (uploadProgress) => { @@ -191,7 +195,7 @@ describe('API integration', { timeout: 60000 }, () => { const id = result.assembly_id expect(id).toBeDefined() - result = await client.getAssembly(id!) + result = await client.getAssembly(nn(id, 'assembly_id')) expect(result).not.toHaveProperty('error') expect(result).toEqual( expect.objectContaining({ @@ -199,7 +203,7 @@ describe('API integration', { timeout: 60000 }, () => { assembly_url: expect.any(String), ok: expect.any(String), assembly_id: id, - }) + }), ) }) @@ -293,7 +297,7 @@ describe('API integration', { timeout: 60000 }, () => { }) // Because order is not same as input const uploadsMap = Object.fromEntries( - result.uploads?.map((upload) => [upload.name, upload]) ?? [] + result.uploads?.map((upload) => [upload.name, upload]) ?? [], ) expect(uploadsMap).toEqual({ file1: expect.objectContaining(getMatchObject({ name: 'file1' })), @@ -430,7 +434,7 @@ describe('API integration', { timeout: 60000 }, () => { // request // Async book-keeping for delaying the response - let sendServerResponse: () => void + let sendServerResponse!: () => void const promise = new Promise((resolve) => { sendServerResponse = resolve @@ -474,10 +478,9 @@ describe('API integration', { timeout: 60000 }, () => { const awaitCompletionPromise = (async () => { try { expect(id).toBeDefined() - const ret = await client.awaitAssemblyCompletion(id!) + const ret = await client.awaitAssemblyCompletion(nn(id, 'assembly_id')) return ret } catch (err) { - // eslint-disable-next-line no-console console.error(err) return null } @@ -486,20 +489,20 @@ describe('API integration', { timeout: 60000 }, () => { // Now delete it before uploading is done // console.log('canceling', id) expect(id).toBeDefined() - const resp = await client.cancelAssembly(id!) - expect((resp as Extract).ok).toBe('ASSEMBLY_CANCELED') + const resp = await client.cancelAssembly(nn(id, 'assembly_id')) + expect((resp as Extract).ok).toBe('ASSEMBLY_CANCELED') // console.log('canceled', id) // Allow the upload to finish - sendServerResponse!() + sendServerResponse?.() // Successful cancel requests get ASSEMBLY_CANCELED even when it // completed, so we now request the assembly status to check the // *actual* status. expect(id).toBeDefined() - const resp2 = await client.getAssembly(id!) + const resp2 = await client.getAssembly(nn(id, 'assembly_id')) console.log(`Expect Assembly ${id} to return 'ASSEMBLY_CANCELED'`) - expect((resp2 as Extract).ok).toBe('ASSEMBLY_CANCELED') + expect((resp2 as Extract).ok).toBe('ASSEMBLY_CANCELED') // Check that awaitAssemblyCompletion gave the correct response too const awaitCompletionResponse = await awaitCompletionPromise @@ -507,7 +510,8 @@ describe('API integration', { timeout: 60000 }, () => { if (awaitCompletionResponse) { // Type guard expect( - (awaitCompletionResponse as Extract).ok + (awaitCompletionResponse as Extract) + .ok, ).toBe('ASSEMBLY_CANCELED') } else { throw new Error('awaitCompletionResponse was null or undefined') @@ -524,17 +528,21 @@ describe('API integration', { timeout: 60000 }, () => { const createdAssembly = await createAssembly(client, genericOptions) expect(createdAssembly.assembly_id).toBeDefined() - const replayedAssembly = await client.replayAssembly(createdAssembly.assembly_id!) - expect((replayedAssembly as Extract).ok).toBe( - 'ASSEMBLY_REPLAYING' + const replayedAssembly = await client.replayAssembly( + nn(createdAssembly.assembly_id, 'assembly_id'), + ) + expect((replayedAssembly as Extract).ok).toBe( + 'ASSEMBLY_REPLAYING', ) expect(replayedAssembly.assembly_id).not.toEqual(createdAssembly.assembly_id) expect(replayedAssembly.assembly_url).toBeDefined() expect(replayedAssembly.assembly_ssl_url).toBeDefined() expect(replayedAssembly.assembly_id).toBeDefined() - const result2 = await client.awaitAssemblyCompletion(replayedAssembly.assembly_id!) - expect((result2 as Extract).ok).toBe('ASSEMBLY_COMPLETED') + const result2 = await client.awaitAssemblyCompletion( + nn(replayedAssembly.assembly_id, 'assembly_id'), + ) + expect((result2 as Extract).ok).toBe('ASSEMBLY_COMPLETED') }) }) @@ -544,7 +552,7 @@ describe('API integration', { timeout: 60000 }, () => { const result = await client.listAssemblies() expect(result).toEqual( - expect.objectContaining({ count: expect.any(Number), items: expect.any(Array) }) + expect.objectContaining({ count: expect.any(Number), items: expect.any(Array) }), ) }) @@ -603,7 +611,7 @@ describe('API integration', { timeout: 60000 }, () => { const runNotificationTest = async ( onNotification: OnNotification, - onError: (error: unknown) => void + onError: (error: unknown) => void, ) => { const client = createClient() @@ -700,7 +708,7 @@ describe('API integration', { timeout: 60000 }, () => { }) }) }, - { retry: 2 } + { retry: 2 }, ) describe('template methods', () => { @@ -725,7 +733,7 @@ describe('API integration', { timeout: 60000 }, () => { it("should be able to fetch a template's definition", async () => { expect(templId).toBeDefined() - const template = await client.getTemplate(templId!) + const template = await client.getTemplate(nn(templId, 'templId')) const { name, content } = template expect(name).toBe(templName) expect(content).toEqual(genericParams) @@ -739,7 +747,7 @@ describe('API integration', { timeout: 60000 }, () => { } const editedName = `${templName}-edited` - const editResult = await client.editTemplate(templId!, { + const editResult = await client.editTemplate(nn(templId, 'templId'), { name: editedName, template: editedTemplate, }) @@ -752,13 +760,13 @@ describe('API integration', { timeout: 60000 }, () => { it('should delete the template successfully', async () => { expect(templId).toBeDefined() - const template = await client.deleteTemplate(templId!) + const template = await client.deleteTemplate(nn(templId, 'templId')) const { ok } = template expect(ok).toBe('TEMPLATE_DELETED') - await expect(client.getTemplate(templId!)).rejects.toThrow( + await expect(client.getTemplate(nn(templId, 'templId'))).rejects.toThrow( expect.objectContaining({ code: 'TEMPLATE_NOT_FOUND', - }) + }), ) }) }) @@ -795,7 +803,7 @@ describe('API integration', { timeout: 60000 }, () => { it("should be able to fetch a credential's definition", async () => { expect(credId).toBeDefined() - const readResult = await client.getTemplateCredential(credId!) + const readResult = await client.getTemplateCredential(nn(credId, 'credId')) const { name, content } = readResult.credential expect(name).toBe(credName) expect(content.bucket).toEqual('mybucket.example.com') @@ -804,7 +812,7 @@ describe('API integration', { timeout: 60000 }, () => { it('should allow editing a credential', async () => { expect(credId).toBeDefined() const editedName = `${credName}-edited` - const editResult = await client.editTemplateCredential(credId!, { + const editResult = await client.editTemplateCredential(nn(credId, 'credId'), { name: editedName, type: 's3', content: { @@ -823,13 +831,13 @@ describe('API integration', { timeout: 60000 }, () => { it('should delete the credential successfully', async () => { expect(credId).toBeDefined() - const credential = await client.deleteTemplateCredential(credId!) + const credential = await client.deleteTemplateCredential(nn(credId, 'credId')) const { ok } = credential expect(ok).toBe('TEMPLATE_CREDENTIALS_DELETED') - await expect(client.getTemplateCredential(credId!)).rejects.toThrow( + await expect(client.getTemplateCredential(nn(credId, 'credId'))).rejects.toThrow( expect.objectContaining({ code: 'TEMPLATE_CREDENTIALS_NOT_READ', - }) + }), ) }) }) diff --git a/test/testserver.ts b/test/testserver.ts index 19f108a8..85b22797 100644 --- a/test/testserver.ts +++ b/test/testserver.ts @@ -1,9 +1,9 @@ -import { createServer, RequestListener, Server } from 'http' -import { setTimeout } from 'timers/promises' -import got from 'got' +import { createServer, type RequestListener, type Server } from 'node:http' +import { setTimeout } from 'node:timers/promises' import debug from 'debug' +import got from 'got' -import { createTunnel, CreateTunnelResult } from './tunnel.js' +import { type CreateTunnelResult, createTunnel } from './tunnel.js' const log = debug('transloadit:testserver') @@ -82,7 +82,6 @@ export async function createTestServer(onRequest: RequestListener) { log('Waiting for tunnel to allow requests to pass through') - // eslint-disable-next-line no-inner-declarations async function sendTunnelRequest() { // try connecting to the tunnel and resolve when connection successfully passed through for (let i = 0; i < 10; i += 1) { diff --git a/test/tunnel.ts b/test/tunnel.ts index 6d71b6c3..b24849b9 100644 --- a/test/tunnel.ts +++ b/test/tunnel.ts @@ -1,9 +1,9 @@ -import { execa, ExecaError, ResultPromise } from 'execa' -import { createInterface } from 'readline' -import { Resolver } from 'dns/promises' +import { Resolver } from 'node:dns/promises' +import { createInterface } from 'node:readline' +import * as timers from 'node:timers/promises' import debug from 'debug' +import { ExecaError, execa, type ResultPromise } from 'execa' import pRetry from 'p-retry' -import * as timers from 'timers/promises' const log = debug('transloadit:cloudflared-tunnel') @@ -21,7 +21,7 @@ async function startTunnel({ cloudFlaredPath, port }: CreateTunnelParams) { const process = execa( cloudFlaredPath, ['tunnel', '--url', `http://localhost:${port}`, '--no-autoupdate'], - { buffer: false, stdout: 'ignore' } + { buffer: false, stdout: 'ignore' }, ) process?.catch((err) => { @@ -46,7 +46,7 @@ async function startTunnel({ cloudFlaredPath, port }: CreateTunnelParams) { rl.on('error', (err) => { reject( - new Error(`Failed to create tunnel. Errored out on: ${err}. Full stderr: ${fullStderr}`) + new Error(`Failed to create tunnel. Errored out on: ${err}. Full stderr: ${fullStderr}`), ) }) @@ -65,7 +65,7 @@ async function startTunnel({ cloudFlaredPath, port }: CreateTunnelParams) { !expectedFailures.some((expectedFailure) => line.includes(expectedFailure)) ) { reject( - new Error(`Failed to create tunnel. There was an error string in the stderr: ${line}`) + new Error(`Failed to create tunnel. There was an error string in the stderr: ${line}`), ) } @@ -75,7 +75,7 @@ async function startTunnel({ cloudFlaredPath, port }: CreateTunnelParams) { ;[, foundUrl] = match } else { const match = line.match( - /Connection [^\s+] registered connIndex=[^\s+] ip=[^\s+] location=[^\s+]/ + /Connection [^\s+] registered connIndex=[^\s+] ip=[^\s+] location=[^\s+]/, ) if (!match) { clearTimeout(timeout) @@ -128,7 +128,7 @@ export async function createTunnel({ cloudFlaredPath = 'cloudflared', port }: Cr async function close() { if (!process) return - const promise = new Promise((resolve) => process!.on('close', resolve)) + const promise = new Promise((resolve) => process?.on('close', resolve)) process.kill() await promise } diff --git a/test/unit/mock-http.test.ts b/test/unit/mock-http.test.ts index 0711127b..bd36e0d5 100644 --- a/test/unit/mock-http.test.ts +++ b/test/unit/mock-http.test.ts @@ -1,20 +1,20 @@ -import nock from 'nock' import { inspect } from 'node:util' +import nock from 'nock' import { ApiError, - AssemblyStatus, + type AssemblyStatus, + assemblyInstructionsSchema, InconsistentResponseError, - Options, + type Options, TimeoutError, Transloadit, - assemblyInstructionsSchema, } from '../../src/Transloadit.js' import { createProxy } from '../util.js' const getLocalClient = (opts?: Omit) => createProxy( - new Transloadit({ authKey: '', authSecret: '', endpoint: 'http://localhost', ...opts }) + new Transloadit({ authKey: '', authSecret: '', endpoint: 'http://localhost', ...opts }), ) const createAssemblyRegex = /\/assemblies\/[0-9a-f]{32}/ @@ -51,7 +51,7 @@ describe('Mocked API tests', () => { .reply(200, { ok: 'ASSEMBLY_EXECUTING', assembly_url: '', assembly_ssl_url: '' }) await expect(client.awaitAssemblyCompletion('1', { timeout: 1, interval: 1 })).rejects.toThrow( - expect.objectContaining({ code: 'POLLING_TIMED_OUT', message: 'Polling timed out' }) + expect.objectContaining({ code: 'POLLING_TIMED_OUT', message: 'Polling timed out' }), ) scope.done() }) @@ -69,7 +69,7 @@ describe('Mocked API tests', () => { await client.createAssembly() const result = await client.awaitAssemblyCompletion('1') - expect((result as Extract).ok).toBe('REQUEST_ABORTED') + expect((result as Extract).ok).toBe('REQUEST_ABORTED') scope.done() }) @@ -85,7 +85,7 @@ describe('Mocked API tests', () => { .reply(200, { ok: 'ASSEMBLY_COMPLETED', assembly_url: '', assembly_ssl_url: '' }) await expect( - client.awaitAssemblyCompletion('1', { timeout: 100, interval: 1 }) + client.awaitAssemblyCompletion('1', { timeout: 100, interval: 1 }), ).resolves.toMatchObject({ ok: 'ASSEMBLY_COMPLETED' }) scope.done() }) @@ -128,7 +128,7 @@ describe('Mocked API tests', () => { rawMessage: 'Invalid file metadata', reason: 'Some reason', message: 'API error (HTTP 400) INVALID_FILE_META_DATA: Invalid file metadata', - }) + }), ) }) @@ -149,7 +149,7 @@ describe('Mocked API tests', () => { message: 'API error (HTTP 400) INVALID_FILE_META_DATA: Invalid file metadata https://api2-oltu.transloadit.com/assemblies/foo', assemblyId: '123', - }) + }), ) const errorString = await promise.catch(inspect) @@ -157,12 +157,12 @@ describe('Mocked API tests', () => { // console.log(inspect(errorString)) expect(inspect(errorString).split('\n')).toEqual([ expect.stringMatching( - `API error \\(HTTP 400\\) INVALID_FILE_META_DATA: Invalid file metadata https://api2-oltu.transloadit.com/assemblies/foo` + `API error \\(HTTP 400\\) INVALID_FILE_META_DATA: Invalid file metadata https://api2-oltu.transloadit.com/assemblies/foo`, ), expect.stringMatching(` at .+`), expect.stringMatching(` at .+`), expect.stringMatching( - ` at createAssemblyAndUpload \\(.+\\/src\\/Transloadit\\.ts:\\d+:\\d+\\)` + ` at createAssemblyAndUpload \\(.+\\/src\\/Transloadit\\.ts:\\d+:\\d+\\)`, ), expect.stringMatching(` at .+\\/test\\/unit\\/mock-http\\.test\\.ts:\\d+:\\d+`), expect.stringMatching(` at .+`), @@ -170,7 +170,7 @@ describe('Mocked API tests', () => { expect.stringMatching(` rawMessage: 'Invalid file metadata',`), expect.stringMatching(` reason: undefined,`), expect.stringMatching( - ` assemblySslUrl: 'https:\\/\\/api2-oltu\\.transloadit\\.com\\/assemblies\\/foo'` + ` assemblySslUrl: 'https:\\/\\/api2-oltu\\.transloadit\\.com\\/assemblies\\/foo'`, ), expect.stringMatching(` assemblyId: '123',`), expect.stringMatching(` cause: HTTPError: Response code 400 \\(Bad Request\\)`), @@ -218,7 +218,7 @@ describe('Mocked API tests', () => { expect.objectContaining({ message: 'API error (HTTP 429) RATE_LIMIT_REACHED: Request limit reached', code: 'RATE_LIMIT_REACHED', - }) + }), ) scope.done() }) @@ -233,7 +233,7 @@ describe('Mocked API tests', () => { const promise = client.getAssembly('1') await expect(promise).rejects.toThrow( - expect.not.objectContaining({ code: 'ERR_NOCK_NO_MATCH' }) + expect.not.objectContaining({ code: 'ERR_NOCK_NO_MATCH' }), ) // Make sure that it was called only once await expect(promise).rejects.toThrow('API error (HTTP 500)') scope.done() // Make sure that it was called @@ -260,7 +260,7 @@ describe('Mocked API tests', () => { await expect(promise).rejects.toBeInstanceOf(InconsistentResponseError) await expect(promise).rejects.toHaveProperty( 'message', - 'Server returned an incomplete assembly response (no URL)' + 'Server returned an incomplete assembly response (no URL)', ) scope.done() }) @@ -296,7 +296,7 @@ describe('Mocked API tests', () => { expect.objectContaining({ code: 'IMPORT_FILE_ERROR', assemblyId: '1', - }) + }), ) scope.done() }) @@ -311,7 +311,7 @@ describe('Mocked API tests', () => { await expect(client.replayAssembly('1')).rejects.toThrow( expect.objectContaining({ code: 'IMPORT_FILE_ERROR', - }) + }), ) scope.done() }) diff --git a/test/unit/test-pagination-stream.test.ts b/test/unit/test-pagination-stream.test.ts index d8a12386..711f77b6 100644 --- a/test/unit/test-pagination-stream.test.ts +++ b/test/unit/test-pagination-stream.test.ts @@ -1,4 +1,4 @@ -import { Writable } from 'stream' +import { Writable } from 'node:stream' import PaginationStream from '../../src/PaginationStream.js' @@ -36,7 +36,7 @@ describe('PaginationStream', () => { expect(array).toEqual(expected) resolve() - }) + }), ) stream.resume() @@ -55,7 +55,7 @@ describe('PaginationStream', () => { async (pageno) => new Promise((resolve) => { process.nextTick(() => resolve(pages[pageno - 1])) - }) + }), ) await new Promise((resolve) => { @@ -65,7 +65,7 @@ describe('PaginationStream', () => { expect(array).toEqual(expected) resolve() - }) + }), ) stream.resume() diff --git a/test/unit/test-transloadit-client.test.ts b/test/unit/test-transloadit-client.test.ts index 6436b57c..f96839ac 100644 --- a/test/unit/test-transloadit-client.test.ts +++ b/test/unit/test-transloadit-client.test.ts @@ -1,28 +1,32 @@ -import { PassThrough, Readable } from 'stream' +import { PassThrough, type Readable } from 'node:stream' import FormData from 'form-data' -import got, { CancelableRequest } from 'got' +import got, { type CancelableRequest } from 'got' import packageJson from '../../package.json' with { type: 'json' } -import * as tus from '../../src/tus.js' import { Transloadit } from '../../src/Transloadit.js' +import * as tus from '../../src/tus.js' const { version } = packageJson const mockedExpiresDate = '2021-01-06T21:11:07.883Z' const mockGetExpiresDate = (client: Transloadit) => - // @ts-expect-error This mocks private internals - vi.spyOn(client, '_getExpiresDate').mockReturnValue(mockedExpiresDate) + vi + .spyOn(client as unknown as Record unknown>, '_getExpiresDate') + .mockReturnValue(mockedExpiresDate) const mockGot = (method: 'get') => vi.spyOn(got, method).mockImplementation(() => { const mockPromise = Promise.resolve({ body: '', }) as CancelableRequest - ;(mockPromise as any).on = vi.fn(() => {}) + ;(mockPromise as unknown as { on: (cb: (...args: unknown[]) => void) => void }).on = vi.fn( + () => {}, + ) return mockPromise }) const mockRemoteJson = (client: Transloadit) => - // @ts-expect-error This mocks private internals - vi.spyOn(client, '_remoteJson').mockImplementation(() => ({ body: {} })) + vi + .spyOn(client as unknown as Record unknown>, '_remoteJson') + .mockImplementation(() => ({ body: {} })) describe('Transloadit', () => { it('should throw a proper error for request stream', async () => { @@ -33,7 +37,7 @@ describe('Transloadit', () => { const promise = client.createAssembly({ uploads: { file: req } }) await expect(promise).rejects.toThrow( - expect.objectContaining({ message: 'Upload named "file" is not a Readable stream' }) + expect.objectContaining({ message: 'Upload named "file" is not a Readable stream' }), ) }) @@ -47,29 +51,29 @@ describe('Transloadit', () => { const client = new Transloadit(opts) expect( // @ts-expect-error This tests private internals - client._authKey + client._authKey, ).toBe('foo_key') expect( // @ts-expect-error This tests private internals - client._authSecret + client._authSecret, ).toBe('foo_secret') expect( // @ts-expect-error This tests private internals - client._endpoint + client._endpoint, ).toBe('https://api2.transloadit.com') expect( // @ts-expect-error This tests private internals - client._maxRetries + client._maxRetries, ).toBe(0) expect( // @ts-expect-error This tests private internals - client._defaultTimeout + client._defaultTimeout, ).toBe(60000) client.setDefaultTimeout(10000) expect( // @ts-expect-error This tests private internals - client._defaultTimeout + client._defaultTimeout, ).toBe(10000) }) @@ -87,8 +91,8 @@ describe('Transloadit', () => { () => new Transloadit( // @ts-expect-error This tests invalid types - { authSecret: '' } - ) + { authSecret: '' }, + ), ).toThrow() }) @@ -97,8 +101,8 @@ describe('Transloadit', () => { () => new Transloadit( // @ts-expect-error This tests invalid types - { authKey: '' } - ) + { authKey: '' }, + ), ).toThrow() }) @@ -112,15 +116,15 @@ describe('Transloadit', () => { const client = new Transloadit(opts) expect( // @ts-expect-error This tests private internals - client._authKey + client._authKey, ).toBe('foo_key') expect( // @ts-expect-error This tests private internals - client._authSecret + client._authSecret, ).toBe('foo_secret') expect( // @ts-expect-error This tests private internals - client._endpoint + client._endpoint, ).toBe('http://foo') }) }) @@ -250,10 +254,10 @@ describe('Transloadit', () => { const r = client.calcSignature(params) expect(r.params).toBe( - '{"foo":"bar","auth":{"key":"foo_key","expires":"2021-01-06T21:11:07.883Z"}}' + '{"foo":"bar","auth":{"key":"foo_key","expires":"2021-01-06T21:11:07.883Z"}}', ) expect(r.signature).toBe( - 'sha384:431542b924ecc9e7f062e37d1c83554f5bc19664ed7e6e1ef954c0b021b9be19c9412c2074f226784c5419b630e8b70a' + 'sha384:431542b924ecc9e7f062e37d1c83554f5bc19664ed7e6e1ef954c0b021b9be19c9412c2074f226784c5419b630e8b70a', ) expect(prepareParamsSpy).toBeCalledWith(params) }) @@ -267,7 +271,7 @@ describe('Transloadit', () => { await client.createAssembly() expect(spy).toBeCalledWith( - expect.objectContaining({ timeout: { request: 24 * 60 * 60 * 1000 } }) + expect.objectContaining({ timeout: { request: 24 * 60 * 60 * 1000 } }), ) }) @@ -282,14 +286,14 @@ describe('Transloadit', () => { 'sha384:8b90663d4b7d14ac7d647c74cb53c529198dee4689d0f8faae44f0df1c2a157acce5cb8c55a375218bc331897cf92e9d' expect( // @ts-expect-error This tests private internals - client._calcSignature('foo') + client._calcSignature('foo'), ).toBe(expected) expected = 'sha384:3595c177fc09c9cc46672cef90685257838a0a4295056dcfd45b5d5c255e8f987e1c1ca8800b9c21ee03e4ada7485e9d' expect( // @ts-expect-error This tests private internals - client._calcSignature('akjdkadskjads') + client._calcSignature('akjdkadskjads'), ).toBe(expected) // @ts-expect-error This tests private internals @@ -299,14 +303,14 @@ describe('Transloadit', () => { 'sha384:b6f967f8bd659652c6c2093bc52045becbd6e8fbd96d8ef419e07bbc9fb411c56316e75f03dfc2a6613dbe896bbad20f' expect( // @ts-expect-error This tests private internals - client._calcSignature('foo') + client._calcSignature('foo'), ).toBe(expected) expected = 'sha384:fc75f6a4bbb06340653c0f7efff013e94eb8e402e0e45cf40ad4bc95f45a3ae3263032000727359c595a433364a84f96' return expect( // @ts-expect-error This tests private internals - client._calcSignature('akjdkadskjads') + client._calcSignature('akjdkadskjads'), ).toBe(expected) }) }) @@ -323,7 +327,7 @@ describe('Transloadit', () => { expect(get).toHaveBeenCalledWith( expect.any(String), - expect.objectContaining({ headers: { 'Transloadit-Client': `node-sdk:${version}` } }) + expect.objectContaining({ headers: { 'Transloadit-Client': `node-sdk:${version}` } }), ) }) }) @@ -345,7 +349,7 @@ describe('Transloadit', () => { }) expect(url).toBe( - 'https://foo_workspace.tlcdn.com/foo_template/foo%2Finput?aaa=42&aaa=21&auth_key=foo_key&empty=&exp=1714525200000&foo=bar&sig=sha256%3A1ab71ef553df3507a9e2cf7beb8f921538bbef49a13a94a22ff49f2f030a5e9e' + 'https://foo_workspace.tlcdn.com/foo_template/foo%2Finput?aaa=42&aaa=21&auth_key=foo_key&empty=&exp=1714525200000&foo=bar&sig=sha256%3A1ab71ef553df3507a9e2cf7beb8f921538bbef49a13a94a22ff49f2f030a5e9e', ) }) }) diff --git a/test/util.ts b/test/util.ts index ceb6ca59..4bcb6cff 100644 --- a/test/util.ts +++ b/test/util.ts @@ -1,22 +1,19 @@ -import { RequestError, Transloadit } from '../src/Transloadit.js' +import { RequestError, type Transloadit } from '../src/Transloadit.js' -// eslint-disable-next-line import/prefer-default-export export const createProxy = (transloaditInstance: Transloadit) => { return new Proxy(transloaditInstance, { get(target, propKey) { // @ts-expect-error I dunno how to type const origMethod = target[propKey] if (typeof origMethod === 'function') { - // eslint-disable-next-line func-names - return function (...args: any) { + return (...args: unknown[]) => { const result = origMethod.apply(target, args) if (!(result && 'then' in result)) { return result } - // @ts-expect-error any - const newPromise = result.catch((err) => { + const newPromise = (result as Promise).catch((err: unknown) => { if (err instanceof Error && 'cause' in err && err.cause instanceof RequestError) { if (err.cause.request != null) { // for util.inspect: diff --git a/vitest.config.ts b/vitest.config.ts index 823a1edc..7c34317f 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line import/no-unresolved import { defineConfig } from 'vitest/config' export default defineConfig({ diff --git a/yarn.lock b/yarn.lock index 53cac984..914a0e28 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,7 +5,7 @@ __metadata: version: 8 cacheKey: 10c0 -"@ampproject/remapping@npm:^2.2.0, @ampproject/remapping@npm:^2.3.0": +"@ampproject/remapping@npm:^2.3.0": version: 2.3.0 resolution: "@ampproject/remapping@npm:2.3.0" dependencies: @@ -681,204 +681,136 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/code-frame@npm:7.27.1" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.27.1" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.1.1" - checksum: 10c0/5dd9a18baa5fce4741ba729acc3a3272c49c25cb8736c4b18e113099520e7ef7b545a4096a26d600e4416157e63e87d66db46aa3fbf0a5f2286da2705c12da00 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.27.2": - version: 7.27.3 - resolution: "@babel/compat-data@npm:7.27.3" - checksum: 10c0/5736c42c98e38c788c1c53e9bc7c1aa42cb3dd907f3fa2c26c5a123bc957eb3df69acb2f4e96c2f208eb164410d5beddd8b4249353a7ef6e5d6e6eb4292c3587 - languageName: node - linkType: hard - -"@babel/core@npm:^7.26.10": - version: 7.27.3 - resolution: "@babel/core@npm:7.27.3" - dependencies: - "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.27.1" - "@babel/generator": "npm:^7.27.3" - "@babel/helper-compilation-targets": "npm:^7.27.2" - "@babel/helper-module-transforms": "npm:^7.27.3" - "@babel/helpers": "npm:^7.27.3" - "@babel/parser": "npm:^7.27.3" - "@babel/template": "npm:^7.27.2" - "@babel/traverse": "npm:^7.27.3" - "@babel/types": "npm:^7.27.3" - convert-source-map: "npm:^2.0.0" - debug: "npm:^4.1.0" - gensync: "npm:^1.0.0-beta.2" - json5: "npm:^2.2.3" - semver: "npm:^6.3.1" - checksum: 10c0/c6ada8f64d238f1cc166e21e5d056f96e976fc5132cc6f4ebaf5369bc5b1c62bc802756feed15240e0e8448a9a9434796b11af2f304b5aa3781f125b4928a6ba - languageName: node - linkType: hard - -"@babel/eslint-parser@npm:^7.27.0": +"@babel/helper-string-parser@npm:^7.27.1": version: 7.27.1 - resolution: "@babel/eslint-parser@npm:7.27.1" - dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals": "npm:5.1.1-v1" - eslint-visitor-keys: "npm:^2.1.0" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/dedb2bc7ef00307eaf8e40d5ec7f1e8ae4649838fa2e7ec5e1b47eaf9bd8708949503b05175de922e2431ce69a5f3b5fab1c1202003b1d9457d3c0b2c3bdc4ec + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 10c0/8bda3448e07b5583727c103560bcf9c4c24b3c1051a4c516d4050ef69df37bb9a4734a585fe12725b8c2763de0a265aa1e909b485a4e3270b7cfd3e4dbe4b602 languageName: node linkType: hard -"@babel/eslint-plugin@npm:^7.27.0": +"@babel/helper-validator-identifier@npm:^7.27.1": version: 7.27.1 - resolution: "@babel/eslint-plugin@npm:7.27.1" - dependencies: - eslint-rule-composer: "npm:^0.3.0" - peerDependencies: - "@babel/eslint-parser": ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - checksum: 10c0/b313bb01071b807940ec1cceb74fba16b4fda9ea14c19d4b8636716ac0d4ddfa09324af4c14e895121c18991e57b09d1a22b524449c17911d44b0b8f71fb8779 + resolution: "@babel/helper-validator-identifier@npm:7.27.1" + checksum: 10c0/c558f11c4871d526498e49d07a84752d1800bf72ac0d3dad100309a2eaba24efbf56ea59af5137ff15e3a00280ebe588560534b0e894a4750f8b1411d8f78b84 languageName: node linkType: hard -"@babel/generator@npm:^7.27.3": +"@babel/parser@npm:^7.25.4": version: 7.27.3 - resolution: "@babel/generator@npm:7.27.3" + resolution: "@babel/parser@npm:7.27.3" dependencies: - "@babel/parser": "npm:^7.27.3" "@babel/types": "npm:^7.27.3" - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^3.0.2" - checksum: 10c0/341622e17c61d008fc746b655ab95ef7febb543df8efb4148f57cf06e60ade1abe091ed7d6811df17b064d04d64f69bb7f35ab0654137116d55c54a73145a61a + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/d96363c7548710ab9c28649cee752e2d0713ed25bf910923da45d2fbc67fed5bbdfb867274fec7d72437f4e910577d27c04e160da52d95f1b63fdf0b19035d26 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.27.2": - version: 7.27.2 - resolution: "@babel/helper-compilation-targets@npm:7.27.2" +"@babel/types@npm:^7.25.4, @babel/types@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/types@npm:7.27.3" dependencies: - "@babel/compat-data": "npm:^7.27.2" - "@babel/helper-validator-option": "npm:^7.27.1" - browserslist: "npm:^4.24.0" - lru-cache: "npm:^5.1.1" - semver: "npm:^6.3.1" - checksum: 10c0/f338fa00dcfea931804a7c55d1a1c81b6f0a09787e528ec580d5c21b3ecb3913f6cb0f361368973ce953b824d910d3ac3e8a8ee15192710d3563826447193ad1 + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + checksum: 10c0/bafdfc98e722a6b91a783b6f24388f478fd775f0c0652e92220e08be2cc33e02d42088542f1953ac5e5ece2ac052172b3dadedf12bec9aae57899e92fb9a9757 languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-module-imports@npm:7.27.1" - dependencies: - "@babel/traverse": "npm:^7.27.1" - "@babel/types": "npm:^7.27.1" - checksum: 10c0/e00aace096e4e29290ff8648455c2bc4ed982f0d61dbf2db1b5e750b9b98f318bf5788d75a4f974c151bd318fd549e81dbcab595f46b14b81c12eda3023f51e8 +"@bcoe/v8-coverage@npm:^1.0.2": + version: 1.0.2 + resolution: "@bcoe/v8-coverage@npm:1.0.2" + checksum: 10c0/1eb1dc93cc17fb7abdcef21a6e7b867d6aa99a7ec88ec8207402b23d9083ab22a8011213f04b2cf26d535f1d22dc26139b7929e6c2134c254bd1e14ba5e678c3 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.27.3": - version: 7.27.3 - resolution: "@babel/helper-module-transforms@npm:7.27.3" +"@biomejs/biome@npm:^2.2.2": + version: 2.2.2 + resolution: "@biomejs/biome@npm:2.2.2" dependencies: - "@babel/helper-module-imports": "npm:^7.27.1" - "@babel/helper-validator-identifier": "npm:^7.27.1" - "@babel/traverse": "npm:^7.27.3" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/fccb4f512a13b4c069af51e1b56b20f54024bcf1591e31e978a30f3502567f34f90a80da6a19a6148c249216292a8074a0121f9e52602510ef0f32dbce95ca01 - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-string-parser@npm:7.27.1" - checksum: 10c0/8bda3448e07b5583727c103560bcf9c4c24b3c1051a4c516d4050ef69df37bb9a4734a585fe12725b8c2763de0a265aa1e909b485a4e3270b7cfd3e4dbe4b602 + "@biomejs/cli-darwin-arm64": "npm:2.2.2" + "@biomejs/cli-darwin-x64": "npm:2.2.2" + "@biomejs/cli-linux-arm64": "npm:2.2.2" + "@biomejs/cli-linux-arm64-musl": "npm:2.2.2" + "@biomejs/cli-linux-x64": "npm:2.2.2" + "@biomejs/cli-linux-x64-musl": "npm:2.2.2" + "@biomejs/cli-win32-arm64": "npm:2.2.2" + "@biomejs/cli-win32-x64": "npm:2.2.2" + dependenciesMeta: + "@biomejs/cli-darwin-arm64": + optional: true + "@biomejs/cli-darwin-x64": + optional: true + "@biomejs/cli-linux-arm64": + optional: true + "@biomejs/cli-linux-arm64-musl": + optional: true + "@biomejs/cli-linux-x64": + optional: true + "@biomejs/cli-linux-x64-musl": + optional: true + "@biomejs/cli-win32-arm64": + optional: true + "@biomejs/cli-win32-x64": + optional: true + bin: + biome: bin/biome + checksum: 10c0/108690efd8c3a5fcee9faf89371319b2d066208e8adbb05855650032a1cc9afc98ec4206b73b0be2c49cdf64ef765cf5a24785456b814d5846ab65b293791daf languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-validator-identifier@npm:7.27.1" - checksum: 10c0/c558f11c4871d526498e49d07a84752d1800bf72ac0d3dad100309a2eaba24efbf56ea59af5137ff15e3a00280ebe588560534b0e894a4750f8b1411d8f78b84 +"@biomejs/cli-darwin-arm64@npm:2.2.2": + version: 2.2.2 + resolution: "@biomejs/cli-darwin-arm64@npm:2.2.2" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-validator-option@npm:7.27.1" - checksum: 10c0/6fec5f006eba40001a20f26b1ef5dbbda377b7b68c8ad518c05baa9af3f396e780bdfded24c4eef95d14bb7b8fd56192a6ed38d5d439b97d10efc5f1a191d148 +"@biomejs/cli-darwin-x64@npm:2.2.2": + version: 2.2.2 + resolution: "@biomejs/cli-darwin-x64@npm:2.2.2" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@babel/helpers@npm:^7.27.3": - version: 7.27.3 - resolution: "@babel/helpers@npm:7.27.3" - dependencies: - "@babel/template": "npm:^7.27.2" - "@babel/types": "npm:^7.27.3" - checksum: 10c0/b6c9a5bddcda88e39e87b15d7fed592828ed9b7b75e055bbc00212bbff2ba78d00d26358fbe878d7a052aebd3c33d39882b9e7f2ea9865180897b18efdfaf739 +"@biomejs/cli-linux-arm64-musl@npm:2.2.2": + version: 2.2.2 + resolution: "@biomejs/cli-linux-arm64-musl@npm:2.2.2" + conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@babel/parser@npm:^7.25.4, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.27.3": - version: 7.27.3 - resolution: "@babel/parser@npm:7.27.3" - dependencies: - "@babel/types": "npm:^7.27.3" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/d96363c7548710ab9c28649cee752e2d0713ed25bf910923da45d2fbc67fed5bbdfb867274fec7d72437f4e910577d27c04e160da52d95f1b63fdf0b19035d26 +"@biomejs/cli-linux-arm64@npm:2.2.2": + version: 2.2.2 + resolution: "@biomejs/cli-linux-arm64@npm:2.2.2" + conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@babel/template@npm:^7.27.2": - version: 7.27.2 - resolution: "@babel/template@npm:7.27.2" - dependencies: - "@babel/code-frame": "npm:^7.27.1" - "@babel/parser": "npm:^7.27.2" - "@babel/types": "npm:^7.27.1" - checksum: 10c0/ed9e9022651e463cc5f2cc21942f0e74544f1754d231add6348ff1b472985a3b3502041c0be62dc99ed2d12cfae0c51394bf827452b98a2f8769c03b87aadc81 +"@biomejs/cli-linux-x64-musl@npm:2.2.2": + version: 2.2.2 + resolution: "@biomejs/cli-linux-x64-musl@npm:2.2.2" + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3": - version: 7.27.3 - resolution: "@babel/traverse@npm:7.27.3" - dependencies: - "@babel/code-frame": "npm:^7.27.1" - "@babel/generator": "npm:^7.27.3" - "@babel/parser": "npm:^7.27.3" - "@babel/template": "npm:^7.27.2" - "@babel/types": "npm:^7.27.3" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 10c0/63edf0755cc7307470fefeca69c5205b259eaf45df79a4f7be0f28d8937d916bfb090ad9ffbc62edd7e1bbc4309c1f202a9a6904ed3af847504bcefd5ac58c16 +"@biomejs/cli-linux-x64@npm:2.2.2": + version: 2.2.2 + resolution: "@biomejs/cli-linux-x64@npm:2.2.2" + conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@babel/types@npm:^7.25.4, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3": - version: 7.27.3 - resolution: "@babel/types@npm:7.27.3" - dependencies: - "@babel/helper-string-parser": "npm:^7.27.1" - "@babel/helper-validator-identifier": "npm:^7.27.1" - checksum: 10c0/bafdfc98e722a6b91a783b6f24388f478fd775f0c0652e92220e08be2cc33e02d42088542f1953ac5e5ece2ac052172b3dadedf12bec9aae57899e92fb9a9757 +"@biomejs/cli-win32-arm64@npm:2.2.2": + version: 2.2.2 + resolution: "@biomejs/cli-win32-arm64@npm:2.2.2" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@bcoe/v8-coverage@npm:^1.0.2": - version: 1.0.2 - resolution: "@bcoe/v8-coverage@npm:1.0.2" - checksum: 10c0/1eb1dc93cc17fb7abdcef21a6e7b867d6aa99a7ec88ec8207402b23d9083ab22a8011213f04b2cf26d535f1d22dc26139b7929e6c2134c254bd1e14ba5e678c3 +"@biomejs/cli-win32-x64@npm:2.2.2": + version: 2.2.2 + resolution: "@biomejs/cli-win32-x64@npm:2.2.2" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1064,73 +996,6 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.7.0": - version: 4.7.0 - resolution: "@eslint-community/eslint-utils@npm:4.7.0" - dependencies: - eslint-visitor-keys: "npm:^3.4.3" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10c0/c0f4f2bd73b7b7a9de74b716a664873d08ab71ab439e51befe77d61915af41a81ecec93b408778b3a7856185244c34c2c8ee28912072ec14def84ba2dec70adf - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": - version: 4.12.1 - resolution: "@eslint-community/regexpp@npm:4.12.1" - checksum: 10c0/a03d98c246bcb9109aec2c08e4d10c8d010256538dcb3f56610191607214523d4fb1b00aa81df830b6dffb74c5fa0be03642513a289c567949d3e550ca11cdf6 - languageName: node - linkType: hard - -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" - dependencies: - ajv: "npm:^6.12.4" - debug: "npm:^4.3.2" - espree: "npm:^9.6.0" - globals: "npm:^13.19.0" - ignore: "npm:^5.2.0" - import-fresh: "npm:^3.2.1" - js-yaml: "npm:^4.1.0" - minimatch: "npm:^3.1.2" - strip-json-comments: "npm:^3.1.1" - checksum: 10c0/32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573 - languageName: node - linkType: hard - -"@eslint/js@npm:8.57.1": - version: 8.57.1 - resolution: "@eslint/js@npm:8.57.1" - checksum: 10c0/b489c474a3b5b54381c62e82b3f7f65f4b8a5eaaed126546520bf2fede5532a8ed53212919fed1e9048dcf7f37167c8561d58d0ba4492a4244004e7793805223 - languageName: node - linkType: hard - -"@humanwhocodes/config-array@npm:^0.13.0": - version: 0.13.0 - resolution: "@humanwhocodes/config-array@npm:0.13.0" - dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.3" - debug: "npm:^4.3.1" - minimatch: "npm:^3.0.5" - checksum: 10c0/205c99e756b759f92e1f44a3dc6292b37db199beacba8f26c2165d4051fe73a4ae52fdcfd08ffa93e7e5cb63da7c88648f0e84e197d154bbbbe137b2e0dd332e - languageName: node - linkType: hard - -"@humanwhocodes/module-importer@npm:^1.0.1": - version: 1.0.1 - resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 - languageName: node - linkType: hard - -"@humanwhocodes/object-schema@npm:^2.0.3": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c - languageName: node - linkType: hard - "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -1193,7 +1058,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": +"@jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -1217,42 +1082,6 @@ __metadata: languageName: node linkType: hard -"@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1": - version: 5.1.1-v1 - resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1" - dependencies: - eslint-scope: "npm:5.1.1" - checksum: 10c0/75dda3e623b8ad7369ca22552d6beee337a814b2d0e8a32d23edd13fcb65c8082b32c5d86e436f3860dd7ade30d91d5db55d4ef9a08fb5a976c718ecc0d88a74 - languageName: node - linkType: hard - -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": "npm:2.0.5" - run-parallel: "npm:^1.1.9" - checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": "npm:2.1.5" - fastq: "npm:^1.6.0" - checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 - languageName: node - linkType: hard - "@npmcli/agent@npm:^3.0.0": version: 3.0.0 resolution: "@npmcli/agent@npm:3.0.0" @@ -1446,13 +1275,6 @@ __metadata: languageName: node linkType: hard -"@rtsao/scc@npm:^1.1.0": - version: 1.1.0 - resolution: "@rtsao/scc@npm:1.1.0" - checksum: 10c0/b5bcfb0d87f7d1c1c7c0f7693f53b07866ed9fec4c34a97a8c948fb9a7c0082e416ce4d3b60beb4f5e167cbe04cdeefbf6771320f3ede059b9ce91188c409a5b - languageName: node - linkType: hard - "@sec-ant/readable-stream@npm:^0.4.1": version: 0.4.1 resolution: "@sec-ant/readable-stream@npm:0.4.1" @@ -2103,13 +1925,6 @@ __metadata: languageName: node linkType: hard -"@types/json5@npm:^0.0.29": - version: 0.0.29 - resolution: "@types/json5@npm:0.0.29" - checksum: 10c0/6bf5337bc447b706bb5b4431d37686aa2ea6d07cfd6f79cc31de80170d6ff9b1c7384a9c0ccbc45b3f512bae9e9f75c2e12109806a15331dc94e8a8db6dbb4ac - languageName: node - linkType: hard - "@types/ms@npm:*": version: 2.1.0 resolution: "@types/ms@npm:2.1.0" @@ -2142,125 +1957,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.29.1": - version: 8.32.1 - resolution: "@typescript-eslint/eslint-plugin@npm:8.32.1" - dependencies: - "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.32.1" - "@typescript-eslint/type-utils": "npm:8.32.1" - "@typescript-eslint/utils": "npm:8.32.1" - "@typescript-eslint/visitor-keys": "npm:8.32.1" - graphemer: "npm:^1.4.0" - ignore: "npm:^7.0.0" - natural-compare: "npm:^1.4.0" - ts-api-utils: "npm:^2.1.0" - peerDependencies: - "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/29dbafc1f02e1167e6d1e92908de6bf7df1cc1fc9ae1de3f4d4abf5d2b537be16b173bcd05770270529eb2fd17a3ac63c2f40d308f7fbbf6d6f286ba564afd64 - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:^8.29.1": - version: 8.32.1 - resolution: "@typescript-eslint/parser@npm:8.32.1" - dependencies: - "@typescript-eslint/scope-manager": "npm:8.32.1" - "@typescript-eslint/types": "npm:8.32.1" - "@typescript-eslint/typescript-estree": "npm:8.32.1" - "@typescript-eslint/visitor-keys": "npm:8.32.1" - debug: "npm:^4.3.4" - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/01095f5b6e0a2e0631623be3f44be0f2960ceb24de33b64cb790e24a1468018d2b4d6874d1fa08a4928c2a02f208dd66cbc49735c7e8b54d564e420daabf84d1 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:8.32.1": - version: 8.32.1 - resolution: "@typescript-eslint/scope-manager@npm:8.32.1" - dependencies: - "@typescript-eslint/types": "npm:8.32.1" - "@typescript-eslint/visitor-keys": "npm:8.32.1" - checksum: 10c0/d2cb1f7736388972137d6e510b2beae4bac033fcab274e04de90ebba3ce466c71fe47f1795357e032e4a6c8b2162016b51b58210916c37212242c82d35352e9f - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:8.32.1": - version: 8.32.1 - resolution: "@typescript-eslint/type-utils@npm:8.32.1" - dependencies: - "@typescript-eslint/typescript-estree": "npm:8.32.1" - "@typescript-eslint/utils": "npm:8.32.1" - debug: "npm:^4.3.4" - ts-api-utils: "npm:^2.1.0" - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/f10186340ce194681804d9a57feb6d8d6c3adbd059c70df58f4656b0d9efd412fb0c2d80c182f9db83bad1a301754e0c24fe26f3354bef3a1795ab9c835cb763 - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:8.32.1": - version: 8.32.1 - resolution: "@typescript-eslint/types@npm:8.32.1" - checksum: 10c0/86f59b29c12e7e8abe45a1659b6fae5e7b0cfaf09ab86dd596ed9d468aa61082bbccd509d25f769b197fbfdf872bbef0b323a2ded6ceaca351f7c679f1ba3bd3 - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:8.32.1": - version: 8.32.1 - resolution: "@typescript-eslint/typescript-estree@npm:8.32.1" - dependencies: - "@typescript-eslint/types": "npm:8.32.1" - "@typescript-eslint/visitor-keys": "npm:8.32.1" - debug: "npm:^4.3.4" - fast-glob: "npm:^3.3.2" - is-glob: "npm:^4.0.3" - minimatch: "npm:^9.0.4" - semver: "npm:^7.6.0" - ts-api-utils: "npm:^2.1.0" - peerDependencies: - typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/b5ae0d91ef1b46c9f3852741e26b7a14c28bb58ee8a283b9530ac484332ca58a7216b9d22eda23c5449b5fd69c6e4601ef3ebbd68e746816ae78269036c08cda - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:8.32.1, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": - version: 8.32.1 - resolution: "@typescript-eslint/utils@npm:8.32.1" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.7.0" - "@typescript-eslint/scope-manager": "npm:8.32.1" - "@typescript-eslint/types": "npm:8.32.1" - "@typescript-eslint/typescript-estree": "npm:8.32.1" - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.9.0" - checksum: 10c0/a2b90c0417cd3a33c6e22f9cc28c356f251bb8928ef1d25e057feda007d522d281bdc37a9a0d05b70312f00a7b3f350ca06e724867025ea85bba5a4c766732e7 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:8.32.1": - version: 8.32.1 - resolution: "@typescript-eslint/visitor-keys@npm:8.32.1" - dependencies: - "@typescript-eslint/types": "npm:8.32.1" - eslint-visitor-keys: "npm:^4.2.0" - checksum: 10c0/9c05053dfd048f681eb96e09ceefa8841a617b8b5950eea05e0844b38fe3510a284eb936324caa899c3ceb4bc23efe56ac01437fab378ac1beeb1c6c00404978 - languageName: node - linkType: hard - -"@ungap/structured-clone@npm:^1.2.0": - version: 1.3.0 - resolution: "@ungap/structured-clone@npm:1.3.0" - checksum: 10c0/0fc3097c2540ada1fc340ee56d58d96b5b536a2a0dab6e3ec17d4bfc8c4c86db345f61a375a8185f9da96f01c69678f836a2b57eeaa9e4b8eeafd26428e57b0a - languageName: node - linkType: hard - "@vitest/coverage-v8@npm:^3.1.3": version: 3.1.4 resolution: "@vitest/coverage-v8@npm:3.1.4" @@ -2375,24 +2071,6 @@ __metadata: languageName: node linkType: hard -"acorn-jsx@npm:^5.3.2": - version: 5.3.2 - resolution: "acorn-jsx@npm:5.3.2" - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1 - languageName: node - linkType: hard - -"acorn@npm:^8.9.0": - version: 8.14.1 - resolution: "acorn@npm:8.14.1" - bin: - acorn: bin/acorn - checksum: 10c0/dbd36c1ed1d2fa3550140000371fcf721578095b18777b85a79df231ca093b08edc6858d75d6e48c73e431c174dcf9214edbd7e6fa5911b93bd8abfa54e47123 - languageName: node - linkType: hard - "agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": version: 7.1.3 resolution: "agent-base@npm:7.1.3" @@ -2400,18 +2078,6 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.4": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" - dependencies: - fast-deep-equal: "npm:^3.1.1" - fast-json-stable-stringify: "npm:^2.0.0" - json-schema-traverse: "npm:^0.4.1" - uri-js: "npm:^4.2.2" - checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 - languageName: node - linkType: hard - "anafanafo@npm:2.0.0": version: 2.0.0 resolution: "anafanafo@npm:2.0.0" @@ -2444,7 +2110,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": +"ansi-styles@npm:^4.0.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" dependencies: @@ -2460,20 +2126,6 @@ __metadata: languageName: node linkType: hard -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e - languageName: node - linkType: hard - -"aria-query@npm:^5.3.2": - version: 5.3.2 - resolution: "aria-query@npm:5.3.2" - checksum: 10c0/003c7e3e2cff5540bf7a7893775fc614de82b0c5dde8ae823d47b7a28a9d4da1f7ed85f340bdb93d5649caa927755f0e31ecc7ab63edfdfc00c8ef07e505e03e - languageName: node - linkType: hard - "array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": version: 1.0.2 resolution: "array-buffer-byte-length@npm:1.0.2" @@ -2484,119 +2136,32 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8": - version: 3.1.8 - resolution: "array-includes@npm:3.1.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-object-atoms: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.4" - is-string: "npm:^1.0.7" - checksum: 10c0/5b1004d203e85873b96ddc493f090c9672fd6c80d7a60b798da8a14bff8a670ff95db5aafc9abc14a211943f05220dacf8ea17638ae0af1a6a47b8c0b48ce370 - languageName: node - linkType: hard - -"array.prototype.findlast@npm:^1.2.5": - version: 1.2.5 - resolution: "array.prototype.findlast@npm:1.2.5" +"arraybuffer.prototype.slice@npm:^1.0.4": + version: 1.0.4 + resolution: "arraybuffer.prototype.slice@npm:1.0.4" dependencies: - call-bind: "npm:^1.0.7" + array-buffer-byte-length: "npm:^1.0.1" + call-bind: "npm:^1.0.8" define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" + es-abstract: "npm:^1.23.5" es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - es-shim-unscopables: "npm:^1.0.2" - checksum: 10c0/ddc952b829145ab45411b9d6adcb51a8c17c76bf89c9dd64b52d5dffa65d033da8c076ed2e17091779e83bc892b9848188d7b4b33453c5565e65a92863cb2775 + get-intrinsic: "npm:^1.2.6" + is-array-buffer: "npm:^3.0.4" + checksum: 10c0/2f2459caa06ae0f7f615003f9104b01f6435cc803e11bd2a655107d52a1781dc040532dc44d93026b694cc18793993246237423e13a5337e86b43ed604932c06 languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.5": - version: 1.2.6 - resolution: "array.prototype.findlastindex@npm:1.2.6" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.4" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.9" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.1.1" - es-shim-unscopables: "npm:^1.1.0" - checksum: 10c0/82559310d2e57ec5f8fc53d7df420e3abf0ba497935de0a5570586035478ba7d07618cb18e2d4ada2da514c8fb98a034aaf5c06caa0a57e2f7f4c4adedef5956 +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 languageName: node linkType: hard -"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2": - version: 1.3.3 - resolution: "array.prototype.flat@npm:1.3.3" - dependencies: - call-bind: "npm:^1.0.8" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.5" - es-shim-unscopables: "npm:^1.0.2" - checksum: 10c0/d90e04dfbc43bb96b3d2248576753d1fb2298d2d972e29ca7ad5ec621f0d9e16ff8074dae647eac4f31f4fb7d3f561a7ac005fb01a71f51705a13b5af06a7d8a - languageName: node - linkType: hard - -"array.prototype.flatmap@npm:^1.3.2, array.prototype.flatmap@npm:^1.3.3": - version: 1.3.3 - resolution: "array.prototype.flatmap@npm:1.3.3" - dependencies: - call-bind: "npm:^1.0.8" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.5" - es-shim-unscopables: "npm:^1.0.2" - checksum: 10c0/ba899ea22b9dc9bf276e773e98ac84638ed5e0236de06f13d63a90b18ca9e0ec7c97d622d899796e3773930b946cd2413d098656c0c5d8cc58c6f25c21e6bd54 - languageName: node - linkType: hard - -"array.prototype.tosorted@npm:^1.1.4": - version: 1.1.4 - resolution: "array.prototype.tosorted@npm:1.1.4" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.3" - es-errors: "npm:^1.3.0" - es-shim-unscopables: "npm:^1.0.2" - checksum: 10c0/eb3c4c4fc0381b0bf6dba2ea4d48d367c2827a0d4236a5718d97caaccc6b78f11f4cadf090736e86301d295a6aa4967ed45568f92ced51be8cbbacd9ca410943 - languageName: node - linkType: hard - -"arraybuffer.prototype.slice@npm:^1.0.4": - version: 1.0.4 - resolution: "arraybuffer.prototype.slice@npm:1.0.4" - dependencies: - array-buffer-byte-length: "npm:^1.0.1" - call-bind: "npm:^1.0.8" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.5" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.6" - is-array-buffer: "npm:^3.0.4" - checksum: 10c0/2f2459caa06ae0f7f615003f9104b01f6435cc803e11bd2a655107d52a1781dc040532dc44d93026b694cc18793993246237423e13a5337e86b43ed604932c06 - languageName: node - linkType: hard - -"assertion-error@npm:^2.0.1": - version: 2.0.1 - resolution: "assertion-error@npm:2.0.1" - checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 - languageName: node - linkType: hard - -"ast-types-flow@npm:^0.0.8": - version: 0.0.8 - resolution: "ast-types-flow@npm:0.0.8" - checksum: 10c0/f2a0ba8055353b743c41431974521e5e852a9824870cd6fce2db0e538ac7bf4da406bbd018d109af29ff3f8f0993f6a730c9eddbd0abd031fbcb29ca75c1014e - languageName: node - linkType: hard - -"async-function@npm:^1.0.0": - version: 1.0.0 - resolution: "async-function@npm:1.0.0" - checksum: 10c0/669a32c2cb7e45091330c680e92eaeb791bc1d4132d827591e499cd1f776ff5a873e77e5f92d0ce795a8d60f10761dec9ddfe7225a5de680f5d357f67b1aac73 +"async-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-function@npm:1.0.0" + checksum: 10c0/669a32c2cb7e45091330c680e92eaeb791bc1d4132d827591e499cd1f776ff5a873e77e5f92d0ce795a8d60f10761dec9ddfe7225a5de680f5d357f67b1aac73 languageName: node linkType: hard @@ -2616,20 +2181,6 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:^4.10.0": - version: 4.10.3 - resolution: "axe-core@npm:4.10.3" - checksum: 10c0/1b1c24f435b2ffe89d76eca0001cbfff42dbf012ad9bd37398b70b11f0d614281a38a28bc3069e8972e3c90ec929a8937994bd24b0ebcbaab87b8d1e241ab0c7 - languageName: node - linkType: hard - -"axobject-query@npm:^4.1.0": - version: 4.1.0 - resolution: "axobject-query@npm:4.1.0" - checksum: 10c0/c470e4f95008f232eadd755b018cb55f16c03ccf39c027b941cd8820ac6b68707ce5d7368a46756db4256fbc91bb4ead368f84f7fb034b2b7932f082f6dc0775 - languageName: node - linkType: hard - "badge-maker@npm:^4.1.0": version: 4.1.0 resolution: "badge-maker@npm:4.1.0" @@ -2682,29 +2233,6 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.3": - version: 3.0.3 - resolution: "braces@npm:3.0.3" - dependencies: - fill-range: "npm:^7.1.1" - checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04 - languageName: node - linkType: hard - -"browserslist@npm:^4.24.0": - version: 4.24.5 - resolution: "browserslist@npm:4.24.5" - dependencies: - caniuse-lite: "npm:^1.0.30001716" - electron-to-chromium: "npm:^1.5.149" - node-releases: "npm:^2.0.19" - update-browserslist-db: "npm:^1.1.3" - bin: - browserslist: cli.js - checksum: 10c0/f4c1ce1a7d8fdfab5e5b88bb6e93d09e8a883c393f86801537a252da0362dbdcde4dbd97b318246c5d84c6607b2f6b47af732c1b000d6a8a881ee024bad29204 - languageName: node - linkType: hard - "buffer-from@npm:^1.1.2": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -2793,20 +2321,6 @@ __metadata: languageName: node linkType: hard -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001716": - version: 1.0.30001718 - resolution: "caniuse-lite@npm:1.0.30001718" - checksum: 10c0/67f9ad09bc16443e28d14f265d6e468480cd8dc1900d0d8b982222de80c699c4f2306599c3da8a3fa7139f110d4b30d49dbac78f215470f479abb6ffe141d5d3 - languageName: node - linkType: hard - "chai@npm:^5.2.0": version: 5.2.0 resolution: "chai@npm:5.2.0" @@ -2831,16 +2345,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: "npm:^4.1.0" - supports-color: "npm:^7.1.0" - checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 - languageName: node - linkType: hard - "char-width-table-consumer@npm:^1.0.0": version: 1.0.0 resolution: "char-width-table-consumer@npm:1.0.0" @@ -2929,20 +2433,6 @@ __metadata: languageName: node linkType: hard -"confusing-browser-globals@npm:^1.0.10": - version: 1.0.11 - resolution: "confusing-browser-globals@npm:1.0.11" - checksum: 10c0/475d0a284fa964a5182b519af5738b5b64bf7e413cfd703c1b3496bf6f4df9f827893a9b221c0ea5873c1476835beb1e0df569ba643eff0734010c1eb780589e - languageName: node - linkType: hard - -"convert-source-map@npm:^2.0.0": - version: 2.0.0 - resolution: "convert-source-map@npm:2.0.0" - checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b - languageName: node - linkType: hard - "cross-spawn@npm:^6.0.5": version: 6.0.6 resolution: "cross-spawn@npm:6.0.6" @@ -2956,7 +2446,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6": +"cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" dependencies: @@ -2992,13 +2482,6 @@ __metadata: languageName: node linkType: hard -"damerau-levenshtein@npm:^1.0.8": - version: 1.0.8 - resolution: "damerau-levenshtein@npm:1.0.8" - checksum: 10c0/4c2647e0f42acaee7d068756c1d396e296c3556f9c8314bac1ac63ffb236217ef0e7e58602b18bb2173deec7ec8e0cac8e27cccf8f5526666b4ff11a13ad54a3 - languageName: node - linkType: hard - "data-view-buffer@npm:^1.0.2": version: 1.0.2 resolution: "data-view-buffer@npm:1.0.2" @@ -3032,7 +2515,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.0": +"debug@npm:4, debug@npm:^4.1.1, debug@npm:^4.3.4, debug@npm:^4.4.0": version: 4.4.1 resolution: "debug@npm:4.4.1" dependencies: @@ -3044,15 +2527,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.2.7": - version: 3.2.7 - resolution: "debug@npm:3.2.7" - dependencies: - ms: "npm:^2.1.1" - checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a - languageName: node - linkType: hard - "decompress-response@npm:^6.0.0": version: 6.0.0 resolution: "decompress-response@npm:6.0.0" @@ -3069,13 +2543,6 @@ __metadata: languageName: node linkType: hard -"deep-is@npm:^0.1.3": - version: 0.1.4 - resolution: "deep-is@npm:0.1.4" - checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c - languageName: node - linkType: hard - "defer-to-connect@npm:^2.0.1": version: 2.0.1 resolution: "defer-to-connect@npm:2.0.1" @@ -3094,7 +2561,7 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.2.1": +"define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: @@ -3112,24 +2579,6 @@ __metadata: languageName: node linkType: hard -"doctrine@npm:^2.1.0": - version: 2.1.0 - resolution: "doctrine@npm:2.1.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: 10c0/b6416aaff1f380bf56c3b552f31fdf7a69b45689368deca72d28636f41c16bb28ec3ebc40ace97db4c1afc0ceeb8120e8492fe0046841c94c2933b2e30a7d5ac - languageName: node - linkType: hard - -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 - languageName: node - linkType: hard - "dotenv@npm:^16.5.0": version: 16.5.0 resolution: "dotenv@npm:16.5.0" @@ -3155,13 +2604,6 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.149": - version: 1.5.158 - resolution: "electron-to-chromium@npm:1.5.158" - checksum: 10c0/e6c435d495d3be523f81b5850956052f2e7ebc1a346444951b24fa974683c7d0b3e55fae854489d66d61ecf856f3f8d337a82835bb4b7b532ed25ada41e75070 - languageName: node - linkType: hard - "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -3208,7 +2650,7 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9": +"es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.9": version: 1.23.10 resolution: "es-abstract@npm:1.23.10" dependencies: @@ -3281,30 +2723,6 @@ __metadata: languageName: node linkType: hard -"es-iterator-helpers@npm:^1.2.1": - version: 1.2.1 - resolution: "es-iterator-helpers@npm:1.2.1" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.3" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.6" - es-errors: "npm:^1.3.0" - es-set-tostringtag: "npm:^2.0.3" - function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.6" - globalthis: "npm:^1.0.4" - gopd: "npm:^1.2.0" - has-property-descriptors: "npm:^1.0.2" - has-proto: "npm:^1.2.0" - has-symbols: "npm:^1.1.0" - internal-slot: "npm:^1.1.0" - iterator.prototype: "npm:^1.1.4" - safe-array-concat: "npm:^1.1.3" - checksum: 10c0/97e3125ca472d82d8aceea11b790397648b52c26d8768ea1c1ee6309ef45a8755bb63225a43f3150c7591cffc17caf5752459f1e70d583b4184370a8f04ebd2f - languageName: node - linkType: hard - "es-module-lexer@npm:^1.7.0": version: 1.7.0 resolution: "es-module-lexer@npm:1.7.0" @@ -3321,7 +2739,7 @@ __metadata: languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.3, es-set-tostringtag@npm:^2.1.0": +"es-set-tostringtag@npm:^2.1.0": version: 2.1.0 resolution: "es-set-tostringtag@npm:2.1.0" dependencies: @@ -3333,15 +2751,6 @@ __metadata: languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.2, es-shim-unscopables@npm:^1.1.0": - version: 1.1.0 - resolution: "es-shim-unscopables@npm:1.1.0" - dependencies: - hasown: "npm:^2.0.2" - checksum: 10c0/1b9702c8a1823fc3ef39035a4e958802cf294dd21e917397c561d0b3e195f383b978359816b1732d02b255ccf63e1e4815da0065b95db8d7c992037be3bbbcdb - languageName: node - linkType: hard - "es-to-primitive@npm:^1.3.0": version: 1.3.0 resolution: "es-to-primitive@npm:1.3.0" @@ -3442,13 +2851,6 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.2.0": - version: 3.2.0 - resolution: "escalade@npm:3.2.0" - checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 - languageName: node - linkType: hard - "escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" @@ -3456,398 +2858,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 - languageName: node - linkType: hard - -"eslint-config-airbnb-base@npm:^14.2.1": - version: 14.2.1 - resolution: "eslint-config-airbnb-base@npm:14.2.1" - dependencies: - confusing-browser-globals: "npm:^1.0.10" - object.assign: "npm:^4.1.2" - object.entries: "npm:^1.1.2" - peerDependencies: - eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 - eslint-plugin-import: ^2.22.1 - checksum: 10c0/960654ae93f085800850ba5d54d745e576fb1c9e1fe46d0a64086586a1a6a78753ce6990b46c5543c35ba00ba4aee9018e4d3d3307dba8a0bf864a6ac803de16 - languageName: node - linkType: hard - -"eslint-config-airbnb@npm:^18.2.1": - version: 18.2.1 - resolution: "eslint-config-airbnb@npm:18.2.1" - dependencies: - eslint-config-airbnb-base: "npm:^14.2.1" - object.assign: "npm:^4.1.2" - object.entries: "npm:^1.1.2" - peerDependencies: - eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 - eslint-plugin-import: ^2.22.1 - eslint-plugin-jsx-a11y: ^6.4.1 - eslint-plugin-react: ^7.21.5 - eslint-plugin-react-hooks: ^4 || ^3 || ^2.3.0 || ^1.7.0 - checksum: 10c0/236ce3faf1c43079b441c8c5fe530d42f000d5abd9f5e55f0b7e559fcbe60f01b908a18977b0df6fdb9acd14961422fbf5e8c0734ffa380dea0dcd5dce78b8d2 - languageName: node - linkType: hard - -"eslint-config-prettier@npm:^8.10.0": - version: 8.10.0 - resolution: "eslint-config-prettier@npm:8.10.0" - peerDependencies: - eslint: ">=7.0.0" - bin: - eslint-config-prettier: bin/cli.js - checksum: 10c0/19f8c497d9bdc111a17a61b25ded97217be3755bbc4714477dfe535ed539dddcaf42ef5cf8bb97908b058260cf89a3d7c565cb0be31096cbcd39f4c2fa5fe43c - languageName: node - linkType: hard - -"eslint-config-transloadit@npm:^2.0.0": - version: 2.0.0 - resolution: "eslint-config-transloadit@npm:2.0.0" - dependencies: - eslint-config-airbnb: "npm:^18.2.1" - peerDependencies: - "@babel/core": ^7.13.10 - "@babel/eslint-parser": ^7.13.10 - "@babel/eslint-plugin": ^7.13.10 - eslint: ^7.22.0 - eslint-plugin-import: ^2.22.1 - eslint-plugin-jest: ^24.3.1 - eslint-plugin-jsx-a11y: ^6.4.1 - eslint-plugin-node: ^11.1.0 - eslint-plugin-promise: ^4.3.1 - eslint-plugin-react: ^7.22.0 - eslint-plugin-react-hooks: ^4.2.0 - checksum: 10c0/3ba31bc6c04a30e0c16148157b3e446b75870538bd974dfcaac07d232b2f391578d361d7793122b46d3f81820e154bb329a0038f9042e3d729c257645f1bdc07 - languageName: node - linkType: hard - -"eslint-import-resolver-node@npm:^0.3.9": - version: 0.3.9 - resolution: "eslint-import-resolver-node@npm:0.3.9" - dependencies: - debug: "npm:^3.2.7" - is-core-module: "npm:^2.13.0" - resolve: "npm:^1.22.4" - checksum: 10c0/0ea8a24a72328a51fd95aa8f660dcca74c1429806737cf10261ab90cfcaaf62fd1eff664b76a44270868e0a932711a81b250053942595bcd00a93b1c1575dd61 - languageName: node - linkType: hard - -"eslint-module-utils@npm:^2.12.0": - version: 2.12.0 - resolution: "eslint-module-utils@npm:2.12.0" - dependencies: - debug: "npm:^3.2.7" - peerDependenciesMeta: - eslint: - optional: true - checksum: 10c0/4d8b46dcd525d71276f9be9ffac1d2be61c9d54cc53c992e6333cf957840dee09381842b1acbbb15fc6b255ebab99cd481c5007ab438e5455a14abe1a0468558 - languageName: node - linkType: hard - -"eslint-plugin-es@npm:^3.0.0": - version: 3.0.1 - resolution: "eslint-plugin-es@npm:3.0.1" - dependencies: - eslint-utils: "npm:^2.0.0" - regexpp: "npm:^3.0.0" - peerDependencies: - eslint: ">=4.19.1" - checksum: 10c0/12ae730aa9603e680af048e1653aac15e529411b68b8d0da6e290700b17c695485af7c3f5360f531f80970786cab7288c2c1d4a58c35ec1bb89649897c016c4a - languageName: node - linkType: hard - -"eslint-plugin-import@npm:^2.31.0": - version: 2.31.0 - resolution: "eslint-plugin-import@npm:2.31.0" - dependencies: - "@rtsao/scc": "npm:^1.1.0" - array-includes: "npm:^3.1.8" - array.prototype.findlastindex: "npm:^1.2.5" - array.prototype.flat: "npm:^1.3.2" - array.prototype.flatmap: "npm:^1.3.2" - debug: "npm:^3.2.7" - doctrine: "npm:^2.1.0" - eslint-import-resolver-node: "npm:^0.3.9" - eslint-module-utils: "npm:^2.12.0" - hasown: "npm:^2.0.2" - is-core-module: "npm:^2.15.1" - is-glob: "npm:^4.0.3" - minimatch: "npm:^3.1.2" - object.fromentries: "npm:^2.0.8" - object.groupby: "npm:^1.0.3" - object.values: "npm:^1.2.0" - semver: "npm:^6.3.1" - string.prototype.trimend: "npm:^1.0.8" - tsconfig-paths: "npm:^3.15.0" - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - checksum: 10c0/e21d116ddd1900e091ad120b3eb68c5dd5437fe2c930f1211781cd38b246f090a6b74d5f3800b8255a0ed29782591521ad44eb21c5534960a8f1fb4040fd913a - languageName: node - linkType: hard - -"eslint-plugin-jest@npm:^28.11.0": - version: 28.11.0 - resolution: "eslint-plugin-jest@npm:28.11.0" - dependencies: - "@typescript-eslint/utils": "npm:^6.0.0 || ^7.0.0 || ^8.0.0" - peerDependencies: - "@typescript-eslint/eslint-plugin": ^6.0.0 || ^7.0.0 || ^8.0.0 - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - jest: "*" - peerDependenciesMeta: - "@typescript-eslint/eslint-plugin": - optional: true - jest: - optional: true - checksum: 10c0/faa06ce1c4d0ad7aa0fb1c725edf77fe543a17fe091424dfe5b5e3bba8930470516e5831592e4fb725884f7e5f1034f303f49b7fab28b2abdf99765bfd048473 - languageName: node - linkType: hard - -"eslint-plugin-jsx-a11y@npm:^6.10.1": - version: 6.10.2 - resolution: "eslint-plugin-jsx-a11y@npm:6.10.2" - dependencies: - aria-query: "npm:^5.3.2" - array-includes: "npm:^3.1.8" - array.prototype.flatmap: "npm:^1.3.2" - ast-types-flow: "npm:^0.0.8" - axe-core: "npm:^4.10.0" - axobject-query: "npm:^4.1.0" - damerau-levenshtein: "npm:^1.0.8" - emoji-regex: "npm:^9.2.2" - hasown: "npm:^2.0.2" - jsx-ast-utils: "npm:^3.3.5" - language-tags: "npm:^1.0.9" - minimatch: "npm:^3.1.2" - object.fromentries: "npm:^2.0.8" - safe-regex-test: "npm:^1.0.3" - string.prototype.includes: "npm:^2.0.1" - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - checksum: 10c0/d93354e03b0cf66f018d5c50964e074dffe4ddf1f9b535fa020d19c4ae45f89c1a16e9391ca61ac3b19f7042c751ac0d361a056a65cbd1de24718a53ff8daa6e - languageName: node - linkType: hard - -"eslint-plugin-node@npm:^11.1.0": - version: 11.1.0 - resolution: "eslint-plugin-node@npm:11.1.0" - dependencies: - eslint-plugin-es: "npm:^3.0.0" - eslint-utils: "npm:^2.0.0" - ignore: "npm:^5.1.1" - minimatch: "npm:^3.0.4" - resolve: "npm:^1.10.1" - semver: "npm:^6.1.0" - peerDependencies: - eslint: ">=5.16.0" - checksum: 10c0/c7716adac4020cb852fd2410dcd8bdb13a227004de77f96d7f9806d0cf2274f24e0920a7ca73bcd72d90003696c1f17fdd9fe3ca218e64ee03dc2b840e4416fa - languageName: node - linkType: hard - -"eslint-plugin-promise@npm:^4.3.1": - version: 4.3.1 - resolution: "eslint-plugin-promise@npm:4.3.1" - checksum: 10c0/a6ebe19b80e1943b860eb865d7efa70641eea80eb39281ebc820e7da88921854b19989350c4aa971798a045e5e1bea2f202d261b4d3c82770a2138f41a844478 - languageName: node - linkType: hard - -"eslint-plugin-react-hooks@npm:^4.6.2": - version: 4.6.2 - resolution: "eslint-plugin-react-hooks@npm:4.6.2" - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 10c0/4844e58c929bc05157fb70ba1e462e34f1f4abcbc8dd5bbe5b04513d33e2699effb8bca668297976ceea8e7ebee4e8fc29b9af9d131bcef52886feaa2308b2cc - languageName: node - linkType: hard - -"eslint-plugin-react@npm:^7.37.1": - version: 7.37.5 - resolution: "eslint-plugin-react@npm:7.37.5" - dependencies: - array-includes: "npm:^3.1.8" - array.prototype.findlast: "npm:^1.2.5" - array.prototype.flatmap: "npm:^1.3.3" - array.prototype.tosorted: "npm:^1.1.4" - doctrine: "npm:^2.1.0" - es-iterator-helpers: "npm:^1.2.1" - estraverse: "npm:^5.3.0" - hasown: "npm:^2.0.2" - jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" - minimatch: "npm:^3.1.2" - object.entries: "npm:^1.1.9" - object.fromentries: "npm:^2.0.8" - object.values: "npm:^1.2.1" - prop-types: "npm:^15.8.1" - resolve: "npm:^2.0.0-next.5" - semver: "npm:^6.3.1" - string.prototype.matchall: "npm:^4.0.12" - string.prototype.repeat: "npm:^1.0.0" - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - checksum: 10c0/c850bfd556291d4d9234f5ca38db1436924a1013627c8ab1853f77cac73ec19b020e861e6c7b783436a48b6ffcdfba4547598235a37ad4611b6739f65fd8ad57 - languageName: node - linkType: hard - -"eslint-rule-composer@npm:^0.3.0": - version: 0.3.0 - resolution: "eslint-rule-composer@npm:0.3.0" - checksum: 10c0/1f0c40d209e1503a955101a0dbba37e7fc67c8aaa47a5b9ae0b0fcbae7022c86e52b3df2b1b9ffd658e16cd80f31fff92e7222460a44d8251e61d49e0af79a07 - languageName: node - linkType: hard - -"eslint-scope@npm:5.1.1": - version: 5.1.1 - resolution: "eslint-scope@npm:5.1.1" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^4.1.1" - checksum: 10c0/d30ef9dc1c1cbdece34db1539a4933fe3f9b14e1ffb27ecc85987902ee663ad7c9473bbd49a9a03195a373741e62e2f807c4938992e019b511993d163450e70a - languageName: node - linkType: hard - -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^5.2.0" - checksum: 10c0/613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116 - languageName: node - linkType: hard - -"eslint-utils@npm:^2.0.0": - version: 2.1.0 - resolution: "eslint-utils@npm:2.1.0" - dependencies: - eslint-visitor-keys: "npm:^1.1.0" - checksum: 10c0/69521c5d6569384b24093125d037ba238d3d6e54367f7143af9928f5286369e912c26cad5016d730c0ffb9797ac9e83831059d7f1d863f7dc84330eb02414611 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^1.1.0": - version: 1.3.0 - resolution: "eslint-visitor-keys@npm:1.3.0" - checksum: 10c0/10c91fdbbe36810dd4308e57f9a8bc7177188b2a70247e54e3af1fa05ebc66414ae6fd4ce3c6c6821591f43a556e9037bc6b071122e099b5f8b7d2f76df553e3 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^2.1.0": - version: 2.1.0 - resolution: "eslint-visitor-keys@npm:2.1.0" - checksum: 10c0/9f0e3a2db751d84067d15977ac4b4472efd6b303e369e6ff241a99feac04da758f46d5add022c33d06b53596038dbae4b4aceb27c7e68b8dfc1055b35e495787 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^4.2.0": - version: 4.2.0 - resolution: "eslint-visitor-keys@npm:4.2.0" - checksum: 10c0/2ed81c663b147ca6f578312919483eb040295bbab759e5a371953456c636c5b49a559883e2677112453728d66293c0a4c90ab11cab3428cf02a0236d2e738269 - languageName: node - linkType: hard - -"eslint@npm:8": - version: 8.57.1 - resolution: "eslint@npm:8.57.1" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.2.0" - "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.57.1" - "@humanwhocodes/config-array": "npm:^0.13.0" - "@humanwhocodes/module-importer": "npm:^1.0.1" - "@nodelib/fs.walk": "npm:^1.2.8" - "@ungap/structured-clone": "npm:^1.2.0" - ajv: "npm:^6.12.4" - chalk: "npm:^4.0.0" - cross-spawn: "npm:^7.0.2" - debug: "npm:^4.3.2" - doctrine: "npm:^3.0.0" - escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^7.2.2" - eslint-visitor-keys: "npm:^3.4.3" - espree: "npm:^9.6.1" - esquery: "npm:^1.4.2" - esutils: "npm:^2.0.2" - fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^6.0.1" - find-up: "npm:^5.0.0" - glob-parent: "npm:^6.0.2" - globals: "npm:^13.19.0" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.0" - imurmurhash: "npm:^0.1.4" - is-glob: "npm:^4.0.0" - is-path-inside: "npm:^3.0.3" - js-yaml: "npm:^4.1.0" - json-stable-stringify-without-jsonify: "npm:^1.0.1" - levn: "npm:^0.4.1" - lodash.merge: "npm:^4.6.2" - minimatch: "npm:^3.1.2" - natural-compare: "npm:^1.4.0" - optionator: "npm:^0.9.3" - strip-ansi: "npm:^6.0.1" - text-table: "npm:^0.2.0" - bin: - eslint: bin/eslint.js - checksum: 10c0/1fd31533086c1b72f86770a4d9d7058ee8b4643fd1cfd10c7aac1ecb8725698e88352a87805cf4b2ce890aa35947df4b4da9655fb7fdfa60dbb448a43f6ebcf1 - languageName: node - linkType: hard - -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" - dependencies: - acorn: "npm:^8.9.0" - acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10c0/1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460 - languageName: node - linkType: hard - -"esquery@npm:^1.4.2": - version: 1.6.0 - resolution: "esquery@npm:1.6.0" - dependencies: - estraverse: "npm:^5.1.0" - checksum: 10c0/cb9065ec605f9da7a76ca6dadb0619dfb611e37a81e318732977d90fab50a256b95fee2d925fba7c2f3f0523aa16f91587246693bc09bc34d5a59575fe6e93d2 - languageName: node - linkType: hard - -"esrecurse@npm:^4.3.0": - version: 4.3.0 - resolution: "esrecurse@npm:4.3.0" - dependencies: - estraverse: "npm:^5.2.0" - checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5 - languageName: node - linkType: hard - -"estraverse@npm:^4.1.1": - version: 4.3.0 - resolution: "estraverse@npm:4.3.0" - checksum: 10c0/9cb46463ef8a8a4905d3708a652d60122a0c20bb58dec7e0e12ab0e7235123d74214fc0141d743c381813e1b992767e2708194f6f6e0f9fd00c1b4e0887b8b6d - languageName: node - linkType: hard - -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": - version: 5.3.0 - resolution: "estraverse@npm:5.3.0" - checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 - languageName: node - linkType: hard - "estree-walker@npm:^3.0.3": version: 3.0.3 resolution: "estree-walker@npm:3.0.3" @@ -3857,13 +2867,6 @@ __metadata: languageName: node linkType: hard -"esutils@npm:^2.0.2": - version: 2.0.3 - resolution: "esutils@npm:2.0.3" - checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7 - languageName: node - linkType: hard - "execa@npm:9.5.2": version: 9.5.2 resolution: "execa@npm:9.5.2" @@ -3898,40 +2901,6 @@ __metadata: languageName: node linkType: hard -"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 - languageName: node - linkType: hard - -"fast-glob@npm:^3.3.2": - version: 3.3.3 - resolution: "fast-glob@npm:3.3.3" - dependencies: - "@nodelib/fs.stat": "npm:^2.0.2" - "@nodelib/fs.walk": "npm:^1.2.3" - glob-parent: "npm:^5.1.2" - merge2: "npm:^1.3.0" - micromatch: "npm:^4.0.8" - checksum: 10c0/f6aaa141d0d3384cf73cbcdfc52f475ed293f6d5b65bfc5def368b09163a9f7e5ec2b3014d80f733c405f58e470ee0cc451c2937685045cddcdeaa24199c43fe - languageName: node - linkType: hard - -"fast-json-stable-stringify@npm:^2.0.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b - languageName: node - linkType: hard - -"fast-levenshtein@npm:^2.0.6": - version: 2.0.6 - resolution: "fast-levenshtein@npm:2.0.6" - checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4 - languageName: node - linkType: hard - "fast-xml-parser@npm:4.4.1": version: 4.4.1 resolution: "fast-xml-parser@npm:4.4.1" @@ -3943,15 +2912,6 @@ __metadata: languageName: node linkType: hard -"fastq@npm:^1.6.0": - version: 1.19.1 - resolution: "fastq@npm:1.19.1" - dependencies: - reusify: "npm:^1.0.4" - checksum: 10c0/ebc6e50ac7048daaeb8e64522a1ea7a26e92b3cee5cd1c7f2316cdca81ba543aa40a136b53891446ea5c3a67ec215fbaca87ad405f102dd97012f62916905630 - languageName: node - linkType: hard - "fdir@npm:^6.4.4": version: 6.4.4 resolution: "fdir@npm:6.4.4" @@ -3973,52 +2933,6 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" - dependencies: - flat-cache: "npm:^3.0.4" - checksum: 10c0/58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd - languageName: node - linkType: hard - -"fill-range@npm:^7.1.1": - version: 7.1.1 - resolution: "fill-range@npm:7.1.1" - dependencies: - to-regex-range: "npm:^5.0.1" - checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018 - languageName: node - linkType: hard - -"find-up@npm:^5.0.0": - version: 5.0.0 - resolution: "find-up@npm:5.0.0" - dependencies: - locate-path: "npm:^6.0.0" - path-exists: "npm:^4.0.0" - checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a - languageName: node - linkType: hard - -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" - dependencies: - flatted: "npm:^3.2.9" - keyv: "npm:^4.5.3" - rimraf: "npm:^3.0.2" - checksum: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 - languageName: node - linkType: hard - -"flatted@npm:^3.2.9": - version: 3.3.3 - resolution: "flatted@npm:3.3.3" - checksum: 10c0/e957a1c6b0254aa15b8cce8533e24165abd98fadc98575db082b786b5da1b7d72062b81bfdcd1da2f4d46b6ed93bec2434e62333e9b4261d79ef2e75a10dd538 - languageName: node - linkType: hard - "for-each@npm:^0.3.3, for-each@npm:^0.3.5": version: 0.3.5 resolution: "for-each@npm:0.3.5" @@ -4121,13 +3035,6 @@ __metadata: languageName: node linkType: hard -"gensync@npm:^1.0.0-beta.2": - version: 1.0.0-beta.2 - resolution: "gensync@npm:1.0.0-beta.2" - checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 - languageName: node - linkType: hard - "get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0": version: 1.3.0 resolution: "get-intrinsic@npm:1.3.0" @@ -4186,24 +3093,6 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: "npm:^4.0.1" - checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee - languageName: node - linkType: hard - -"glob-parent@npm:^6.0.2": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" - dependencies: - is-glob: "npm:^4.0.3" - checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 - languageName: node - linkType: hard - "glob@npm:^10.2.2, glob@npm:^10.4.1": version: 10.4.5 resolution: "glob@npm:10.4.5" @@ -4234,22 +3123,6 @@ __metadata: languageName: node linkType: hard -"globals@npm:^11.1.0": - version: 11.12.0 - resolution: "globals@npm:11.12.0" - checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 - languageName: node - linkType: hard - -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: "npm:^0.20.2" - checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd - languageName: node - linkType: hard - "globalthis@npm:^1.0.4": version: 1.0.4 resolution: "globalthis@npm:1.0.4" @@ -4293,13 +3166,6 @@ __metadata: languageName: node linkType: hard -"graphemer@npm:^1.4.0": - version: 1.4.0 - resolution: "graphemer@npm:1.4.0" - checksum: 10c0/e951259d8cd2e0d196c72ec711add7115d42eb9a8146c8eeda5b8d3ac91e5dd816b9cd68920726d9fd4490368e7ed86e9c423f40db87e2d8dfafa00fa17c3a31 - languageName: node - linkType: hard - "has-bigints@npm:^1.0.2": version: 1.1.0 resolution: "has-bigints@npm:1.1.0" @@ -4431,30 +3297,6 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.1.1, ignore@npm:^5.2.0": - version: 5.3.2 - resolution: "ignore@npm:5.3.2" - checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 - languageName: node - linkType: hard - -"ignore@npm:^7.0.0": - version: 7.0.4 - resolution: "ignore@npm:7.0.4" - checksum: 10c0/90e1f69ce352b9555caecd9cbfd07abe7626d312a6f90efbbb52c7edca6ea8df065d66303863b30154ab1502afb2da8bc59d5b04e1719a52ef75bbf675c488eb - languageName: node - linkType: hard - -"import-fresh@npm:^3.2.1": - version: 3.3.1 - resolution: "import-fresh@npm:3.3.1" - dependencies: - parent-module: "npm:^1.0.0" - resolve-from: "npm:^4.0.0" - checksum: 10c0/bf8cc494872fef783249709385ae883b447e3eb09db0ebd15dcead7d9afe7224dad7bd7591c6b73b0b19b3c0f9640eb8ee884f01cfaf2887ab995b0b36a0cbec - languageName: node - linkType: hard - "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" @@ -4564,7 +3406,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0": +"is-core-module@npm:^2.16.0": version: 2.16.1 resolution: "is-core-module@npm:2.16.1" dependencies: @@ -4594,13 +3436,6 @@ __metadata: languageName: node linkType: hard -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 - languageName: node - linkType: hard - "is-finalizationregistry@npm:^1.1.0": version: 1.1.1 resolution: "is-finalizationregistry@npm:1.1.1" @@ -4629,15 +3464,6 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: "npm:^2.1.1" - checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a - languageName: node - linkType: hard - "is-map@npm:^2.0.3": version: 2.0.3 resolution: "is-map@npm:2.0.3" @@ -4669,20 +3495,6 @@ __metadata: languageName: node linkType: hard -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 - languageName: node - linkType: hard - -"is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 - languageName: node - linkType: hard - "is-plain-obj@npm:^4.1.0": version: 4.1.0 resolution: "is-plain-obj@npm:4.1.0" @@ -4732,7 +3544,7 @@ __metadata: languageName: node linkType: hard -"is-string@npm:^1.0.7, is-string@npm:^1.1.1": +"is-string@npm:^1.1.1": version: 1.1.1 resolution: "is-string@npm:1.1.1" dependencies: @@ -4855,20 +3667,6 @@ __metadata: languageName: node linkType: hard -"iterator.prototype@npm:^1.1.4": - version: 1.1.5 - resolution: "iterator.prototype@npm:1.1.5" - dependencies: - define-data-property: "npm:^1.1.4" - es-object-atoms: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.6" - get-proto: "npm:^1.0.0" - has-symbols: "npm:^1.1.0" - set-function-name: "npm:^2.0.2" - checksum: 10c0/f7a262808e1b41049ab55f1e9c29af7ec1025a000d243b83edf34ce2416eedd56079b117fa59376bb4a724110690f13aa8427f2ee29a09eec63a7e72367626d0 - languageName: node - linkType: hard - "jackspeak@npm:^3.1.2": version: 3.4.3 resolution: "jackspeak@npm:3.4.3" @@ -4889,24 +3687,6 @@ __metadata: languageName: node linkType: hard -"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed - languageName: node - linkType: hard - -"js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" - dependencies: - argparse: "npm:^2.0.1" - bin: - js-yaml: bin/js-yaml.js - checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f - languageName: node - linkType: hard - "jsbn@npm:1.1.0": version: 1.1.0 resolution: "jsbn@npm:1.1.0" @@ -4914,15 +3694,6 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^3.0.2": - version: 3.1.0 - resolution: "jsesc@npm:3.1.0" - bin: - jsesc: bin/jsesc - checksum: 10c0/531779df5ec94f47e462da26b4cbf05eb88a83d9f08aac2ba04206508fc598527a153d08bd462bae82fc78b3eaa1a908e1a4a79f886e9238641c4cdefaf118b1 - languageName: node - linkType: hard - "json-buffer@npm:3.0.1": version: 3.0.1 resolution: "json-buffer@npm:3.0.1" @@ -4936,92 +3707,20 @@ __metadata: checksum: 10c0/2f1287a7c833e397c9ddd361a78638e828fc523038bb3441fd4fc144cfd2c6cd4963ffb9e207e648cf7b692600f1e1e524e965c32df5152120910e4903a47dcb languageName: node linkType: hard - -"json-schema-traverse@npm:^0.4.1": - version: 0.4.1 - resolution: "json-schema-traverse@npm:0.4.1" - checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce - languageName: node - linkType: hard - -"json-stable-stringify-without-jsonify@npm:^1.0.1": - version: 1.0.1 - resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5 - languageName: node - linkType: hard - -"json-stringify-safe@npm:^5.0.1": - version: 5.0.1 - resolution: "json-stringify-safe@npm:5.0.1" - checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 - languageName: node - linkType: hard - -"json5@npm:^1.0.2": - version: 1.0.2 - resolution: "json5@npm:1.0.2" - dependencies: - minimist: "npm:^1.2.0" - bin: - json5: lib/cli.js - checksum: 10c0/9ee316bf21f000b00752e6c2a3b79ecf5324515a5c60ee88983a1910a45426b643a4f3461657586e8aeca87aaf96f0a519b0516d2ae527a6c3e7eed80f68717f - languageName: node - linkType: hard - -"json5@npm:^2.2.3": - version: 2.2.3 - resolution: "json5@npm:2.2.3" - bin: - json5: lib/cli.js - checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c - languageName: node - linkType: hard - -"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5": - version: 3.3.5 - resolution: "jsx-ast-utils@npm:3.3.5" - dependencies: - array-includes: "npm:^3.1.6" - array.prototype.flat: "npm:^1.3.1" - object.assign: "npm:^4.1.4" - object.values: "npm:^1.1.6" - checksum: 10c0/a32679e9cb55469cb6d8bbc863f7d631b2c98b7fc7bf172629261751a6e7bc8da6ae374ddb74d5fbd8b06cf0eb4572287b259813d92b36e384024ed35e4c13e1 - languageName: node - linkType: hard - -"keyv@npm:^4.5.3, keyv@npm:^4.5.4": - version: 4.5.4 - resolution: "keyv@npm:4.5.4" - dependencies: - json-buffer: "npm:3.0.1" - checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e - languageName: node - linkType: hard - -"language-subtag-registry@npm:^0.3.20": - version: 0.3.23 - resolution: "language-subtag-registry@npm:0.3.23" - checksum: 10c0/e9b05190421d2cd36dd6c95c28673019c927947cb6d94f40ba7e77a838629ee9675c94accf897fbebb07923187deb843b8fbb8935762df6edafe6c28dcb0b86c - languageName: node - linkType: hard - -"language-tags@npm:^1.0.9": - version: 1.0.9 - resolution: "language-tags@npm:1.0.9" - dependencies: - language-subtag-registry: "npm:^0.3.20" - checksum: 10c0/9ab911213c4bd8bd583c850201c17794e52cb0660d1ab6e32558aadc8324abebf6844e46f92b80a5d600d0fbba7eface2c207bfaf270a1c7fd539e4c3a880bff + +"json-stringify-safe@npm:^5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 languageName: node linkType: hard -"levn@npm:^0.4.1": - version: 0.4.1 - resolution: "levn@npm:0.4.1" +"keyv@npm:^4.5.4": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" dependencies: - prelude-ls: "npm:^1.2.1" - type-check: "npm:~0.4.0" - checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e + json-buffer: "npm:3.0.1" + checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e languageName: node linkType: hard @@ -5037,15 +3736,6 @@ __metadata: languageName: node linkType: hard -"locate-path@npm:^6.0.0": - version: 6.0.0 - resolution: "locate-path@npm:6.0.0" - dependencies: - p-locate: "npm:^5.0.0" - checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3 - languageName: node - linkType: hard - "lodash._baseiteratee@npm:~4.7.0": version: 4.7.0 resolution: "lodash._baseiteratee@npm:4.7.0" @@ -5095,13 +3785,6 @@ __metadata: languageName: node linkType: hard -"lodash.merge@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.merge@npm:4.6.2" - checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506 - languageName: node - linkType: hard - "lodash.throttle@npm:^4.1.1": version: 4.1.1 resolution: "lodash.throttle@npm:4.1.1" @@ -5119,17 +3802,6 @@ __metadata: languageName: node linkType: hard -"loose-envify@npm:^1.4.0": - version: 1.4.0 - resolution: "loose-envify@npm:1.4.0" - dependencies: - js-tokens: "npm:^3.0.0 || ^4.0.0" - bin: - loose-envify: cli.js - checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e - languageName: node - linkType: hard - "loupe@npm:^3.1.0, loupe@npm:^3.1.3": version: 3.1.3 resolution: "loupe@npm:3.1.3" @@ -5151,15 +3823,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^5.1.1": - version: 5.1.1 - resolution: "lru-cache@npm:5.1.1" - dependencies: - yallist: "npm:^3.0.2" - checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482 - languageName: node - linkType: hard - "magic-string@npm:^0.30.17": version: 0.30.17 resolution: "magic-string@npm:0.30.17" @@ -5222,23 +3885,6 @@ __metadata: languageName: node linkType: hard -"merge2@npm:^1.3.0": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb - languageName: node - linkType: hard - -"micromatch@npm:^4.0.8": - version: 4.0.8 - resolution: "micromatch@npm:4.0.8" - dependencies: - braces: "npm:^3.0.3" - picomatch: "npm:^2.3.1" - checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8 - languageName: node - linkType: hard - "mime-db@npm:1.52.0": version: 1.52.0 resolution: "mime-db@npm:1.52.0" @@ -5269,7 +3915,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -5287,7 +3933,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.6": +"minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 @@ -5390,7 +4036,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:^2.1.1, ms@npm:^2.1.3": +"ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 @@ -5406,13 +4052,6 @@ __metadata: languageName: node linkType: hard -"natural-compare@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare@npm:1.4.0" - checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447 - languageName: node - linkType: hard - "negotiator@npm:^1.0.0": version: 1.0.0 resolution: "negotiator@npm:1.0.0" @@ -5458,13 +4097,6 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.19": - version: 2.0.19 - resolution: "node-releases@npm:2.0.19" - checksum: 10c0/52a0dbd25ccf545892670d1551690fe0facb6a471e15f2cfa1b20142a5b255b3aa254af5f59d6ecb69c2bec7390bc643c43aa63b13bf5e64b6075952e716b1aa - languageName: node - linkType: hard - "nopt@npm:^8.0.0": version: 8.1.0 resolution: "nopt@npm:8.1.0" @@ -5526,13 +4158,6 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4.1.1": - version: 4.1.1 - resolution: "object-assign@npm:4.1.1" - checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 - languageName: node - linkType: hard - "object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": version: 1.13.4 resolution: "object-inspect@npm:1.13.4" @@ -5547,7 +4172,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.2, object.assign@npm:^4.1.4, object.assign@npm:^4.1.7": +"object.assign@npm:^4.1.7": version: 4.1.7 resolution: "object.assign@npm:4.1.7" dependencies: @@ -5561,53 +4186,6 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.2, object.entries@npm:^1.1.9": - version: 1.1.9 - resolution: "object.entries@npm:1.1.9" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.4" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.1.1" - checksum: 10c0/d4b8c1e586650407da03370845f029aa14076caca4e4d4afadbc69cfb5b78035fd3ee7be417141abdb0258fa142e59b11923b4c44d8b1255b28f5ffcc50da7db - languageName: node - linkType: hard - -"object.fromentries@npm:^2.0.8": - version: 2.0.8 - resolution: "object.fromentries@npm:2.0.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/cd4327e6c3369cfa805deb4cbbe919bfb7d3aeebf0bcaba291bb568ea7169f8f8cdbcabe2f00b40db0c20cd20f08e11b5f3a5a36fb7dd3fe04850c50db3bf83b - languageName: node - linkType: hard - -"object.groupby@npm:^1.0.3": - version: 1.0.3 - resolution: "object.groupby@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - checksum: 10c0/60d0455c85c736fbfeda0217d1a77525956f76f7b2495edeca9e9bbf8168a45783199e77b894d30638837c654d0cc410e0e02cbfcf445bc8de71c3da1ede6a9c - languageName: node - linkType: hard - -"object.values@npm:^1.1.6, object.values@npm:^1.2.0, object.values@npm:^1.2.1": - version: 1.2.1 - resolution: "object.values@npm:1.2.1" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.3" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/3c47814fdc64842ae3d5a74bc9d06bdd8d21563c04d9939bf6716a9c00596a4ebc342552f8934013d1ec991c74e3671b26710a0c51815f0b603795605ab6b2c9 - languageName: node - linkType: hard - "once@npm:^1.3.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -5617,20 +4195,6 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.9.3": - version: 0.9.4 - resolution: "optionator@npm:0.9.4" - dependencies: - deep-is: "npm:^0.1.3" - fast-levenshtein: "npm:^2.0.6" - levn: "npm:^0.4.1" - prelude-ls: "npm:^1.2.1" - type-check: "npm:^0.4.0" - word-wrap: "npm:^1.2.5" - checksum: 10c0/4afb687a059ee65b61df74dfe87d8d6815cd6883cb8b3d5883a910df72d0f5d029821f37025e4bccf4048873dbdb09acc6d303d27b8f76b1a80dd5a7d5334675 - languageName: node - linkType: hard - "outvariant@npm:^1.4.0, outvariant@npm:^1.4.3": version: 1.4.3 resolution: "outvariant@npm:1.4.3" @@ -5656,24 +4220,6 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^3.0.2": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" - dependencies: - yocto-queue: "npm:^0.1.0" - checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a - languageName: node - linkType: hard - -"p-locate@npm:^5.0.0": - version: 5.0.0 - resolution: "p-locate@npm:5.0.0" - dependencies: - p-limit: "npm:^3.0.2" - checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a - languageName: node - linkType: hard - "p-map@npm:^7.0.2, p-map@npm:^7.0.3": version: 7.0.3 resolution: "p-map@npm:7.0.3" @@ -5699,15 +4245,6 @@ __metadata: languageName: node linkType: hard -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: "npm:^3.0.0" - checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 - languageName: node - linkType: hard - "parse-json@npm:^4.0.0": version: 4.0.0 resolution: "parse-json@npm:4.0.0" @@ -5725,13 +4262,6 @@ __metadata: languageName: node linkType: hard -"path-exists@npm:^4.0.0": - version: 4.0.0 - resolution: "path-exists@npm:4.0.0" - checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b - languageName: node - linkType: hard - "path-is-absolute@npm:^1.0.0": version: 1.0.1 resolution: "path-is-absolute@npm:1.0.1" @@ -5807,13 +4337,6 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be - languageName: node - linkType: hard - "picomatch@npm:^4.0.2": version: 4.0.2 resolution: "picomatch@npm:4.0.2" @@ -5855,22 +4378,6 @@ __metadata: languageName: node linkType: hard -"prelude-ls@npm:^1.2.1": - version: 1.2.1 - resolution: "prelude-ls@npm:1.2.1" - checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd - languageName: node - linkType: hard - -"prettier@npm:^3.5.3": - version: 3.5.3 - resolution: "prettier@npm:3.5.3" - bin: - prettier: bin/prettier.cjs - checksum: 10c0/3880cb90b9dc0635819ab52ff571518c35bd7f15a6e80a2054c05dbc8a3aa6e74f135519e91197de63705bcb38388ded7e7230e2178432a1468005406238b877 - languageName: node - linkType: hard - "pretty-ms@npm:^9.0.0": version: 9.2.0 resolution: "pretty-ms@npm:9.2.0" @@ -5897,17 +4404,6 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:^15.8.1": - version: 15.8.1 - resolution: "prop-types@npm:15.8.1" - dependencies: - loose-envify: "npm:^1.4.0" - object-assign: "npm:^4.1.1" - react-is: "npm:^16.13.1" - checksum: 10c0/59ece7ca2fb9838031d73a48d4becb9a7cc1ed10e610517c7d8f19a1e02fa47f7c27d557d8a5702bec3cfeccddc853579832b43f449e54635803f277b1c78077 - languageName: node - linkType: hard - "propagate@npm:^2.0.0": version: 2.0.1 resolution: "propagate@npm:2.0.1" @@ -5926,13 +4422,6 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^2.1.0": - version: 2.3.1 - resolution: "punycode@npm:2.3.1" - checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 - languageName: node - linkType: hard - "querystringify@npm:^2.1.1": version: 2.2.0 resolution: "querystringify@npm:2.2.0" @@ -5940,13 +4429,6 @@ __metadata: languageName: node linkType: hard -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 - languageName: node - linkType: hard - "quick-lru@npm:^5.1.1": version: 5.1.1 resolution: "quick-lru@npm:5.1.1" @@ -5954,13 +4436,6 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^16.13.1": - version: 16.13.1 - resolution: "react-is@npm:16.13.1" - checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1 - languageName: node - linkType: hard - "read-pkg@npm:^3.0.0": version: 3.0.0 resolution: "read-pkg@npm:3.0.0" @@ -5988,7 +4463,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.3, regexp.prototype.flags@npm:^1.5.4": +"regexp.prototype.flags@npm:^1.5.4": version: 1.5.4 resolution: "regexp.prototype.flags@npm:1.5.4" dependencies: @@ -6002,13 +4477,6 @@ __metadata: languageName: node linkType: hard -"regexpp@npm:^3.0.0": - version: 3.2.0 - resolution: "regexpp@npm:3.2.0" - checksum: 10c0/d1da82385c8754a1681416b90b9cca0e21b4a2babef159099b88f640637d789c69011d0bc94705dacab85b81133e929d027d85210e8b8b03f8035164dbc14710 - languageName: node - linkType: hard - "requires-port@npm:^1.0.0": version: 1.0.0 resolution: "requires-port@npm:1.0.0" @@ -6023,13 +4491,6 @@ __metadata: languageName: node linkType: hard -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 - languageName: node - linkType: hard - "resolve-pkg-maps@npm:^1.0.0": version: 1.0.0 resolution: "resolve-pkg-maps@npm:1.0.0" @@ -6037,7 +4498,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.22.4": +"resolve@npm:^1.10.0": version: 1.22.10 resolution: "resolve@npm:1.22.10" dependencies: @@ -6050,20 +4511,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^2.0.0-next.5": - version: 2.0.0-next.5 - resolution: "resolve@npm:2.0.0-next.5" - dependencies: - is-core-module: "npm:^2.13.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/a6c33555e3482ea2ec4c6e3d3bf0d78128abf69dca99ae468e64f1e30acaa318fd267fb66c8836b04d558d3e2d6ed875fe388067e7d8e0de647d3c21af21c43a - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.10.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": +"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin": version: 1.22.10 resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d" dependencies: @@ -6076,19 +4524,6 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin": - version: 2.0.0-next.5 - resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d" - dependencies: - is-core-module: "npm:^2.13.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/78ad6edb8309a2bfb720c2c1898f7907a37f858866ce11a5974643af1203a6a6e05b2fa9c53d8064a673a447b83d42569260c306d43628bff5bb101969708355 - languageName: node - linkType: hard - "responselike@npm:^3.0.0": version: 3.0.0 resolution: "responselike@npm:3.0.0" @@ -6112,24 +4547,6 @@ __metadata: languageName: node linkType: hard -"reusify@npm:^1.0.4": - version: 1.1.0 - resolution: "reusify@npm:1.1.0" - checksum: 10c0/4eff0d4a5f9383566c7d7ec437b671cc51b25963bd61bf127c3f3d3f68e44a026d99b8d2f1ad344afff8d278a8fe70a8ea092650a716d22287e8bef7126bb2fa - languageName: node - linkType: hard - -"rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: bin.js - checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 - languageName: node - linkType: hard - "rimraf@npm:~2.6.2": version: 2.6.3 resolution: "rimraf@npm:2.6.3" @@ -6216,15 +4633,6 @@ __metadata: languageName: node linkType: hard -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: "npm:^1.2.2" - checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 - languageName: node - linkType: hard - "safe-array-concat@npm:^1.1.3": version: 1.1.3 resolution: "safe-array-concat@npm:1.1.3" @@ -6248,7 +4656,7 @@ __metadata: languageName: node linkType: hard -"safe-regex-test@npm:^1.0.3, safe-regex-test@npm:^1.1.0": +"safe-regex-test@npm:^1.1.0": version: 1.1.0 resolution: "safe-regex-test@npm:1.1.0" dependencies: @@ -6275,16 +4683,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.1.0, semver@npm:^6.3.1": - version: 6.3.1 - resolution: "semver@npm:6.3.1" - bin: - semver: bin/semver.js - checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d - languageName: node - linkType: hard - -"semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.6.0": +"semver@npm:^7.3.5, semver@npm:^7.5.3": version: 7.7.2 resolution: "semver@npm:7.7.2" bin: @@ -6566,38 +4965,6 @@ __metadata: languageName: node linkType: hard -"string.prototype.includes@npm:^2.0.1": - version: 2.0.1 - resolution: "string.prototype.includes@npm:2.0.1" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.3" - checksum: 10c0/25ce9c9b49128352a2618fbe8758b46f945817a58a4420f4799419e40a8d28f116e176c7590d767d5327a61e75c8f32c86171063f48e389b9fdd325f1bd04ee5 - languageName: node - linkType: hard - -"string.prototype.matchall@npm:^4.0.12": - version: 4.0.12 - resolution: "string.prototype.matchall@npm:4.0.12" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.3" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.6" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.6" - gopd: "npm:^1.2.0" - has-symbols: "npm:^1.1.0" - internal-slot: "npm:^1.1.0" - regexp.prototype.flags: "npm:^1.5.3" - set-function-name: "npm:^2.0.2" - side-channel: "npm:^1.1.0" - checksum: 10c0/1a53328ada73f4a77f1fdf1c79414700cf718d0a8ef6672af5603e709d26a24f2181208144aed7e858b1bcc1a0d08567a570abfb45567db4ae47637ed2c2f85c - languageName: node - linkType: hard - "string.prototype.padend@npm:^3.0.0": version: 3.1.6 resolution: "string.prototype.padend@npm:3.1.6" @@ -6610,16 +4977,6 @@ __metadata: languageName: node linkType: hard -"string.prototype.repeat@npm:^1.0.0": - version: 1.0.0 - resolution: "string.prototype.repeat@npm:1.0.0" - dependencies: - define-properties: "npm:^1.1.3" - es-abstract: "npm:^1.17.5" - checksum: 10c0/94c7978566cffa1327d470fd924366438af9b04b497c43a9805e476e2e908aa37a1fd34cc0911156c17556dab62159d12c7b92b3cc304c3e1281fe4c8e668f40 - languageName: node - linkType: hard - "string.prototype.trim@npm:^1.2.10": version: 1.2.10 resolution: "string.prototype.trim@npm:1.2.10" @@ -6635,7 +4992,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.8, string.prototype.trimend@npm:^1.0.9": +"string.prototype.trimend@npm:^1.0.9": version: 1.0.9 resolution: "string.prototype.trimend@npm:1.0.9" dependencies: @@ -6690,13 +5047,6 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.1": - version: 3.1.1 - resolution: "strip-json-comments@npm:3.1.1" - checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd - languageName: node - linkType: hard - "strnum@npm:^1.0.5": version: 1.1.2 resolution: "strnum@npm:1.1.2" @@ -6764,13 +5114,6 @@ __metadata: languageName: node linkType: hard -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c - languageName: node - linkType: hard - "tinybench@npm:^2.9.0": version: 2.9.0 resolution: "tinybench@npm:2.9.0" @@ -6816,42 +5159,19 @@ __metadata: languageName: node linkType: hard -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: "npm:^7.0.0" - checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 - languageName: node - linkType: hard - "transloadit@workspace:.": version: 0.0.0-use.local resolution: "transloadit@workspace:." dependencies: "@aws-sdk/client-s3": "npm:^3.787.0" "@aws-sdk/s3-request-presigner": "npm:^3.787.0" - "@babel/core": "npm:^7.26.10" - "@babel/eslint-parser": "npm:^7.27.0" - "@babel/eslint-plugin": "npm:^7.27.0" + "@biomejs/biome": "npm:^2.2.2" "@types/debug": "npm:^4.1.12" "@types/temp": "npm:^0.9.4" - "@typescript-eslint/eslint-plugin": "npm:^8.29.1" - "@typescript-eslint/parser": "npm:^8.29.1" "@vitest/coverage-v8": "npm:^3.1.3" badge-maker: "npm:^4.1.0" debug: "npm:^4.4.0" dotenv: "npm:^16.5.0" - eslint: "npm:8" - eslint-config-prettier: "npm:^8.10.0" - eslint-config-transloadit: "npm:^2.0.0" - eslint-plugin-import: "npm:^2.31.0" - eslint-plugin-jest: "npm:^28.11.0" - eslint-plugin-jsx-a11y: "npm:^6.10.1" - eslint-plugin-node: "npm:^11.1.0" - eslint-plugin-promise: "npm:^4.3.1" - eslint-plugin-react: "npm:^7.37.1" - eslint-plugin-react-hooks: "npm:^4.6.2" execa: "npm:9.5.2" form-data: "npm:^4.0.2" got: "npm:14.4.7" @@ -6861,38 +5181,16 @@ __metadata: npm-run-all: "npm:^4.1.5" p-map: "npm:^7.0.3" p-retry: "npm:^6.2.1" - prettier: "npm:^3.5.3" temp: "npm:^0.9.4" - tsx: "npm:4.19.4" + tsx: "npm:4.20.5" tus-js-client: "npm:^4.3.1" type-fest: "npm:^4.41.0" - typescript: "npm:5.8.3" + typescript: "npm:5.9.2" vitest: "npm:^3.1.3" zod: "npm:3.25.76" languageName: unknown linkType: soft -"ts-api-utils@npm:^2.1.0": - version: 2.1.0 - resolution: "ts-api-utils@npm:2.1.0" - peerDependencies: - typescript: ">=4.8.4" - checksum: 10c0/9806a38adea2db0f6aa217ccc6bc9c391ddba338a9fe3080676d0d50ed806d305bb90e8cef0276e793d28c8a929f400abb184ddd7ff83a416959c0f4d2ce754f - languageName: node - linkType: hard - -"tsconfig-paths@npm:^3.15.0": - version: 3.15.0 - resolution: "tsconfig-paths@npm:3.15.0" - dependencies: - "@types/json5": "npm:^0.0.29" - json5: "npm:^1.0.2" - minimist: "npm:^1.2.6" - strip-bom: "npm:^3.0.0" - checksum: 10c0/5b4f301a2b7a3766a986baf8fc0e177eb80bdba6e396792ff92dc23b5bca8bb279fc96517dcaaef63a3b49bebc6c4c833653ec58155780bc906bdbcf7dda0ef5 - languageName: node - linkType: hard - "tslib@npm:^2.6.2": version: 2.8.1 resolution: "tslib@npm:2.8.1" @@ -6900,9 +5198,9 @@ __metadata: languageName: node linkType: hard -"tsx@npm:4.19.4": - version: 4.19.4 - resolution: "tsx@npm:4.19.4" +"tsx@npm:4.20.5": + version: 4.20.5 + resolution: "tsx@npm:4.20.5" dependencies: esbuild: "npm:~0.25.0" fsevents: "npm:~2.3.3" @@ -6912,7 +5210,7 @@ __metadata: optional: true bin: tsx: dist/cli.mjs - checksum: 10c0/f7b8d44362343fbde1f2ecc9832d243a450e1168dd09702a545ebe5f699aa6912e45b431a54b885466db414cceda48e5067b36d182027c43b2c02a4f99d8721e + checksum: 10c0/70f9bf746be69281312a369c712902dbf9bcbdd9db9184a4859eb4859c36ef0c5a6d79b935c1ec429158ee73fd6584089400ae8790345dae34c5b0222bdb94f3 languageName: node linkType: hard @@ -6931,22 +5229,6 @@ __metadata: languageName: node linkType: hard -"type-check@npm:^0.4.0, type-check@npm:~0.4.0": - version: 0.4.0 - resolution: "type-check@npm:0.4.0" - dependencies: - prelude-ls: "npm:^1.2.1" - checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58 - languageName: node - linkType: hard - -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 10c0/dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3 - languageName: node - linkType: hard - "type-fest@npm:^4.26.1, type-fest@npm:^4.41.0": version: 4.41.0 resolution: "type-fest@npm:4.41.0" @@ -7007,23 +5289,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:5.8.3": - version: 5.8.3 - resolution: "typescript@npm:5.8.3" +"typescript@npm:5.9.2": + version: 5.9.2 + resolution: "typescript@npm:5.9.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/5f8bb01196e542e64d44db3d16ee0e4063ce4f3e3966df6005f2588e86d91c03e1fb131c2581baf0fb65ee79669eea6e161cd448178986587e9f6844446dbb48 + checksum: 10c0/cd635d50f02d6cf98ed42de2f76289701c1ec587a363369255f01ed15aaf22be0813226bff3c53e99d971f9b540e0b3cc7583dbe05faded49b1b0bed2f638a18 languageName: node linkType: hard -"typescript@patch:typescript@npm%3A5.8.3#optional!builtin": - version: 5.8.3 - resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin::version=5.8.3&hash=5786d5" +"typescript@patch:typescript@npm%3A5.9.2#optional!builtin": + version: 5.9.2 + resolution: "typescript@patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/39117e346ff8ebd87ae1510b3a77d5d92dae5a89bde588c747d25da5c146603a99c8ee588c7ef80faaf123d89ed46f6dbd918d534d641083177d5fac38b8a1cb + checksum: 10c0/34d2a8e23eb8e0d1875072064d5e1d9c102e0bdce56a10a25c0b917b8aa9001a9cf5c225df12497e99da107dc379360bc138163c66b55b95f5b105b50578067e languageName: node linkType: hard @@ -7071,29 +5353,6 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.1.3": - version: 1.1.3 - resolution: "update-browserslist-db@npm:1.1.3" - dependencies: - escalade: "npm:^3.2.0" - picocolors: "npm:^1.1.1" - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 10c0/682e8ecbf9de474a626f6462aa85927936cdd256fe584c6df2508b0df9f7362c44c957e9970df55dfe44d3623807d26316ea2c7d26b80bb76a16c56c37233c32 - languageName: node - linkType: hard - -"uri-js@npm:^4.2.2": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: "npm:^2.1.0" - checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c - languageName: node - linkType: hard - "url-parse@npm:^1.5.7": version: 1.5.10 resolution: "url-parse@npm:1.5.10" @@ -7353,13 +5612,6 @@ __metadata: languageName: node linkType: hard -"word-wrap@npm:^1.2.5": - version: 1.2.5 - resolution: "word-wrap@npm:1.2.5" - checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20 - languageName: node - linkType: hard - "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -7389,13 +5641,6 @@ __metadata: languageName: node linkType: hard -"yallist@npm:^3.0.2": - version: 3.1.1 - resolution: "yallist@npm:3.1.1" - checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1 - languageName: node - linkType: hard - "yallist@npm:^4.0.0": version: 4.0.0 resolution: "yallist@npm:4.0.0" @@ -7410,13 +5655,6 @@ __metadata: languageName: node linkType: hard -"yocto-queue@npm:^0.1.0": - version: 0.1.0 - resolution: "yocto-queue@npm:0.1.0" - checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f - languageName: node - linkType: hard - "yoctocolors@npm:^2.0.0": version: 2.1.1 resolution: "yoctocolors@npm:2.1.1"