diff --git a/package-lock.json b/package-lock.json index a9869a9..4c9291e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,6 +43,7 @@ "input-otp": "^1.4.2", "lucide-react": "^0.487.0", "next-themes": "^0.4.6", + "openapi-fetch": "^0.17.0", "react": "^18.3.1", "react-day-picker": "^8.10.1", "react-dom": "^18.3.1", @@ -59,6 +60,7 @@ "@types/node": "^20.11.19", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", + "openapi-typescript": "^7.13.0", "prettier": "^3.8.1", "tailwindcss": "^4.1.12", "typescript": "~5.6.3" @@ -3033,6 +3035,52 @@ "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", "license": "MIT" }, + "node_modules/@redocly/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js-replace": "^1.0.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@redocly/config": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.22.0.tgz", + "integrity": "sha512-gAy93Ddo01Z3bHuVdPWfCwzgfaYgMdaZPcfL7JZ7hWJoK9V0lXDbigTWkhiPFAaLWzbOJ+kbUQG1+XwIm0KRGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@redocly/openapi-core": { + "version": "1.34.11", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.34.11.tgz", + "integrity": "sha512-V09ayfnb5GyysmvARbt+voFZAjGcf7hSYxOYxSkCc4fbH/DTfq5YWoec8cflvmHHqyIFbqvmGKmYFzqhr9zxDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@redocly/ajv": "8.11.2", + "@redocly/config": "0.22.0", + "colorette": "1.4.0", + "https-proxy-agent": "7.0.6", + "js-levenshtein": "1.1.6", + "js-yaml": "4.1.1", + "minimatch": "5.1.9", + "pluralize": "8.0.0", + "yaml-ast-parser": "0.0.43" + }, + "engines": { + "node": ">=18.17.0", + "npm": ">=9.5.0" + } + }, "node_modules/@rolldown/pluginutils": { "version": "1.0.0-beta.27", "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", @@ -3962,6 +4010,16 @@ "node": ">=0.4.0" } }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -4012,6 +4070,16 @@ "node": ">=8" } }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/ansi-regex": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", @@ -4320,6 +4388,13 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, "node_modules/base-64": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", @@ -4366,6 +4441,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/brace-expansion": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", + "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/browserslist": { "version": "4.28.2", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", @@ -4453,6 +4538,13 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/change-case": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", + "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "dev": true, + "license": "MIT" + }, "node_modules/character-entities": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", @@ -4562,6 +4654,13 @@ "react-dom": "^18 || ^19 || ^19.0.0-rc" } }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true, + "license": "MIT" + }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", @@ -5205,6 +5304,13 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-equals": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.0.tgz", @@ -5534,6 +5640,20 @@ "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", "license": "BSD-2-Clause" }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/import-meta-resolve": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", @@ -5544,6 +5664,19 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/index-to-position": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.2.0.tgz", + "integrity": "sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/input-otp": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.4.2.tgz", @@ -5651,6 +5784,16 @@ "jiti": "lib/jiti-cli.mjs" } }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5681,6 +5824,13 @@ "node": ">=6" } }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -6833,6 +6983,19 @@ ], "license": "MIT" }, + "node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -6980,6 +7143,42 @@ "regex-recursion": "^6.0.2" } }, + "node_modules/openapi-fetch": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/openapi-fetch/-/openapi-fetch-0.17.0.tgz", + "integrity": "sha512-PsbZR1wAPcG91eEthKhN+Zn92FMHxv+/faECIwjXdxfTODGSGegYv0sc1Olz+HYPvKOuoXfp+0pA2XVt2cI0Ig==", + "license": "MIT", + "dependencies": { + "openapi-typescript-helpers": "^0.1.0" + } + }, + "node_modules/openapi-typescript": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.13.0.tgz", + "integrity": "sha512-EFP392gcqXS7ntPvbhBzbF8TyBA+baIYEm791Hy5YkjDYKTnk/Tn5OQeKm5BIZvJihpp8Zzr4hzx0Irde1LNGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@redocly/openapi-core": "^1.34.6", + "ansi-colors": "^4.1.3", + "change-case": "^5.4.4", + "parse-json": "^8.3.0", + "supports-color": "^10.2.2", + "yargs-parser": "^21.1.1" + }, + "bin": { + "openapi-typescript": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.x" + } + }, + "node_modules/openapi-typescript-helpers": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/openapi-typescript-helpers/-/openapi-typescript-helpers-0.1.0.tgz", + "integrity": "sha512-OKTGPthhivLw/fHz6c3OPtg72vi86qaMlqbJuVJ23qOvQ+53uw1n7HdmkJFibloF7QEjDrDkzJiOJuockM/ljw==", + "license": "MIT" + }, "node_modules/p-limit": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz", @@ -7029,6 +7228,24 @@ "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", "license": "MIT" }, + "node_modules/parse-json": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse-latin": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", @@ -7083,6 +7300,16 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/postcss": { "version": "8.5.8", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", @@ -7579,6 +7806,16 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/retext": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", @@ -7878,6 +8115,19 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/svgo": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", @@ -8259,6 +8509,13 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/uri-js-replace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uri-js-replace/-/uri-js-replace-1.0.1.tgz", + "integrity": "sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==", + "dev": true, + "license": "MIT" + }, "node_modules/use-callback-ref": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", @@ -9001,6 +9258,13 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "license": "ISC" }, + "node_modules/yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", diff --git a/package.json b/package.json index a82d3a0..ea047c3 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "scripts": { "dev": "astro dev", "build": "astro build", - "preview": "astro preview" + "preview": "astro preview", + "types:generate": "openapi-typescript http://localhost:1337/swagger-spec.json -o ./src/api/paths.ts" }, "dependencies": { "@astrojs/react": "^4.4.2", @@ -48,6 +49,7 @@ "input-otp": "^1.4.2", "lucide-react": "^0.487.0", "next-themes": "^0.4.6", + "openapi-fetch": "^0.17.0", "react": "^18.3.1", "react-day-picker": "^8.10.1", "react-dom": "^18.3.1", @@ -64,6 +66,7 @@ "@types/node": "^20.11.19", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", + "openapi-typescript": "^7.13.0", "prettier": "^3.8.1", "tailwindcss": "^4.1.12", "typescript": "~5.6.3" diff --git a/src/api/client.ts b/src/api/client.ts new file mode 100644 index 0000000..bd1ccec --- /dev/null +++ b/src/api/client.ts @@ -0,0 +1,7 @@ +import createClient from 'openapi-fetch' + +import { type schema } from './schema' + +export const client = createClient({ + baseUrl: 'http://localhost:1337/api/', +}) diff --git a/src/api/paths.ts b/src/api/paths.ts new file mode 100644 index 0000000..f347c7b --- /dev/null +++ b/src/api/paths.ts @@ -0,0 +1,5400 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + '/categories': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['category/get/categories'] + put?: never + post: operations['category/post/categories'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/categories/{id}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['category/get/categories_by_id'] + put: operations['category/put/categories_by_id'] + post?: never + delete: operations['category/delete/categories_by_id'] + options?: never + head?: never + patch?: never + trace?: never + } + '/home-page': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['home-page/get/home_page'] + put: operations['home-page/put/home_page'] + post?: never + delete: operations['home-page/delete/home_page'] + options?: never + head?: never + patch?: never + trace?: never + } + '/site-config': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['site-config/get/site_config'] + put: operations['site-config/put/site_config'] + post?: never + delete: operations['site-config/delete/site_config'] + options?: never + head?: never + patch?: never + trace?: never + } + '/vendors': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['vendor/get/vendors'] + put?: never + post: operations['vendor/post/vendors'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/vendors/{id}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['vendor/get/vendors_by_id'] + put: operations['vendor/put/vendors_by_id'] + post?: never + delete: operations['vendor/delete/vendors_by_id'] + options?: never + head?: never + patch?: never + trace?: never + } + '/content-type-builder/content-types': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['content-type-builder/get/content_type_builder_content_types'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/content-type-builder/content-types/{uid}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['content-type-builder/get/content_type_builder_content_types_by_uid'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/content-type-builder/components': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['content-type-builder/get/content_type_builder_components'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/content-type-builder/components/{uid}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['content-type-builder/get/content_type_builder_components_by_uid'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/email': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + post: operations['email/post/email'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/upload': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + post: operations['upload/post/upload'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/upload/files': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['upload/get/upload_files'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/upload/files/{id}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['upload/get/upload_files_by_id'] + put?: never + post?: never + delete: operations['upload/delete/upload_files_by_id'] + options?: never + head?: never + patch?: never + trace?: never + } + '/i18n/locales': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['i18n/get/i18n_locales'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/connect/(.*)': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['users-permissions/get/connect_____'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/auth/local': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + post: operations['users-permissions/post/auth_local'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/auth/local/register': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + post: operations['users-permissions/post/auth_local_register'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/auth/{provider}/callback': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['users-permissions/get/auth_by_provider_callback'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/auth/forgot-password': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + post: operations['users-permissions/post/auth_forgot_password'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/auth/reset-password': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + post: operations['users-permissions/post/auth_reset_password'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/auth/email-confirmation': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['users-permissions/get/auth_email_confirmation'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/auth/send-email-confirmation': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + post: operations['users-permissions/post/auth_send_email_confirmation'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/auth/change-password': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + post: operations['users-permissions/post/auth_change_password'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/auth/refresh': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + post: operations['users-permissions/post/auth_refresh'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/auth/logout': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put?: never + post: operations['users-permissions/post/auth_logout'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/users/count': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['users-permissions/get/users_count'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/users': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['users-permissions/get/users'] + put?: never + post: operations['users-permissions/post/users'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/users/me': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['users-permissions/get/users_me'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/users/{id}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['users-permissions/get/users_by_id'] + put: operations['users-permissions/put/users_by_id'] + post?: never + delete: operations['users-permissions/delete/users_by_id'] + options?: never + head?: never + patch?: never + trace?: never + } + '/users-permissions/roles/{id}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['users-permissions/get/users_permissions_roles_by_id'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/users-permissions/roles': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['users-permissions/get/users_permissions_roles'] + put?: never + post: operations['users-permissions/post/users_permissions_roles'] + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } + '/users-permissions/roles/{role}': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get?: never + put: operations['users-permissions/put/users_permissions_roles_by_role'] + post?: never + delete: operations['users-permissions/delete/users_permissions_roles_by_role'] + options?: never + head?: never + patch?: never + trace?: never + } + '/users-permissions/permissions': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + get: operations['users-permissions/get/users_permissions_permissions'] + put?: never + post?: never + delete?: never + options?: never + head?: never + patch?: never + trace?: never + } +} +export type webhooks = Record +export interface components { + schemas: { + SharedProductEntry: { + /** @description A string field */ + title: string + } + ApiCategoryCategoryDocument: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A string field */ + comment?: string + /** + * @description An enum field + * @enum {string} + */ + group: 'service' | 'solution' + /** + * @description An integer field + * @default 0 + */ + sortOrder: number + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.027Z + */ + publishedAt: string + /** @description A relational field */ + vendors?: components['schemas']['ApiVendorVendorDocument'][] + } + ApiVendorVendorDocument: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.025Z + */ + publishedAt: string + /** @description A component field */ + products?: components['schemas']['SharedProductEntry'][] + /** @description A relational field */ + categories?: components['schemas']['ApiCategoryCategoryDocument'][] + } + } + responses: never + parameters: never + requestBodies: never + headers: never + pathItems: never +} +export type $defs = Record +export interface operations { + 'category/get/categories': { + parameters: { + query?: { + fields?: ( + | 'slug' + | 'title' + | 'description' + | 'comment' + | 'group' + | 'sortOrder' + | 'createdAt' + | 'updatedAt' + | 'publishedAt' + )[] + filters?: { + [key: string]: unknown + } + _q?: string + pagination?: { + /** @description Include total count in response */ + withCount?: boolean + } & ( + | { + /** @description Page number (1-based) */ + page: number + /** @description Number of entries per page */ + pageSize: number + } + | { + /** @description Number of entries to skip */ + start: number + /** @description Maximum number of entries to return */ + limit: number + } + ) + sort?: + | ( + | 'slug' + | 'title' + | 'description' + | 'comment' + | 'group' + | 'sortOrder' + | 'createdAt' + | 'updatedAt' + | 'publishedAt' + ) + | ( + | 'slug' + | 'title' + | 'description' + | 'comment' + | 'group' + | 'sortOrder' + | 'createdAt' + | 'updatedAt' + | 'publishedAt' + )[] + | { + [key: string]: 'asc' | 'desc' + } + | { + [key: string]: 'asc' | 'desc' + }[] + populate?: '*' | 'vendors' | 'vendors'[] + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A string field */ + comment?: string + /** + * @description An enum field + * @enum {string} + */ + group: 'service' | 'solution' + /** + * @description An integer field + * @default 0 + */ + sortOrder: number + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.023Z + */ + publishedAt: string + /** @description A relational field */ + vendors?: components['schemas']['ApiVendorVendorDocument'][] + }[] + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'category/post/categories': { + parameters: { + query?: { + fields?: ( + | 'slug' + | 'title' + | 'description' + | 'comment' + | 'group' + | 'sortOrder' + | 'createdAt' + | 'updatedAt' + | 'publishedAt' + )[] + populate?: '*' | 'vendors' | 'vendors'[] + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + data: { + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A string field */ + comment?: string + /** + * @description An enum field + * @enum {string} + */ + group: 'service' | 'solution' + /** + * @description A float field + * @default 0 + */ + sortOrder: number + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.030Z + */ + publishedAt: string + /** @description A relational field */ + vendors?: string[] + } + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A string field */ + comment?: string + /** + * @description An enum field + * @enum {string} + */ + group: 'service' | 'solution' + /** + * @description An integer field + * @default 0 + */ + sortOrder: number + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.031Z + */ + publishedAt: string + /** @description A relational field */ + vendors?: components['schemas']['ApiVendorVendorDocument'][] + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'category/get/categories_by_id': { + parameters: { + query?: { + fields?: ( + | 'slug' + | 'title' + | 'description' + | 'comment' + | 'group' + | 'sortOrder' + | 'createdAt' + | 'updatedAt' + | 'publishedAt' + )[] + populate?: '*' | 'vendors' | 'vendors'[] + filters?: { + [key: string]: unknown + } + sort?: + | ( + | 'slug' + | 'title' + | 'description' + | 'comment' + | 'group' + | 'sortOrder' + | 'createdAt' + | 'updatedAt' + | 'publishedAt' + ) + | ( + | 'slug' + | 'title' + | 'description' + | 'comment' + | 'group' + | 'sortOrder' + | 'createdAt' + | 'updatedAt' + | 'publishedAt' + )[] + | { + [key: string]: 'asc' | 'desc' + } + | { + [key: string]: 'asc' | 'desc' + }[] + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path: { + id: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A string field */ + comment?: string + /** + * @description An enum field + * @enum {string} + */ + group: 'service' | 'solution' + /** + * @description An integer field + * @default 0 + */ + sortOrder: number + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.029Z + */ + publishedAt: string + /** @description A relational field */ + vendors?: components['schemas']['ApiVendorVendorDocument'][] + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'category/put/categories_by_id': { + parameters: { + query?: { + fields?: ( + | 'slug' + | 'title' + | 'description' + | 'comment' + | 'group' + | 'sortOrder' + | 'createdAt' + | 'updatedAt' + | 'publishedAt' + )[] + populate?: '*' | 'vendors' | 'vendors'[] + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path: { + id: string + } + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + data: { + /** @description A UID field */ + slug?: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A string field */ + comment?: string + /** + * @description An enum field + * @enum {string} + */ + group?: 'service' | 'solution' + /** + * @description A float field + * @default 0 + */ + sortOrder?: number + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.032Z + */ + publishedAt?: string + /** @description A relational field */ + vendors?: string[] + } + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A string field */ + comment?: string + /** + * @description An enum field + * @enum {string} + */ + group: 'service' | 'solution' + /** + * @description An integer field + * @default 0 + */ + sortOrder: number + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.033Z + */ + publishedAt: string + /** @description A relational field */ + vendors?: components['schemas']['ApiVendorVendorDocument'][] + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'category/delete/categories_by_id': { + parameters: { + query?: { + fields?: ( + | 'slug' + | 'title' + | 'description' + | 'comment' + | 'group' + | 'sortOrder' + | 'createdAt' + | 'updatedAt' + | 'publishedAt' + )[] + populate?: '*' | 'vendors' | 'vendors'[] + filters?: { + [key: string]: unknown + } + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path: { + id: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A string field */ + comment?: string + /** + * @description An enum field + * @enum {string} + */ + group: 'service' | 'solution' + /** + * @description An integer field + * @default 0 + */ + sortOrder: number + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.034Z + */ + publishedAt: string + /** @description A relational field */ + vendors?: components['schemas']['ApiVendorVendorDocument'][] + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'home-page/get/home_page': { + parameters: { + query?: { + fields?: ('createdAt' | 'updatedAt' | 'publishedAt')[] + populate?: '*' | 'sections' | 'sections'[] + filters?: { + [key: string]: unknown + } + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.036Z + */ + publishedAt: string + /** @description A dynamic zone field */ + sections?: unknown[] + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'home-page/put/home_page': { + parameters: { + query?: { + fields?: ('createdAt' | 'updatedAt' | 'publishedAt')[] + populate?: '*' | 'sections' | 'sections'[] + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + data: { + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.036Z + */ + publishedAt?: string + /** @description A dynamic zone field */ + sections?: unknown[] + } + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.038Z + */ + publishedAt: string + /** @description A dynamic zone field */ + sections?: unknown[] + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'home-page/delete/home_page': { + parameters: { + query?: { + fields?: ('createdAt' | 'updatedAt' | 'publishedAt')[] + populate?: '*' | 'sections' | 'sections'[] + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.039Z + */ + publishedAt: string + /** @description A dynamic zone field */ + sections?: unknown[] + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'site-config/get/site_config': { + parameters: { + query?: { + fields?: ('title' | 'description' | 'createdAt' | 'updatedAt' | 'publishedAt')[] + populate?: '*' | never | never[] + filters?: { + [key: string]: unknown + } + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A string field */ + title: string + /** @description A text field */ + description?: string + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.040Z + */ + publishedAt: string + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'site-config/put/site_config': { + parameters: { + query?: { + fields?: ('title' | 'description' | 'createdAt' | 'updatedAt' | 'publishedAt')[] + populate?: '*' | never | never[] + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + data: { + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.040Z + */ + publishedAt?: string + } + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A string field */ + title: string + /** @description A text field */ + description?: string + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.041Z + */ + publishedAt: string + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'site-config/delete/site_config': { + parameters: { + query?: { + fields?: ('title' | 'description' | 'createdAt' | 'updatedAt' | 'publishedAt')[] + populate?: '*' | never | never[] + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A string field */ + title: string + /** @description A text field */ + description?: string + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.041Z + */ + publishedAt: string + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'vendor/get/vendors': { + parameters: { + query?: { + fields?: ('slug' | 'title' | 'description' | 'createdAt' | 'updatedAt' | 'publishedAt')[] + filters?: { + [key: string]: unknown + } + _q?: string + pagination?: { + /** @description Include total count in response */ + withCount?: boolean + } & ( + | { + /** @description Page number (1-based) */ + page: number + /** @description Number of entries per page */ + pageSize: number + } + | { + /** @description Number of entries to skip */ + start: number + /** @description Maximum number of entries to return */ + limit: number + } + ) + sort?: + | ('slug' | 'title' | 'description' | 'createdAt' | 'updatedAt' | 'publishedAt') + | ('slug' | 'title' | 'description' | 'createdAt' | 'updatedAt' | 'publishedAt')[] + | { + [key: string]: 'asc' | 'desc' + } + | { + [key: string]: 'asc' | 'desc' + }[] + populate?: '*' | ('products' | 'categories') | ('products' | 'categories')[] + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.043Z + */ + publishedAt: string + /** @description A component field */ + products?: components['schemas']['SharedProductEntry'][] + /** @description A relational field */ + categories?: components['schemas']['ApiCategoryCategoryDocument'][] + }[] + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'vendor/post/vendors': { + parameters: { + query?: { + fields?: ('slug' | 'title' | 'description' | 'createdAt' | 'updatedAt' | 'publishedAt')[] + populate?: '*' | ('products' | 'categories') | ('products' | 'categories')[] + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + data: { + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.045Z + */ + publishedAt: string + /** @description A component field */ + products?: unknown[] + /** @description A relational field */ + categories?: string[] + } + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.045Z + */ + publishedAt: string + /** @description A component field */ + products?: components['schemas']['SharedProductEntry'][] + /** @description A relational field */ + categories?: components['schemas']['ApiCategoryCategoryDocument'][] + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'vendor/get/vendors_by_id': { + parameters: { + query?: { + fields?: ('slug' | 'title' | 'description' | 'createdAt' | 'updatedAt' | 'publishedAt')[] + populate?: '*' | ('products' | 'categories') | ('products' | 'categories')[] + filters?: { + [key: string]: unknown + } + sort?: + | ('slug' | 'title' | 'description' | 'createdAt' | 'updatedAt' | 'publishedAt') + | ('slug' | 'title' | 'description' | 'createdAt' | 'updatedAt' | 'publishedAt')[] + | { + [key: string]: 'asc' | 'desc' + } + | { + [key: string]: 'asc' | 'desc' + }[] + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path: { + id: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.044Z + */ + publishedAt: string + /** @description A component field */ + products?: components['schemas']['SharedProductEntry'][] + /** @description A relational field */ + categories?: components['schemas']['ApiCategoryCategoryDocument'][] + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'vendor/put/vendors_by_id': { + parameters: { + query?: { + fields?: ('slug' | 'title' | 'description' | 'createdAt' | 'updatedAt' | 'publishedAt')[] + populate?: '*' | ('products' | 'categories') | ('products' | 'categories')[] + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path: { + id: string + } + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + data: { + /** @description A UID field */ + slug?: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.048Z + */ + publishedAt?: string + /** @description A component field */ + products?: unknown[] + /** @description A relational field */ + categories?: string[] + } + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.048Z + */ + publishedAt: string + /** @description A component field */ + products?: components['schemas']['SharedProductEntry'][] + /** @description A relational field */ + categories?: components['schemas']['ApiCategoryCategoryDocument'][] + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'vendor/delete/vendors_by_id': { + parameters: { + query?: { + fields?: ('slug' | 'title' | 'description' | 'createdAt' | 'updatedAt' | 'publishedAt')[] + populate?: '*' | ('products' | 'categories') | ('products' | 'categories')[] + filters?: { + [key: string]: unknown + } + status?: 'draft' | 'published' + hasPublishedVersion?: boolean | ('true' | 'false') + } + header?: never + path: { + id: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + /** + * Format: uuid + * @description The document ID, represented by a UUID + */ + documentId: string + id: string | number + /** @description A UID field */ + slug: string + /** @description A string field */ + title?: string + /** @description A text field */ + description?: string + /** @description A datetime field */ + createdAt?: string + /** @description A datetime field */ + updatedAt?: string + /** + * @description A datetime field + * @default 2026-04-05T08:39:04.049Z + */ + publishedAt: string + /** @description A component field */ + products?: components['schemas']['SharedProductEntry'][] + /** @description A relational field */ + categories?: components['schemas']['ApiCategoryCategoryDocument'][] + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'content-type-builder/get/content_type_builder_content_types': { + parameters: { + query: { + kind: 'collectionType' | 'singleType' + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + uid: string + plugin?: string + apiID: string + schema: { + displayName: string + singularName: string + pluralName: string + description: string + draftAndPublish: boolean + /** @enum {string} */ + kind: 'collectionType' | 'singleType' + collectionName?: string + attributes: { + [key: string]: + | { + /** @constant */ + type: 'media' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + multiple: boolean + required?: boolean + allowedTypes?: string[] + } + | { + /** @constant */ + type: 'relation' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + relation: string + target: string + targetAttribute: string | null + autoPopulate?: boolean + mappedBy?: string + inversedBy?: string + } + | { + /** @constant */ + type: 'component' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + component: string + repeatable: boolean + required?: boolean + min?: number + max?: number + } + | { + /** @constant */ + type: 'dynamiczone' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + components: string[] + required?: boolean + min?: number + max?: number + } + | { + /** @constant */ + type: 'uid' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + targetField?: string + } + | { + type: string + required?: boolean + unique?: boolean + default?: unknown + min?: number | string + max?: number | string + minLength?: number + maxLength?: number + enum?: string[] + regex?: string + private?: boolean + configurable?: boolean + pluginOptions?: { + [key: string]: unknown + } + } + } + visible: boolean + restrictRelationsTo: string[] | null + pluginOptions?: { + [key: string]: unknown + } + options?: { + [key: string]: unknown + } + reviewWorkflows?: boolean + populateCreatorFields?: boolean + comment?: string + version?: string + } + }[] + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'content-type-builder/get/content_type_builder_content_types_by_uid': { + parameters: { + query?: never + header?: never + path: { + uid: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + uid: string + plugin?: string + apiID: string + schema: { + displayName: string + singularName: string + pluralName: string + description: string + draftAndPublish: boolean + /** @enum {string} */ + kind: 'collectionType' | 'singleType' + collectionName?: string + attributes: { + [key: string]: + | { + /** @constant */ + type: 'media' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + multiple: boolean + required?: boolean + allowedTypes?: string[] + } + | { + /** @constant */ + type: 'relation' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + relation: string + target: string + targetAttribute: string | null + autoPopulate?: boolean + mappedBy?: string + inversedBy?: string + } + | { + /** @constant */ + type: 'component' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + component: string + repeatable: boolean + required?: boolean + min?: number + max?: number + } + | { + /** @constant */ + type: 'dynamiczone' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + components: string[] + required?: boolean + min?: number + max?: number + } + | { + /** @constant */ + type: 'uid' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + targetField?: string + } + | { + type: string + required?: boolean + unique?: boolean + default?: unknown + min?: number | string + max?: number | string + minLength?: number + maxLength?: number + enum?: string[] + regex?: string + private?: boolean + configurable?: boolean + pluginOptions?: { + [key: string]: unknown + } + } + } + visible: boolean + restrictRelationsTo: string[] | null + pluginOptions?: { + [key: string]: unknown + } + options?: { + [key: string]: unknown + } + reviewWorkflows?: boolean + populateCreatorFields?: boolean + comment?: string + version?: string + } + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'content-type-builder/get/content_type_builder_components': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + uid: string + category: string + apiId: string + schema: { + displayName: string + description: string + icon?: string + connection?: string + collectionName?: string + attributes: { + [key: string]: + | { + /** @constant */ + type: 'media' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + multiple: boolean + required?: boolean + allowedTypes?: string[] + } + | { + /** @constant */ + type: 'relation' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + relation: string + target: string + targetAttribute: string | null + autoPopulate?: boolean + mappedBy?: string + inversedBy?: string + } + | { + /** @constant */ + type: 'component' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + component: string + repeatable: boolean + required?: boolean + min?: number + max?: number + } + | { + /** @constant */ + type: 'dynamiczone' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + components: string[] + required?: boolean + min?: number + max?: number + } + | { + /** @constant */ + type: 'uid' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + targetField?: string + } + | { + type: string + required?: boolean + unique?: boolean + default?: unknown + min?: number | string + max?: number | string + minLength?: number + maxLength?: number + enum?: string[] + regex?: string + private?: boolean + configurable?: boolean + pluginOptions?: { + [key: string]: unknown + } + } + } + pluginOptions?: { + [key: string]: unknown + } + } + }[] + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'content-type-builder/get/content_type_builder_components_by_uid': { + parameters: { + query?: never + header?: never + path: { + uid: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + data: { + uid: string + category: string + apiId: string + schema: { + displayName: string + description: string + icon?: string + connection?: string + collectionName?: string + attributes: { + [key: string]: + | { + /** @constant */ + type: 'media' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + multiple: boolean + required?: boolean + allowedTypes?: string[] + } + | { + /** @constant */ + type: 'relation' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + relation: string + target: string + targetAttribute: string | null + autoPopulate?: boolean + mappedBy?: string + inversedBy?: string + } + | { + /** @constant */ + type: 'component' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + component: string + repeatable: boolean + required?: boolean + min?: number + max?: number + } + | { + /** @constant */ + type: 'dynamiczone' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + components: string[] + required?: boolean + min?: number + max?: number + } + | { + /** @constant */ + type: 'uid' + /** @constant */ + configurable?: false + private?: boolean + pluginOptions?: { + [key: string]: unknown + } + targetField?: string + } + | { + type: string + required?: boolean + unique?: boolean + default?: unknown + min?: number | string + max?: number | string + minLength?: number + maxLength?: number + enum?: string[] + regex?: string + private?: boolean + configurable?: boolean + pluginOptions?: { + [key: string]: unknown + } + } + } + pluginOptions?: { + [key: string]: unknown + } + } + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'email/post/email': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + from?: string + to: string + cc?: string + bcc?: string + replyTo?: string + subject: string + text: string + html?: string + } & { + [key: string]: string + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': Record + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'upload/post/upload': { + parameters: { + query?: { + id?: number + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': + | { + id: number + /** Format: uuid */ + documentId: string + name: string + alternativeText?: string | null + caption?: string | null + width?: number + height?: number + formats?: { + [key: string]: unknown + } + hash: string + ext?: string + mime: string + size: number + url: string + previewUrl?: string | null + folder?: number + folderPath: string + provider: string + provider_metadata?: { + [key: string]: unknown + } | null + createdAt: string + updatedAt: string + createdBy?: number + updatedBy?: number + } + | { + id: number + /** Format: uuid */ + documentId: string + name: string + alternativeText?: string | null + caption?: string | null + width?: number + height?: number + formats?: { + [key: string]: unknown + } + hash: string + ext?: string + mime: string + size: number + url: string + previewUrl?: string | null + folder?: number + folderPath: string + provider: string + provider_metadata?: { + [key: string]: unknown + } | null + createdAt: string + updatedAt: string + createdBy?: number + updatedBy?: number + }[] + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'upload/get/upload_files': { + parameters: { + query?: { + fields?: string | string[] + populate?: + | '*' + | string + | string[] + | { + [key: string]: unknown + } + sort?: + | string + | string[] + | { + [key: string]: 'asc' | 'desc' + } + | { + [key: string]: 'asc' | 'desc' + }[] + pagination?: { + /** @description Include total count in response */ + withCount?: boolean + } & ( + | { + /** @description Page number (1-based) */ + page: number + /** @description Number of entries per page */ + pageSize: number + } + | { + /** @description Number of entries to skip */ + start: number + /** @description Maximum number of entries to return */ + limit: number + } + ) + filters?: { + [key: string]: unknown + } + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + id: number + /** Format: uuid */ + documentId: string + name: string + alternativeText?: string | null + caption?: string | null + width?: number + height?: number + formats?: { + [key: string]: unknown + } + hash: string + ext?: string + mime: string + size: number + url: string + previewUrl?: string | null + folder?: number + folderPath: string + provider: string + provider_metadata?: { + [key: string]: unknown + } | null + createdAt: string + updatedAt: string + createdBy?: number + updatedBy?: number + }[] + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'upload/get/upload_files_by_id': { + parameters: { + query?: { + fields?: string | string[] + populate?: + | '*' + | string + | string[] + | { + [key: string]: unknown + } + } + header?: never + path: { + id: number + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + id: number + /** Format: uuid */ + documentId: string + name: string + alternativeText?: string | null + caption?: string | null + width?: number + height?: number + formats?: { + [key: string]: unknown + } + hash: string + ext?: string + mime: string + size: number + url: string + previewUrl?: string | null + folder?: number + folderPath: string + provider: string + provider_metadata?: { + [key: string]: unknown + } | null + createdAt: string + updatedAt: string + createdBy?: number + updatedBy?: number + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'upload/delete/upload_files_by_id': { + parameters: { + query?: never + header?: never + path: { + id: number + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + id: number + /** Format: uuid */ + documentId: string + name: string + alternativeText?: string | null + caption?: string | null + width?: number + height?: number + formats?: { + [key: string]: unknown + } + hash: string + ext?: string + mime: string + size: number + url: string + previewUrl?: string | null + folder?: number + folderPath: string + provider: string + provider_metadata?: { + [key: string]: unknown + } | null + createdAt: string + updatedAt: string + createdBy?: number + updatedBy?: number + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'i18n/get/i18n_locales': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + id: number + /** Format: uuid */ + documentId: string + name: string + code: string + createdAt: string + updatedAt: string + publishedAt: string | null + isDefault: boolean + }[] + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/get/connect_____': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/post/auth_local': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + identifier: string + password: string + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + jwt: string + refreshToken?: string + user: { + id: number + documentId: string + username: string + email: string + provider: string + confirmed: boolean + blocked: boolean + role?: + | number + | { + id: number + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + } + createdAt: string + updatedAt: string + publishedAt: string + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/post/auth_local_register': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + username: string + /** Format: email */ + email: string + password: string + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': + | { + jwt: string + refreshToken?: string + user: { + id: number + documentId: string + username: string + email: string + provider: string + confirmed: boolean + blocked: boolean + role?: + | number + | { + id: number + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + } + createdAt: string + updatedAt: string + publishedAt: string + } + } + | { + user: { + id: number + documentId: string + username: string + email: string + provider: string + confirmed: boolean + blocked: boolean + role?: + | number + | { + id: number + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + } + createdAt: string + updatedAt: string + publishedAt: string + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/get/auth_by_provider_callback': { + parameters: { + query?: never + header?: never + path: { + provider: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + jwt: string + refreshToken?: string + user: { + id: number + documentId: string + username: string + email: string + provider: string + confirmed: boolean + blocked: boolean + role?: + | number + | { + id: number + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + } + createdAt: string + updatedAt: string + publishedAt: string + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/post/auth_forgot_password': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + /** Format: email */ + email: string + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + ok: boolean + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/post/auth_reset_password': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + code: string + password: string + passwordConfirmation: string + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + jwt: string + refreshToken?: string + user: { + id: number + documentId: string + username: string + email: string + provider: string + confirmed: boolean + blocked: boolean + role?: + | number + | { + id: number + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + } + createdAt: string + updatedAt: string + publishedAt: string + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/get/auth_email_confirmation': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/post/auth_send_email_confirmation': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + /** Format: email */ + email: string + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + email: string + sent: boolean + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/post/auth_change_password': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + currentPassword: string + password: string + passwordConfirmation: string + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + jwt: string + refreshToken?: string + user: { + id: number + documentId: string + username: string + email: string + provider: string + confirmed: boolean + blocked: boolean + role?: + | number + | { + id: number + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + } + createdAt: string + updatedAt: string + publishedAt: string + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/post/auth_refresh': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/post/auth_logout': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/get/users_count': { + parameters: { + query?: { + filters?: { + [key: string]: unknown + } + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': number + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/get/users': { + parameters: { + query?: { + fields?: string | string[] + populate?: + | '*' + | string + | string[] + | { + [key: string]: unknown + } + sort?: + | string + | string[] + | { + [key: string]: 'asc' | 'desc' + } + | { + [key: string]: 'asc' | 'desc' + }[] + pagination?: { + /** @description Include total count in response */ + withCount?: boolean + } & ( + | { + /** @description Page number (1-based) */ + page: number + /** @description Number of entries per page */ + pageSize: number + } + | { + /** @description Number of entries to skip */ + start: number + /** @description Maximum number of entries to return */ + limit: number + } + ) + filters?: { + [key: string]: unknown + } + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + id: number + documentId: string + username: string + email: string + provider: string + confirmed: boolean + blocked: boolean + role?: + | number + | { + id: number + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + } + createdAt: string + updatedAt: string + publishedAt: string + }[] + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/post/users': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + username: string + /** Format: email */ + email: string + password: string + role?: number + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + id: number + documentId: string + username: string + email: string + provider: string + confirmed: boolean + blocked: boolean + role?: + | number + | { + id: number + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + } + createdAt: string + updatedAt: string + publishedAt: string + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/get/users_me': { + parameters: { + query?: { + fields?: string | string[] + populate?: + | '*' + | string + | string[] + | { + [key: string]: unknown + } + } + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + id: number + documentId: string + username: string + email: string + provider: string + confirmed: boolean + blocked: boolean + role?: + | number + | { + id: number + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + } + createdAt: string + updatedAt: string + publishedAt: string + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/get/users_by_id': { + parameters: { + query?: { + fields?: string | string[] + populate?: + | '*' + | string + | string[] + | { + [key: string]: unknown + } + } + header?: never + path: { + id: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + id: number + documentId: string + username: string + email: string + provider: string + confirmed: boolean + blocked: boolean + role?: + | number + | { + id: number + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + } + createdAt: string + updatedAt: string + publishedAt: string + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/put/users_by_id': { + parameters: { + query?: never + header?: never + path: { + id: string + } + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + username?: string + /** Format: email */ + email?: string + password?: string + role?: number + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + id: number + documentId: string + username: string + email: string + provider: string + confirmed: boolean + blocked: boolean + role?: + | number + | { + id: number + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + } + createdAt: string + updatedAt: string + publishedAt: string + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/delete/users_by_id': { + parameters: { + query?: never + header?: never + path: { + id: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + id: number + documentId: string + username: string + email: string + provider: string + confirmed: boolean + blocked: boolean + role?: + | number + | { + id: number + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + } + createdAt: string + updatedAt: string + publishedAt: string + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/get/users_permissions_roles_by_id': { + parameters: { + query?: never + header?: never + path: { + id: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + role: { + id: number + documentId: string + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + publishedAt: string + nb_users?: number + permissions?: { + [key: string]: { + controllers: { + [key: string]: { + [key: string]: { + enabled: boolean + policy: string + } + } + } + } + } + users?: unknown[] + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/get/users_permissions_roles': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + roles: { + id: number + documentId: string + name: string + description: string | null + type: string + createdAt: string + updatedAt: string + publishedAt: string + nb_users?: number + permissions?: { + [key: string]: { + controllers: { + [key: string]: { + [key: string]: { + enabled: boolean + policy: string + } + } + } + } + } + users?: unknown[] + }[] + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/post/users_permissions_roles': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + name: string + description?: string + type: string + permissions?: { + [key: string]: unknown + } + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + ok: boolean + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/put/users_permissions_roles_by_role': { + parameters: { + query?: never + header?: never + path: { + role: string + } + cookie?: never + } + requestBody?: { + content: { + 'application/json': { + name?: string + description?: string + type?: string + permissions?: { + [key: string]: unknown + } + } + } + } + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + ok: boolean + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/delete/users_permissions_roles_by_role': { + parameters: { + query?: never + header?: never + path: { + role: string + } + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + ok: boolean + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } + 'users-permissions/get/users_permissions_permissions': { + parameters: { + query?: never + header?: never + path?: never + cookie?: never + } + requestBody?: never + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown + } + content: { + 'application/json': { + permissions: { + [key: string]: { + controllers: { + [key: string]: { + [key: string]: { + enabled: boolean + policy: string + } + } + } + } + } + } + } + } + /** @description Bad request */ + 400: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Forbidden */ + 403: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Not found */ + 404: { + headers: { + [name: string]: unknown + } + content?: never + } + /** @description Internal server error */ + 500: { + headers: { + [name: string]: unknown + } + content?: never + } + } + } +} diff --git a/src/api/schema.ts b/src/api/schema.ts new file mode 100644 index 0000000..35a8b27 --- /dev/null +++ b/src/api/schema.ts @@ -0,0 +1,28 @@ +import type { paths } from './paths' + +/** + * Strapi REST accepts bracket-style query keys (populate[0], populate[x][populate], …) + * that are not present in the OpenAPI document, so openapi-typescript cannot emit them. + * This widens `parameters.query` for each HTTP method while keeping known keys typed. + */ +type LooseStrapiQuery = [Q] extends [never] + ? never + : Q extends object + ? Q & { [key: string]: string | string[] | number | boolean | undefined } + : Q + +type WidenParameters = Params extends { query?: infer Q } + ? Omit & { query?: LooseStrapiQuery } + : Params + +type WidenOperation = Op extends { parameters: infer P } + ? Omit & { parameters: WidenParameters

} + : Op + +type HttpMethod = 'get' | 'put' | 'post' | 'delete' | 'options' | 'head' | 'patch' | 'trace' + +export type schema = { + [P in keyof paths]: { + [K in keyof paths[P]]: K extends HttpMethod ? WidenOperation : paths[P][K] + } +} diff --git a/src/pages/500.astro b/src/pages/500.astro new file mode 100644 index 0000000..2f94df4 --- /dev/null +++ b/src/pages/500.astro @@ -0,0 +1,11 @@ +--- +import Layout from '../layouts/Layout.astro' +import '../styles/globals.css' +--- + + +

+
500
+
Мы скоро всё починим
+
+