From 51a848cca043f8beede12ccee8c90fcf262947e2 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Tue, 10 Mar 2026 11:38:28 +0100 Subject: [PATCH 01/21] Update fumadocs Version --- lib/source-docs.ts | 2 +- lib/source-tech-docs.ts | 2 +- package.json | 21 +- pnpm-lock.yaml | 8643 +++++++++++++++++++++++++++++++++++++++ tsconfig.json | 33 +- 5 files changed, 8683 insertions(+), 18 deletions(-) create mode 100644 pnpm-lock.yaml diff --git a/lib/source-docs.ts b/lib/source-docs.ts index e6bed94..4a4f6ed 100644 --- a/lib/source-docs.ts +++ b/lib/source-docs.ts @@ -1,5 +1,5 @@ -import { docs } from '@/.source'; import { loader } from 'fumadocs-core/source'; +import { docs } from 'fumadocs-mdx:collections/server'; import { lucideIconsPlugin } from 'fumadocs-core/source/lucide-icons'; // See https://fumadocs.vercel.app/docs/headless/source-api for more info diff --git a/lib/source-tech-docs.ts b/lib/source-tech-docs.ts index 6392e3d..f85459b 100644 --- a/lib/source-tech-docs.ts +++ b/lib/source-tech-docs.ts @@ -1,4 +1,4 @@ -import { techDocs } from '@/.source'; +import { techDocs } from 'fumadocs-mdx:collections/server'; import { loader } from 'fumadocs-core/source'; import { lucideIconsPlugin } from 'fumadocs-core/source/lucide-icons'; diff --git a/package.json b/package.json index f12c587..26d39e1 100644 --- a/package.json +++ b/package.json @@ -10,26 +10,29 @@ }, "dependencies": { "@orama/orama": "^3.1.16", - "fumadocs-core": "16.0.1", - "fumadocs-mdx": "13.0.0", - "fumadocs-ui": "16.0.1", + "fumadocs-core": "16.6.8", + "fumadocs-mdx": "14.2.9", + "fumadocs-openapi": "10.3.15", + "fumadocs-ui": "16.6.8", "lucide-react": "^0.546.0", - "next": "15.3.4", - "react": "^19.2.0", - "react-dom": "^19.2.0", + "next": "16.1.6", + "react": "^19.2.4", + "react-dom": "^19.2.4", "swagger-ui-react": "^5.29.5" }, "devDependencies": { "@tailwindcss/postcss": "^4.1.15", "@types/mdx": "^2.0.13", - "@types/node": "24.9.1", + "@types/node": "25.3.3", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@types/swagger-ui-react": "^5.18.0", - "eslint": "^8", - "eslint-config-next": "15.3.4", + "eslint": "^10.0.2", + "eslint-config-next": "16.1.6", "postcss": "^8.5.6", + "shiki": "^4.0.1", "tailwindcss": "^4.1.15", + "tsx": "^4.21.0", "typescript": "^5.8.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..706a279 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,8643 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@orama/orama': + specifier: ^3.1.16 + version: 3.1.18 + fumadocs-core: + specifier: 16.6.8 + version: 16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6) + fumadocs-mdx: + specifier: 14.2.9 + version: 14.2.9(@types/mdast@4.0.4)(@types/mdx@2.0.13)(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + fumadocs-openapi: + specifier: 10.3.15 + version: 10.3.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(fumadocs-ui@16.6.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + fumadocs-ui: + specifier: 16.6.8 + version: 16.6.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.1) + lucide-react: + specifier: ^0.546.0 + version: 0.546.0(react@19.2.4) + next: + specifier: 16.1.6 + version: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: + specifier: ^19.2.4 + version: 19.2.4 + react-dom: + specifier: ^19.2.4 + version: 19.2.4(react@19.2.4) + swagger-ui-react: + specifier: ^5.29.5 + version: 5.32.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + devDependencies: + '@tailwindcss/postcss': + specifier: ^4.1.15 + version: 4.2.1 + '@types/mdx': + specifier: ^2.0.13 + version: 2.0.13 + '@types/node': + specifier: 25.3.3 + version: 25.3.3 + '@types/react': + specifier: ^19.2.2 + version: 19.2.14 + '@types/react-dom': + specifier: ^19.2.2 + version: 19.2.3(@types/react@19.2.14) + '@types/swagger-ui-react': + specifier: ^5.18.0 + version: 5.18.0 + eslint: + specifier: ^10.0.2 + version: 10.0.2(jiti@2.6.1) + eslint-config-next: + specifier: 16.1.6 + version: 16.1.6(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + postcss: + specifier: ^8.5.6 + version: 8.5.8 + shiki: + specifier: ^4.0.1 + version: 4.0.1 + tailwindcss: + specifier: ^4.1.15 + version: 4.2.1 + tsx: + specifier: ^4.21.0 + version: 4.21.0 + typescript: + specifier: ^5.8.3 + version: 5.9.3 + +packages: + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/runtime-corejs3@7.29.0': + resolution: {integrity: sha512-TgUkdp71C9pIbBcHudc+gXZnihEDOjUAmXO1VO4HHGES7QLZcShR0stfKIxLSNIYx2fqhmJChOjm/wkF8wv4gA==} + engines: {node: '>=6.9.0'} + + '@babel/runtime@7.28.6': + resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@emnapi/core@1.8.1': + resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} + + '@emnapi/runtime@1.8.1': + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + + '@esbuild/aix-ppc64@0.27.3': + resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.3': + resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.3': + resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.27.3': + resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.27.3': + resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.3': + resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.27.3': + resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.3': + resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.3': + resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.27.3': + resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.3': + resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.27.3': + resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.3': + resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.3': + resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.3': + resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.27.3': + resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.3': + resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.3': + resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.3': + resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.3': + resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.3': + resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.3': + resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.3': + resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.27.3': + resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.3': + resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.27.3': + resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.23.2': + resolution: {integrity: sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/config-helpers@0.5.2': + resolution: {integrity: sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/core@1.1.0': + resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/object-schema@3.0.2': + resolution: {integrity: sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/plugin-kit@0.6.0': + resolution: {integrity: sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@floating-ui/core@1.7.5': + resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} + + '@floating-ui/dom@1.7.6': + resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} + + '@floating-ui/react-dom@2.1.8': + resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.11': + resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} + + '@formatjs/fast-memoize@3.1.0': + resolution: {integrity: sha512-b5mvSWCI+XVKiz5WhnBCY3RJ4ZwfjAidU0yVlKa3d3MSgKmH1hC3tBGEAtYyN5mqL7N0G5x0BOUYyO8CEupWgg==} + + '@formatjs/intl-localematcher@0.8.1': + resolution: {integrity: sha512-xwEuwQFdtSq1UKtQnyTZWC+eHdv7Uygoa+H2k/9uzBVQjDyp9r20LNDNKedWXll7FssT3GRHvqsdJGYSUWqYFA==} + + '@fumadocs/tailwind@0.0.3': + resolution: {integrity: sha512-/FWcggMz9BhoX+13xBoZLX+XX9mYvJ50dkTqy3IfocJqua65ExcsKfxwKH8hgTO3vA5KnWv4+4jU7LaW2AjAmQ==} + peerDependencies: + tailwindcss: ^4.0.0 + peerDependenciesMeta: + tailwindcss: + optional: true + + '@fumari/json-schema-ts@0.0.2': + resolution: {integrity: sha512-A2x8nj45r8Kc3Gqa+HpWRF9uzIMc9dySB6L2R2kiyjLHXWBsZUX99Atj5+Yup/iRQXQ9s8AX+uAPwPze7Xn05A==} + engines: {node: '>=20.0.0'} + peerDependencies: + json-schema-typed: ^8.0.2 + peerDependenciesMeta: + json-schema-typed: + optional: true + + '@fumari/stf@1.0.3': + resolution: {integrity: sha512-rSHaCnCREbDFTD4BNU40ZNjvkhg5wcKzJ1OPsPeKbFzVo9gmm1JE2lGhqsfPhDhuBOV+ZNqZy9+5T+JudKY1NA==} + peerDependencies: + '@types/react': '*' + react: ^19.2.0 + react-dom: ^19.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@img/colour@1.1.0': + resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} + engines: {node: '>=18'} + + '@img/sharp-darwin-arm64@0.34.5': + resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.34.5': + resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.2.4': + resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.2.4': + resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.2.4': + resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-arm@1.2.4': + resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-ppc64@1.2.4': + resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-riscv64@1.2.4': + resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-s390x@1.2.4': + resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linux-x64@1.2.4': + resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@img/sharp-linux-arm64@0.34.5': + resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-arm@0.34.5': + resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-ppc64@0.34.5': + resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-riscv64@0.34.5': + resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-s390x@0.34.5': + resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@img/sharp-linux-x64@0.34.5': + resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@img/sharp-linuxmusl-arm64@0.34.5': + resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@img/sharp-linuxmusl-x64@0.34.5': + resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@img/sharp-wasm32@0.34.5': + resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-arm64@0.34.5': + resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.34.5': + resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.34.5': + resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@mdx-js/mdx@3.1.1': + resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} + + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + + '@next/env@16.1.6': + resolution: {integrity: sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==} + + '@next/eslint-plugin-next@16.1.6': + resolution: {integrity: sha512-/Qq3PTagA6+nYVfryAtQ7/9FEr/6YVyvOtl6rZnGsbReGLf0jZU6gkpr1FuChAQpvV46a78p4cmHOVP8mbfSMQ==} + + '@next/swc-darwin-arm64@16.1.6': + resolution: {integrity: sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@16.1.6': + resolution: {integrity: sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@16.1.6': + resolution: {integrity: sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@next/swc-linux-arm64-musl@16.1.6': + resolution: {integrity: sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@next/swc-linux-x64-gnu@16.1.6': + resolution: {integrity: sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@next/swc-linux-x64-musl@16.1.6': + resolution: {integrity: sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@next/swc-win32-arm64-msvc@16.1.6': + resolution: {integrity: sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-x64-msvc@16.1.6': + resolution: {integrity: sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@orama/orama@3.1.18': + resolution: {integrity: sha512-a61ljmRVVyG5MC/698C8/FfFDw5a8LOIvyOLW5fztgUXqUpc1jOfQzOitSCbge657OgXXThmY3Tk8fpiDb4UcA==} + engines: {node: '>= 20.0.0'} + + '@radix-ui/number@1.1.1': + resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} + + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + + '@radix-ui/react-accordion@1.2.12': + resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collapsible@1.1.12': + resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dialog@1.1.15': + resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-navigation-menu@1.2.14': + resolution: {integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popover@1.1.15': + resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.11': + resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-scroll-area@1.2.10': + resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-select@2.2.6': + resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.2.4': + resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-tabs@1.1.13': + resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.1': + resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@scalar/helpers@0.2.18': + resolution: {integrity: sha512-w1d4tpNEVZ293oB2BAgLrS0kVPUtG3eByNmOCJA5eK9vcT4D3cmsGtWjUaaqit0BQCsBFHK51rasGvSWnApYTw==} + engines: {node: '>=20'} + + '@scalar/json-magic@0.11.7': + resolution: {integrity: sha512-GVz9E0vXu+ecypkdn0biK1gbQVkK4QTTX1Hq3eMgxlLQC91wwiqWfCqwfhuX0LRu+Z5OmYhLhufDJEEh56rVgA==} + engines: {node: '>=20'} + + '@scalar/openapi-types@0.5.4': + resolution: {integrity: sha512-2pEbhprh8lLGDfUI6mNm9EV104pjb3+aJsXrFaqfgOSre7r6NlgM5HcSbsLjzDAnTikjJhJ3IMal1Rz8WVwiOw==} + engines: {node: '>=20'} + + '@scalar/openapi-upgrader@0.1.11': + resolution: {integrity: sha512-ngJcHGoCHmpWgYtNy08vmzFfLdQEkMpvaCQqNPPMNKq0QEXOv89e/rn+TZJZgPnRlY7fDIoIhn9lNgr+azBW+w==} + engines: {node: '>=20'} + + '@scarf/scarf@1.4.0': + resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} + + '@shikijs/core@4.0.1': + resolution: {integrity: sha512-vWvqi9JNgz1dRL9Nvog5wtx7RuNkf7MEPl2mU/cyUUxJeH1CAr3t+81h8zO8zs7DK6cKLMoU9TvukWIDjP4Lzg==} + engines: {node: '>=20'} + + '@shikijs/engine-javascript@4.0.1': + resolution: {integrity: sha512-DJK9NiwtGYqMuKCRO4Ip0FKNDQpmaiS+K5bFjJ7DWFn4zHueDWgaUG8kAofkrnXF6zPPYYQY7J5FYVW9MbZyBg==} + engines: {node: '>=20'} + + '@shikijs/engine-oniguruma@4.0.1': + resolution: {integrity: sha512-oCWdCTDch3J8Kc0OZJ98KuUPC02O1VqIE3W/e2uvrHqTxYRR21RGEJMtchrgrxhsoJJCzmIciKsqG+q/yD+Cxg==} + engines: {node: '>=20'} + + '@shikijs/langs@4.0.1': + resolution: {integrity: sha512-v/mluaybWdnGJR4GqAR6zh8qAZohW9k+cGYT28Y7M8+jLbC0l4yG085O1A+WkseHTn+awd+P3UBymb2+MXFc8w==} + engines: {node: '>=20'} + + '@shikijs/primitive@4.0.1': + resolution: {integrity: sha512-ns0hHZc5eWZuvuIEJz2pTx3Qecz0aRVYumVQJ8JgWY2tq/dH8WxdcVM49Fc2NsHEILNIT6vfdW9MF26RANWiTA==} + engines: {node: '>=20'} + + '@shikijs/rehype@4.0.1': + resolution: {integrity: sha512-bx7bYA0/p/pgeEICaPO0jT6TXrXHmr9tGRUDhOMy1cAUN2YA0iANfXX7seBnImy8DGu/rxm1ij9/ZofYrAaUjQ==} + engines: {node: '>=20'} + + '@shikijs/themes@4.0.1': + resolution: {integrity: sha512-FW41C/D6j/yKQkzVdjrRPiJCtgeDaYRJFEyCKFCINuRJRj9WcmubhP4KQHPZ4+9eT87jruSrYPyoblNRyDFzvA==} + engines: {node: '>=20'} + + '@shikijs/transformers@4.0.1': + resolution: {integrity: sha512-oE46W2eHpvD06+C0MBthd2YrDM6cktvJDFl764tOEXxfr3dAJhxMc0uNZ2tQXp+bkMgl4E7IL88Mj9RnSqiayw==} + engines: {node: '>=20'} + + '@shikijs/types@4.0.1': + resolution: {integrity: sha512-EaygPEn57+jJ76mw+nTLvIpJMAcMPokFbrF8lufsZP7Ukk+ToJYEcswN1G0e49nUZAq7aCQtoeW219A8HK1ZOw==} + engines: {node: '>=20'} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + + '@swagger-api/apidom-ast@1.6.0': + resolution: {integrity: sha512-ez1KnBdAzoh5a6ijDXzu5nADkVZXlnL1RkLl8n2u2tjiNg9597xxmFdEHLVa31Vxr1yYj0WtYGLA5e2Kp0KNrQ==} + + '@swagger-api/apidom-core@1.6.0': + resolution: {integrity: sha512-gA1MVoXe19sjFLKGkWxp5VvSw3Tk0CSChfItJjFeFHpLSGrfm+LlXp37TmNSns53Ky0F7x7TB/5kAX5I/TO4xw==} + + '@swagger-api/apidom-error@1.6.0': + resolution: {integrity: sha512-xp/cQ1xQ/4Vd/hhQfONK7ea9oVc3JUXAYyfRzvDR0lxISly/SyD2jMcqXzHtrylBAnv7V2HSsbC1BWo7ZJDLSQ==} + + '@swagger-api/apidom-json-pointer@1.6.0': + resolution: {integrity: sha512-RO6P5Gt64AnthGXKeqIFjQCLVFbAJvLYAb67TkvRQ9US4lNixFtFsYJnhLCC4ymz4dTT1hacG0cmTRGcEHF9ig==} + + '@swagger-api/apidom-ns-api-design-systems@1.6.0': + resolution: {integrity: sha512-EYJfQ4JYuUo2J4QiiLnA/8LmM1k7AQcf1XVE+NrIpZ1160GIzqE+W5uOXkhAOImkP2Cb7EZZdE2cFE/tMYxNvw==} + + '@swagger-api/apidom-ns-arazzo-1@1.6.0': + resolution: {integrity: sha512-5rF8PyBiIHh6NfC5Y0WypW11X6hQIWr88EKNOQbBuT/nnzAsOznrUCfQ99FYGLucwdOHaMIBn/b/n4ejGBto/A==} + + '@swagger-api/apidom-ns-asyncapi-2@1.6.0': + resolution: {integrity: sha512-tOodfX+o7lonEAnSAxet7nCayW+EqtKPegT06WXt7Llq1LS9eYZ9YzXdFgIwCm8UzfEpZdVLqtxbdLX9vuUtSg==} + + '@swagger-api/apidom-ns-asyncapi-3@1.6.0': + resolution: {integrity: sha512-lRMvwTdtuPcwJEYLTX/UGtECpHi9UNYeT9rmWMw3LiKZrZzYc2L8q4ipPbpWwH8t7QfsF2u0iggCODU99lXCnw==} + + '@swagger-api/apidom-ns-json-schema-2019-09@1.6.0': + resolution: {integrity: sha512-dee1i8wcAFgDEOzTsyoCzQhFLZ2JKzkK5KkRuryabvwS0hG2mKlogToFc8cO2MkkiLSpERm7DREALwSTFVHa0w==} + + '@swagger-api/apidom-ns-json-schema-2020-12@1.6.0': + resolution: {integrity: sha512-ldTxSnnIXskwpN6yCJkasqs32pJXwoXyad95crKT0xjZZr4fTrcAXXIyzdjBubiY9tK6elSrQGQxinJcV7ivWw==} + + '@swagger-api/apidom-ns-json-schema-draft-4@1.6.0': + resolution: {integrity: sha512-t9HvHwrevEG7usosO6AdXmC8oYqje5nxHpUmODr72tUtCeAeGEGEb9lgqx7fBhjc3BYsRzOL1hX56m1gjEyCog==} + + '@swagger-api/apidom-ns-json-schema-draft-6@1.6.0': + resolution: {integrity: sha512-aoyvQWgAOcZGTe5OfJ3r24DvXHHbrkKtAnxTOEdZzV/uOm6/cbuT8m02+aMOqWPxei1naC3ZHW9iHrETtfgV3w==} + + '@swagger-api/apidom-ns-json-schema-draft-7@1.6.0': + resolution: {integrity: sha512-GjmC4+AHQh22fRZOmV+jSYMJTXh243XvdACfIQ//39kQu7gQsimF4PVSY2IgWSvS/I1ukWdPBYmDvOKryBPGrw==} + + '@swagger-api/apidom-ns-openapi-2@1.6.0': + resolution: {integrity: sha512-xbmYzagnB8rO7sYwNGVyxYbNBkjCWnMhlnMrxkPtfQ/2u2ANAmTnCB/S/cMswX5XofiRJbznKAjLDSKBS+mLpQ==} + + '@swagger-api/apidom-ns-openapi-3-0@1.6.0': + resolution: {integrity: sha512-AOvW7a2H27inepcTBAWaBMjJLrCh5IPWD4nTU+gysULC7IW6gphO8hj3iUuTmFBcGh9be89GBbvv2y/EGAfx9w==} + + '@swagger-api/apidom-ns-openapi-3-1@1.6.0': + resolution: {integrity: sha512-jCVypc8503zDSxAQlyV8j1vzwc75VBdWHtE2O0F+q5j9qNtGxw/ekbDkgrydYRaGBl92mf16dtPjtp5LwJD0Hw==} + + '@swagger-api/apidom-ns-openapi-3-2@1.6.0': + resolution: {integrity: sha512-QcFAUucaPaWiOKOEaaGqSfK3OtjeGJodWZLsuBQ0vrHaHkWyQ7jwsM1DJbc1Y8geOBeD2wIwdrdRjoulmqU1SA==} + + '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.6.0': + resolution: {integrity: sha512-vz/9k0X/kh6mLm+Fi+LGNk/yyFq28wxI29ZVLW+b7ulcODikv+NaDnyN2n2kLKCvIchPATzAEvqMvVMuuQwWlg==} + + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.6.0': + resolution: {integrity: sha512-QAq4H6YzRtysSpvLtlJ8WZ22/1Mht+/iarrUOijxDZQPAGfYeUoIicnCqxkVZYSea85sQl+3kiCCB3nhSH+L0g==} + + '@swagger-api/apidom-parser-adapter-arazzo-json-1@1.6.0': + resolution: {integrity: sha512-syKPG3a9IGRvlGhXIEUzWhwbEuFbj+UwwtqaKu8zu771V+DRtH+wxyOkX54vKAIlApz/FgeUbmlWA1ZtYBlSIQ==} + + '@swagger-api/apidom-parser-adapter-arazzo-yaml-1@1.6.0': + resolution: {integrity: sha512-IVVLn+a8Q1iQcQsm4tXiAPghHJuJSB1rhIlDyHe3tSQgt9HOSiVpbnJDpwE/JBxxDxSAkeT6Ovo+fi2T5AmHYg==} + + '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.6.0': + resolution: {integrity: sha512-aSUi22ELTDvdCLA3nIUOehuNBcHSeCqU7S7YNiHP/mwE4Q07pwQrYXijH2PROfCdjlZNNN34m6Ptakd92jliJQ==} + + '@swagger-api/apidom-parser-adapter-asyncapi-json-3@1.6.0': + resolution: {integrity: sha512-Ic53vcFF9zniDyCXOGSwwuAdEBUn5lFEAa0m2i30R36cQFHBCCuvbzbMQjWdr+oML0Aw4XoqOwZCQgkJJICpPA==} + + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.6.0': + resolution: {integrity: sha512-d/w7X+T4vT+KPqb+8xUm6n4pbHsGB28jdxE9rNVbxhu6D3owny2uxfglwaFh4fJG6FQMavCwl/QzfB4newdoKQ==} + + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3@1.6.0': + resolution: {integrity: sha512-Wmf0LY59TZxQhqrJU2pcnUikcChVB4IqGPgjtOFLUoqPpz8FSwYbJ/SPnSMSl+QuncxROheSFsgZ6Tupv0sPHw==} + + '@swagger-api/apidom-parser-adapter-json@1.6.0': + resolution: {integrity: sha512-WdAS+dBAB2t18HuUgSZy5b8JM7uXfn1RlPymJNRMUsrKYCTtPrQ/0q3YfnBjPhtjSSNCp+p1wajxHAFS7cj2VA==} + + '@swagger-api/apidom-parser-adapter-openapi-json-2@1.6.0': + resolution: {integrity: sha512-Q36W1FzdVaY7Oh98533dzCUghwb8k3ZMdlnV37V1H13FlUkj3tVZiWaeaCLwIakzQ7XXYaQTOP+VrRhDRjzhUA==} + + '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.6.0': + resolution: {integrity: sha512-UY+obOLTPHJvnXscdMY9XwZyuqcnBe6cu9TURjJgkO/QpOpPDqqZoRyurKZgRrX0Pv9B1zR3EIzhl01u/jeUaw==} + + '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.6.0': + resolution: {integrity: sha512-4ch04/96lYMXQu6odqa6H0aJmV8UefnBJKX1CPuL4qcPSPMFCurcXHGpPHrwMu1p/4Q9H+yRVlYeNQV10xvM0w==} + + '@swagger-api/apidom-parser-adapter-openapi-json-3-2@1.6.0': + resolution: {integrity: sha512-fWR2gjMQg00QIimcXQMSVeLnCH/2iuDD/Dx8TzVHmKV/IKlu+TnmIVosdlDfRmOB+4duwU6/yfoA79IEhFeZdw==} + + '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.6.0': + resolution: {integrity: sha512-dkEh1Rw9uvuIAOTfKjWRX2rLWP+xJ/Eqdkqeo0I0BWFKXX49YcDpHJV4XHpmd5FbsjJ9vBYr0hAmkbl32TtR4g==} + + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.6.0': + resolution: {integrity: sha512-6azq5YonWdzHcO9llK9zn1a+rGxlTz2Uf8p8NWDQnl2AZ56neDLYEL3mNDlrMXAy8dSJIHw+u9VF1OOzdslIHQ==} + + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.6.0': + resolution: {integrity: sha512-g2tGCXyIAC0IA6JjA0HVxHWyCovyfAxDQ+pMAJ6qm4PfrZHB+oXKWKZHNNmQaFiKdc/SVdMQq6Up0mXOQs7IOQ==} + + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2@1.6.0': + resolution: {integrity: sha512-NGkdG9X5Svi89ZBluNseyUBNdgB9MkbTTNmerVKKOmCCHaVbzIb6UFPXf1MifSFyT+wTeGZk6WZLgRIDsTAZ5Q==} + + '@swagger-api/apidom-parser-adapter-yaml-1-2@1.6.0': + resolution: {integrity: sha512-UwSE5pPUJ+ag7ZCbesgx/SJ8zUD3Sx+2U4AD3/1G1EJ+0gb7FMYgihuOT8ujmBfZVGGm3HMIEIa1w3zha08v2g==} + + '@swagger-api/apidom-reference@1.6.0': + resolution: {integrity: sha512-gYTDfWQM1heqrCCrCsZH+EWDyAkIGqEJnSJcVWKngwOkXJKeUwat8p1TOW4q3rkaTT+fBaYbrjTr9SkFtVbdMg==} + + '@swaggerexpert/cookie@2.0.2': + resolution: {integrity: sha512-DPI8YJ0Vznk4CT+ekn3rcFNq1uQwvUHZhH6WvTSPD0YKBIlMS9ur2RYKghXuxxOiqOam/i4lHJH4xTIiTgs3Mg==} + engines: {node: '>=12.20.0'} + + '@swaggerexpert/json-pointer@2.10.2': + resolution: {integrity: sha512-qMx1nOrzoB+PF+pzb26Q4Tc2sOlrx9Ba2UBNX9hB31Omrq+QoZ2Gly0KLrQWw4Of1AQ4J9lnD+XOdwOdcdXqqw==} + engines: {node: '>=12.20.0'} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@tailwindcss/node@4.2.1': + resolution: {integrity: sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==} + + '@tailwindcss/oxide-android-arm64@4.2.1': + resolution: {integrity: sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.2.1': + resolution: {integrity: sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.2.1': + resolution: {integrity: sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==} + engines: {node: '>= 20'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.2.1': + resolution: {integrity: sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==} + engines: {node: '>= 20'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1': + resolution: {integrity: sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==} + engines: {node: '>= 20'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.2.1': + resolution: {integrity: sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.2.1': + resolution: {integrity: sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.2.1': + resolution: {integrity: sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-x64-musl@4.2.1': + resolution: {integrity: sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==} + engines: {node: '>= 20'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.2.1': + resolution: {integrity: sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.2.1': + resolution: {integrity: sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==} + engines: {node: '>= 20'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.2.1': + resolution: {integrity: sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==} + engines: {node: '>= 20'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.2.1': + resolution: {integrity: sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw==} + engines: {node: '>= 20'} + + '@tailwindcss/postcss@4.2.1': + resolution: {integrity: sha512-OEwGIBnXnj7zJeonOh6ZG9woofIjGrd2BORfvE5p9USYKDCZoQmfqLcfNiRWoJlRWLdNPn2IgVZuWAOM4iTYMw==} + + '@tree-sitter-grammars/tree-sitter-yaml@0.7.1': + resolution: {integrity: sha512-AynBwkIoQCTgjDR33bDUp9Mqq+YTco0is3n5hRApMqG9of/6A4eQsfC1/uSEeHSUyMQSYawcAWamsexnVpIP4Q==} + peerDependencies: + tree-sitter: ^0.22.4 + peerDependenciesMeta: + tree-sitter: + optional: true + + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/node@25.3.3': + resolution: {integrity: sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==} + + '@types/prismjs@1.26.6': + resolution: {integrity: sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==} + + '@types/ramda@0.30.2': + resolution: {integrity: sha512-PyzHvjCalm2BRYjAU6nIB3TprYwMNOUY/7P/N8bSzp9W/yM2YrtGtAnnVtaCNSeOZ8DzKyFDvaqQs7LnWwwmBA==} + + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + peerDependencies: + '@types/react': ^19.2.0 + + '@types/react@19.2.14': + resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} + + '@types/swagger-ui-react@5.18.0': + resolution: {integrity: sha512-c2M9adVG7t28t1pq19K9Jt20VLQf0P/fwJwnfcmsVVsdkwCWhRmbKDu+tIs0/NGwJ/7GY8lBx+iKZxuDI5gDbw==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/use-sync-external-store@0.0.6': + resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} + + '@typescript-eslint/eslint-plugin@8.56.1': + resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.56.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/parser@8.56.1': + resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.56.1': + resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/scope-manager@8.56.1': + resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.56.1': + resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/type-utils@8.56.1': + resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/types@8.56.1': + resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.56.1': + resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/utils@8.56.1': + resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/visitor-keys@8.56.1': + resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + cpu: [x64] + os: [win32] + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} + + apg-lite@1.0.5: + resolution: {integrity: sha512-SlI+nLMQDzCZfS39ihzjGp3JNBQfJXyMi6cg9tkLOCPVErgFsUIAEdO9IezR7kbP5Xd0ozcPNQBkf9TO5cHgWw==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-includes@3.1.9: + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.6: + resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + autolinker@3.16.2: + resolution: {integrity: sha512-JiYl7j2Z19F9NdTmirENSUUIIL/9MytEWtmzhfmsKPCp9E+G35Y0UNCMoM9tFigxT59qSc8Ml2dlZXOCVTYwuA==} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.11.1: + resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==} + engines: {node: '>=4'} + + axios@1.13.6: + resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + baseline-browser-mapping@2.10.0: + resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} + engines: {node: '>=6.0.0'} + hasBin: true + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@5.0.4: + resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + engines: {node: 18 || 20 || >=22} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + caniuse-lite@1.0.30001777: + resolution: {integrity: sha512-tmN+fJxroPndC74efCdp12j+0rk0RHwV5Jwa1zWaFVyw2ZxAuPeG8ZgWC3Wz7uSjT3qMRQ5XHZ4COgQmsCMJAQ==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + compute-scroll-into-view@3.1.1: + resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + + core-js-pure@3.48.0: + resolution: {integrity: sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + dompurify@3.2.6: + resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==} + + drange@1.1.1: + resolution: {integrity: sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==} + engines: {node: '>=4'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + electron-to-chromium@1.5.307: + resolution: {integrity: sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + enhanced-resolve@5.20.0: + resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==} + engines: {node: '>=10.13.0'} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + es-abstract@1.24.1: + resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.2.2: + resolution: {integrity: sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-config-next@16.1.6: + resolution: {integrity: sha512-vKq40io2B0XtkkNDYyleATwblNt8xuh3FWp8SpSz3pt7P01OkBFlKsJZ2mWt5WsCySlDQLckb1zMY9yE9Qy0LA==} + peerDependencies: + eslint: '>=9.0.0' + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.10.1: + resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.12.1: + resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.32.0: + resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-react-hooks@7.0.1: + resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + + eslint-plugin-react@7.37.5: + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-scope@9.1.1: + resolution: {integrity: sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@10.0.2: + resolution: {integrity: sha512-uYixubwmqJZH+KLVYIVKY1JQt7tysXhtj21WSvjcSmU5SVNzMus1bgLe+pAt816yQ8opKfheVVoPLqvVMGejYw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@11.1.1: + resolution: {integrity: sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrap@2.2.3: + resolution: {integrity: sha512-8fOS+GIGCQZl/ZIlhl59htOlms6U8NvX6ZYgYHpRU/b6tVSh3uHkOHZikl3D4cMbYM0JlpBe+p/BkZEi8J9XIQ==} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-value-to-estree@3.5.0: + resolution: {integrity: sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + + fast-json-patch@3.1.1: + resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + + fast-xml-builder@1.0.0: + resolution: {integrity: sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ==} + + fast-xml-parser@5.4.2: + resolution: {integrity: sha512-pw/6pIl4k0CSpElPEJhDppLzaixDEuWui2CUQQBH/ECDf7+y6YwA4Gf7Tyb0Rfe4DIMuZipYj4AEL0nACKglvQ==} + hasBin: true + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + fault@1.0.4: + resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.4: + resolution: {integrity: sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==} + + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + foreach@2.0.6: + resolution: {integrity: sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==} + + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + engines: {node: '>= 6'} + + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + + framer-motion@12.35.0: + resolution: {integrity: sha512-w8hghCMQ4oq10j6aZh3U2yeEQv5K69O/seDI/41PK4HtgkLrcBovUNc0ayBC3UyyU7V1mrY2yLzvYdWJX9pGZQ==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + fumadocs-core@16.6.8: + resolution: {integrity: sha512-cTdV0+cM+Rp+ofYM0y9gWO8xrzxHIvHTBGWQvA7bgBDpb4yQBEr5zdbz70b42OXzSFIlt1vr1HzTW1CBp69W2w==} + peerDependencies: + '@mdx-js/mdx': '*' + '@mixedbread/sdk': ^0.46.0 + '@orama/core': 1.x.x + '@oramacloud/client': 2.x.x + '@tanstack/react-router': 1.x.x + '@types/estree-jsx': '*' + '@types/hast': '*' + '@types/mdast': '*' + '@types/react': '*' + algoliasearch: 5.x.x + lucide-react: '*' + next: 16.x.x + react: ^19.2.0 + react-dom: ^19.2.0 + react-router: 7.x.x + waku: ^0.26.0 || ^0.27.0 || ^1.0.0 + zod: 4.x.x + peerDependenciesMeta: + '@mdx-js/mdx': + optional: true + '@mixedbread/sdk': + optional: true + '@orama/core': + optional: true + '@oramacloud/client': + optional: true + '@tanstack/react-router': + optional: true + '@types/estree-jsx': + optional: true + '@types/hast': + optional: true + '@types/mdast': + optional: true + '@types/react': + optional: true + algoliasearch: + optional: true + lucide-react: + optional: true + next: + optional: true + react: + optional: true + react-dom: + optional: true + react-router: + optional: true + waku: + optional: true + zod: + optional: true + + fumadocs-mdx@14.2.9: + resolution: {integrity: sha512-5QbFj3KyNgojjpUsD5Xw2W+ofN9l1WiIxzthwFzGoHOLIoJkdCN4AjHcINC+YSo89d/oZlradrrKRd3uHwVKBA==} + hasBin: true + peerDependencies: + '@fumadocs/mdx-remote': ^1.4.0 + '@types/mdast': '*' + '@types/mdx': '*' + '@types/react': '*' + fumadocs-core: ^15.0.0 || ^16.0.0 + mdast-util-directive: '*' + next: ^15.3.0 || ^16.0.0 + react: '*' + vite: 6.x.x || 7.x.x + peerDependenciesMeta: + '@fumadocs/mdx-remote': + optional: true + '@types/mdast': + optional: true + '@types/mdx': + optional: true + '@types/react': + optional: true + mdast-util-directive: + optional: true + next: + optional: true + react: + optional: true + vite: + optional: true + + fumadocs-openapi@10.3.15: + resolution: {integrity: sha512-VI89XV1jR6/WzCzuPwTzFWVb1e/OezR0e4y+8M/p1Tjfnj6y5qFJAss/b4ZaTduhRKA+me7rlsZyOlfYjc70eQ==} + peerDependencies: + '@scalar/api-client-react': '*' + '@types/react': '*' + fumadocs-core: ^16.5.0 + fumadocs-ui: ^16.5.0 + json-schema-typed: '*' + react: ^19.2.0 + react-dom: ^19.2.0 + peerDependenciesMeta: + '@scalar/api-client-react': + optional: true + '@types/react': + optional: true + json-schema-typed: + optional: true + + fumadocs-ui@16.6.8: + resolution: {integrity: sha512-/1V91jEm4mNKwM7Fsdfd0crVZ0pKo1MZ4EmGfXX2JuGXvhgJ8JQVUycUmWDdNw6aL8ArQeiotMu/7CIj29UJdQ==} + peerDependencies: + '@takumi-rs/image-response': ^0.68.17 + '@types/react': '*' + fumadocs-core: 16.6.8 + next: 16.x.x + react: ^19.2.0 + react-dom: ^19.2.0 + peerDependenciesMeta: + '@takumi-rs/image-response': + optional: true + '@types/react': + optional: true + next: + optional: true + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.13.6: + resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} + + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + globals@16.4.0: + resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-from-parse5@8.0.3: + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-raw@9.1.0: + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} + + hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + + hast-util-to-parse5@8.0.1: + resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} + + hast-util-to-string@3.0.1: + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@9.0.1: + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + + hermes-estree@0.25.1: + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + + hermes-parser@0.25.1: + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + + highlightjs-vue@1.0.0: + resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + image-size@2.0.2: + resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} + engines: {node: '>=16.x'} + hasBin: true + + immutable@3.8.3: + resolution: {integrity: sha512-AUY/VyX0E5XlibOmWt10uabJzam1zlYjwiEgQSDc5+UIkFNaF9WM0JxXKaNMGf+F/ffUF+7kRKXM9A7C0xXqMg==} + engines: {node: '>=0.10.0'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + inline-style-parser@0.2.7: + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + js-file-download@0.4.12: + resolution: {integrity: sha512-rML+NkoD08p5Dllpjo0ffy4jRHeY6Zsapvr/W86N7E0yuzAO6qa5X9+xog6zQNlH102J7IXljNY2FtS6Lj3ucg==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-pointer@0.6.2: + resolution: {integrity: sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lightningcss-android-arm64@1.31.1: + resolution: {integrity: sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.31.1: + resolution: {integrity: sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.31.1: + resolution: {integrity: sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.31.1: + resolution: {integrity: sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.31.1: + resolution: {integrity: sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.31.1: + resolution: {integrity: sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.31.1: + resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.31.1: + resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.31.1: + resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.31.1: + resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.31.1: + resolution: {integrity: sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.31.1: + resolution: {integrity: sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==} + engines: {node: '>= 12.0.0'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lowlight@1.20.0: + resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lucide-react@0.546.0: + resolution: {integrity: sha512-Z94u6fKT43lKeYHiVyvyR8fT7pwCzDu7RyMPpTvh054+xahSgj4HFQ+NmflvzdXsoAjYGdCguGaFKYuvq0ThCQ==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + lucide-react@0.575.0: + resolution: {integrity: sha512-VuXgKZrk0uiDlWjGGXmKV6MSk9Yy4l10qgVvzGn2AWBx1Ylt0iBexKOAoA6I7JO3m+M9oeovJd3yYENfkUbOeg==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + + micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minim@0.23.8: + resolution: {integrity: sha512-bjdr2xW1dBCMsMGGsUeqM4eFI60m94+szhxWys+B1ztIt6gWSfeGBdSVCIawezeHYLYn0j6zrsXdQS/JllBzww==} + engines: {node: '>=6'} + + minimatch@10.2.4: + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + engines: {node: 18 || 20 || >=22} + + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + motion-dom@12.35.0: + resolution: {integrity: sha512-FFMLEnIejK/zDABn+vqGVAUN4T0+3fw+cVAY8MMT65yR+j5uMuvWdd4npACWhh94OVWQs79CrBBuwOwGRZAQiA==} + + motion-utils@12.29.2: + resolution: {integrity: sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==} + + motion@12.35.0: + resolution: {integrity: sha512-BQUhNUIGvUcwXCzwmnT1JpjUqab34lIwxHnXUyWRht1WC1vAyp7/4qgMiUXxN3K6hgUhyoR+HNnLeQMwUZjVjw==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} + + next-themes@0.4.6: + resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + + next@16.1.6: + resolution: {integrity: sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==} + engines: {node: '>=20.9.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.51.1 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + + node-abort-controller@3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + + node-addon-api@8.6.0: + resolution: {integrity: sha512-gBVjCaqDlRUk0EwoPNKzIr9KkS9041G/q31IBShPs1Xz6UTA+EXdZADbzqAJQrpDRq71CIMnOP5VMut3SL0z5Q==} + engines: {node: ^18 || ^20 || >= 21} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead + + node-exports-info@1.6.0: + resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} + engines: {node: '>= 0.4'} + + node-fetch-commonjs@3.3.2: + resolution: {integrity: sha512-VBlAiynj3VMLrotgwOS3OyECFxas5y7ltLcK4t41lMUZeaK15Ym4QRkqN0EQKAFL42q9i21EPKjzLUPfltR72A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + node-releases@2.0.36: + resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} + + npm-to-yarn@3.0.1: + resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + + oniguruma-parser@0.12.1: + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + + oniguruma-to-es@4.3.4: + resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==} + + openapi-path-templating@2.2.1: + resolution: {integrity: sha512-eN14VrDvl/YyGxxrkGOHkVkWEoPyhyeydOUrbvjoz8K5eIGgELASwN1eqFOJ2CTQMGCy2EntOK1KdtJ8ZMekcg==} + engines: {node: '>=12.20.0'} + + openapi-sampler@1.7.1: + resolution: {integrity: sha512-pKFRROcYyxRt9GIn0NmS+GkWPS19l0CLQRYAnHk4m1Qp+G43ssVNcfRMs1sLkGrVMuFWO4P4F6YMXeXnfyFGuQ==} + + openapi-server-url-templating@1.3.0: + resolution: {integrity: sha512-DPlCms3KKEbjVQb0spV6Awfn6UWNheuG/+folQPzh/wUaKwuqvj8zt5gagD7qoyxtE03cIiKPgLFS3Q8Bz00uQ==} + engines: {node: '>=12.20.0'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-to-regexp@8.3.0: + resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + engines: {node: '>=4'} + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.5.8: + resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + ramda-adjunct@5.1.0: + resolution: {integrity: sha512-8qCpl2vZBXEJyNbi4zqcgdfHtcdsWjOGbiNSEnEBrM6Y0OKOT8UxJbIVGm1TIcjaSu2MxaWcgtsNlKlCk7o7qg==} + engines: {node: '>=0.10.3'} + peerDependencies: + ramda: '>= 0.30.0' + + ramda@0.30.1: + resolution: {integrity: sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw==} + + randexp@0.5.3: + resolution: {integrity: sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w==} + engines: {node: '>=4'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + react-copy-to-clipboard@5.1.0: + resolution: {integrity: sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==} + peerDependencies: + react: ^15.3.0 || 16 || 17 || 18 + + react-debounce-input@3.3.0: + resolution: {integrity: sha512-VEqkvs8JvY/IIZvh71Z0TC+mdbxERvYF33RcebnodlsUZ8RSgyKe2VWaHXv4+/8aoOgXLxWrdsYs2hDhcwbUgA==} + peerDependencies: + react: ^15.3.0 || 16 || 17 || 18 + + react-dom@19.2.4: + resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} + peerDependencies: + react: ^19.2.4 + + react-hook-form@7.71.2: + resolution: {integrity: sha512-1CHvcDYzuRUNOflt4MOq3ZM46AronNJtQ1S7tnX6YN4y72qhgiUItpacZUAQ0TyWYci3yz1X+rXaSxiuEm86PA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + + react-immutable-proptypes@2.2.0: + resolution: {integrity: sha512-Vf4gBsePlwdGvSZoLSBfd4HAP93HDauMY4fDjXhreg/vg6F3Fj/MXDNyTbltPC/xZKmZc+cjLu3598DdYK6sgQ==} + peerDependencies: + immutable: '>=3.6.2' + + react-immutable-pure-component@2.2.2: + resolution: {integrity: sha512-vkgoMJUDqHZfXXnjVlG3keCxSO/U6WeDQ5/Sl0GK2cH8TOxEzQ5jXqDXHEL/jqk6fsNxV05oH5kD7VNMUE2k+A==} + peerDependencies: + immutable: '>= 2 || >= 4.0.0-rc' + react: '>= 16.6' + react-dom: '>= 16.6' + + react-inspector@6.0.2: + resolution: {integrity: sha512-x+b7LxhmHXjHoU/VrFAzw5iutsILRoYyDq97EDYdFpPLcvqtEzk4ZSZSQjnFPbr5T57tLXnHcqFYoN1pI6u8uQ==} + peerDependencies: + react: ^16.8.4 || ^17.0.0 || ^18.0.0 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-medium-image-zoom@5.4.1: + resolution: {integrity: sha512-DD2iZYaCfAwiQGR8AN62r/cDJYoXhezlYJc5HY4TzBUGuGge43CptG0f7m0PEIM72aN6GfpjohvY1yYdtCJB7g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + react-redux@9.2.0: + resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==} + peerDependencies: + '@types/react': ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + redux: + optional: true + + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.7.2: + resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-syntax-highlighter@16.1.1: + resolution: {integrity: sha512-PjVawBGy80C6YbC5DDZJeUjBmC7skaoEUdvfFQediQHgCL7aKyVHe57SaJGfQsloGDac+gCpTfRdtxzWWKmCXA==} + engines: {node: '>= 16.20.2'} + peerDependencies: + react: '>= 0.14.0' + + react@19.2.4: + resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} + engines: {node: '>=0.10.0'} + + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.1: + resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + + redux-immutable@4.0.0: + resolution: {integrity: sha512-SchSn/DWfGb3oAejd+1hhHx01xUoxY+V7TeK0BKqpkLKiQPVFf7DYzEaKmrEVxsWxielKfSK9/Xq66YyxgR1cg==} + peerDependencies: + immutable: ^3.8.1 || ^4.0.0-rc.1 + + redux@5.0.1: + resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + refractor@5.0.0: + resolution: {integrity: sha512-QXOrHQF5jOpjjLfiNk5GFnWhRXvxjUVnlFxkeDmewR5sXkr3iM46Zo+CnRR8B+MDVqkULW4EcLVcRBNOPXHosw==} + + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-mdx@3.1.1: + resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remark@15.0.1: + resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + + remarkable@2.0.1: + resolution: {integrity: sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA==} + engines: {node: '>= 6.0.0'} + hasBin: true + + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + reselect@5.1.1: + resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + resolve@2.0.0-next.6: + resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} + engines: {node: '>= 0.4'} + hasBin: true + + ret@0.2.2: + resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} + engines: {node: '>=4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + sax@1.5.0: + resolution: {integrity: sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==} + engines: {node: '>=11.0.0'} + + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + + scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + serialize-error@8.1.0: + resolution: {integrity: sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==} + engines: {node: '>=10'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + sha.js@2.4.12: + resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} + engines: {node: '>= 0.10'} + hasBin: true + + sharp@0.34.5: + resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shiki@4.0.1: + resolution: {integrity: sha512-EkAEhDTN5WhpoQFXFw79OHIrSAfHhlImeCdSyg4u4XvrpxKEmdo/9x/HWSowujAnUrFsGOwWiE58a6GVentMnQ==} + engines: {node: '>=20'} + + short-unique-id@5.3.2: + resolution: {integrity: sha512-KRT/hufMSxXKEDSQujfVE0Faa/kZ51ihUcZQAcmP04t00DvPj7Ox5anHke1sJYUtzSuiT/Y5uyzg/W7bBEGhCg==} + hasBin: true + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stable-hash@0.0.5: + resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} + + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strnum@2.2.0: + resolution: {integrity: sha512-Y7Bj8XyJxnPAORMZj/xltsfo55uOiyHcU2tnAVzHUnSJR/KsEX+9RoDeXEnsXtl/CX4fAcrt64gZ13aGaWPeBg==} + + style-to-js@1.1.21: + resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} + + style-to-object@1.0.14: + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} + + styled-jsx@5.1.6: + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + swagger-client@3.37.0: + resolution: {integrity: sha512-pzU+B+DkUbrSwlj4/E8sGeP1w84/CFgDJAt80fHu650TxnOHbqFLGQjiE6luvpRxTPdfK2zRHJP7I6CgUkI8yA==} + + swagger-ui-react@5.32.0: + resolution: {integrity: sha512-2mmrtvfp0EA90pdT8qXTMu26ex03TG2bsjvDAwXhdfCm+9foyadYJN+nEvDHM6/c6/xtXbdAsb6cVxBvbltnpw==} + peerDependencies: + react: '>=16.8.0 <20' + react-dom: '>=16.8.0 <20' + + tailwind-merge@3.5.0: + resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==} + + tailwindcss@4.2.1: + resolution: {integrity: sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==} + + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + to-buffer@1.2.2: + resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} + engines: {node: '>= 0.4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + + tree-sitter-json@0.24.8: + resolution: {integrity: sha512-Tc9ZZYwHyWZ3Tt1VEw7Pa2scu1YO7/d2BCBbKTx5hXwig3UfdQjsOPkPyLpDJOn/m1UBEWYAtSdGAwCSyagBqQ==} + peerDependencies: + tree-sitter: ^0.21.1 + peerDependenciesMeta: + tree-sitter: + optional: true + + tree-sitter@0.21.1: + resolution: {integrity: sha512-7dxoA6kYvtgWw80265MyqJlkRl4yawIjO7S5MigytjELkX43fV2WsAXzsNfO7sBpPPCF5Gp0+XzHk0DwLCq3xQ==} + + tree-sitter@0.22.4: + resolution: {integrity: sha512-usbHZP9/oxNsUY65MQUsduGRqDHQOou1cagUSwjhoSYAmSahjQDAVsh9s+SlZkn8X8+O1FULRGwHu7AFP3kjzg==} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + ts-mixer@6.0.4: + resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} + + ts-toolbelt@9.6.0: + resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} + hasBin: true + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + types-ramda@0.30.1: + resolution: {integrity: sha512-1HTsf5/QVRmLzcGfldPFvkVsAdi1db1BBKzi7iW3KBUlOICg/nKnFS+jGqDJS3YD8VsWbAh7JiHeBvbsw8RPxA==} + + typescript-eslint@8.56.1: + resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + + unraw@3.0.0: + resolution: {integrity: sha512-08/DA66UF65OlpUDIQtbJyrqTR0jTAlJ+jsnkQ4jxR7+K5g5YG1APZKQSMCE1vqqmD+2pv6+IdEjmopFatacvg==} + + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + web-tree-sitter@0.24.5: + resolution: {integrity: sha512-+J/2VSHN8J47gQUAvF8KDadrfz6uFYVjxoxbKWDoXVsH2u7yLdarCnIURnrMA6uSRkgX3SdmqM5BOoQjPdSh5w==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + xml-but-prettier@1.0.1: + resolution: {integrity: sha512-C2CJaadHrZTqESlH03WOyw0oZTtoy2uEg6dSDF6YRg+9GnYNub53RRemLpnvtbHDFelxMx4LajiFsYeR6XJHgQ==} + + xml-js@1.6.11: + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + hasBin: true + + xml@1.0.1: + resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + engines: {node: '>= 14.6'} + hasBin: true + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zenscroll@4.0.2: + resolution: {integrity: sha512-jEA1znR7b4C/NnaycInCU6h/d15ZzCd1jmsruqOKnZP6WXQSMH3W2GL+OXbkruslU4h+Tzuos0HdswzRUk/Vgg==} + + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.0': {} + + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-module-imports@7.28.6': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + + '@babel/parser@7.29.0': + dependencies: + '@babel/types': 7.29.0 + + '@babel/runtime-corejs3@7.29.0': + dependencies: + core-js-pure: 3.48.0 + + '@babel/runtime@7.28.6': {} + + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@emnapi/core@1.8.1': + dependencies: + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.8.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.1.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/aix-ppc64@0.27.3': + optional: true + + '@esbuild/android-arm64@0.27.3': + optional: true + + '@esbuild/android-arm@0.27.3': + optional: true + + '@esbuild/android-x64@0.27.3': + optional: true + + '@esbuild/darwin-arm64@0.27.3': + optional: true + + '@esbuild/darwin-x64@0.27.3': + optional: true + + '@esbuild/freebsd-arm64@0.27.3': + optional: true + + '@esbuild/freebsd-x64@0.27.3': + optional: true + + '@esbuild/linux-arm64@0.27.3': + optional: true + + '@esbuild/linux-arm@0.27.3': + optional: true + + '@esbuild/linux-ia32@0.27.3': + optional: true + + '@esbuild/linux-loong64@0.27.3': + optional: true + + '@esbuild/linux-mips64el@0.27.3': + optional: true + + '@esbuild/linux-ppc64@0.27.3': + optional: true + + '@esbuild/linux-riscv64@0.27.3': + optional: true + + '@esbuild/linux-s390x@0.27.3': + optional: true + + '@esbuild/linux-x64@0.27.3': + optional: true + + '@esbuild/netbsd-arm64@0.27.3': + optional: true + + '@esbuild/netbsd-x64@0.27.3': + optional: true + + '@esbuild/openbsd-arm64@0.27.3': + optional: true + + '@esbuild/openbsd-x64@0.27.3': + optional: true + + '@esbuild/openharmony-arm64@0.27.3': + optional: true + + '@esbuild/sunos-x64@0.27.3': + optional: true + + '@esbuild/win32-arm64@0.27.3': + optional: true + + '@esbuild/win32-ia32@0.27.3': + optional: true + + '@esbuild/win32-x64@0.27.3': + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@10.0.2(jiti@2.6.1))': + dependencies: + eslint: 10.0.2(jiti@2.6.1) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.23.2': + dependencies: + '@eslint/object-schema': 3.0.2 + debug: 4.4.3 + minimatch: 10.2.4 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.5.2': + dependencies: + '@eslint/core': 1.1.0 + + '@eslint/core@1.1.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/object-schema@3.0.2': {} + + '@eslint/plugin-kit@0.6.0': + dependencies: + '@eslint/core': 1.1.0 + levn: 0.4.1 + + '@floating-ui/core@1.7.5': + dependencies: + '@floating-ui/utils': 0.2.11 + + '@floating-ui/dom@1.7.6': + dependencies: + '@floating-ui/core': 1.7.5 + '@floating-ui/utils': 0.2.11 + + '@floating-ui/react-dom@2.1.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@floating-ui/dom': 1.7.6 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + '@floating-ui/utils@0.2.11': {} + + '@formatjs/fast-memoize@3.1.0': + dependencies: + tslib: 2.8.1 + + '@formatjs/intl-localematcher@0.8.1': + dependencies: + '@formatjs/fast-memoize': 3.1.0 + tslib: 2.8.1 + + '@fumadocs/tailwind@0.0.3(tailwindcss@4.2.1)': + dependencies: + postcss-selector-parser: 7.1.1 + optionalDependencies: + tailwindcss: 4.2.1 + + '@fumari/json-schema-ts@0.0.2': + dependencies: + esrap: 2.2.3 + + '@fumari/stf@1.0.3(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.7': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@img/colour@1.1.0': + optional: true + + '@img/sharp-darwin-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.2.4 + optional: true + + '@img/sharp-darwin-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.2.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.2.4': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-riscv64@1.2.4': + optional: true + + '@img/sharp-libvips-linux-s390x@1.2.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.2.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + optional: true + + '@img/sharp-linux-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.2.4 + optional: true + + '@img/sharp-linux-arm@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.2.4 + optional: true + + '@img/sharp-linux-ppc64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.2.4 + optional: true + + '@img/sharp-linux-riscv64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-riscv64': 1.2.4 + optional: true + + '@img/sharp-linux-s390x@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.2.4 + optional: true + + '@img/sharp-linux-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.2.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + optional: true + + '@img/sharp-wasm32@0.34.5': + dependencies: + '@emnapi/runtime': 1.8.1 + optional: true + + '@img/sharp-win32-arm64@0.34.5': + optional: true + + '@img/sharp-win32-ia32@0.34.5': + optional: true + + '@img/sharp-win32-x64@0.34.5': + optional: true + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@mdx-js/mdx@3.1.1': + dependencies: + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + acorn: 8.16.0 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.1(acorn@8.16.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + source-map: 0.7.6 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@napi-rs/wasm-runtime@0.2.12': + dependencies: + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@next/env@16.1.6': {} + + '@next/eslint-plugin-next@16.1.6': + dependencies: + fast-glob: 3.3.1 + + '@next/swc-darwin-arm64@16.1.6': + optional: true + + '@next/swc-darwin-x64@16.1.6': + optional: true + + '@next/swc-linux-arm64-gnu@16.1.6': + optional: true + + '@next/swc-linux-arm64-musl@16.1.6': + optional: true + + '@next/swc-linux-x64-gnu@16.1.6': + optional: true + + '@next/swc-linux-x64-musl@16.1.6': + optional: true + + '@next/swc-win32-arm64-msvc@16.1.6': + optional: true + + '@next/swc-win32-x64-msvc@16.1.6': + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@nolyfill/is-core-module@1.0.39': {} + + '@orama/orama@3.1.18': {} + + '@radix-ui/number@1.1.1': {} + + '@radix-ui/primitive@1.1.3': {} + + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.14)(react@19.2.4)': + dependencies: + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-context@1.1.2(@types/react@19.2.14)(react@19.2.4)': + dependencies: + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + aria-hidden: 1.2.6 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-direction@1.1.1(@types/react@19.2.14)(react@19.2.4)': + dependencies: + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.14)(react@19.2.4)': + dependencies: + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-id@1.1.1(@types/react@19.2.14)(react@19.2.4)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + aria-hidden: 1.2.6 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@floating-ui/react-dom': 2.1.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/rect': 1.1.1 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + aria-hidden: 1.2.6 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-slot@1.2.3(@types/react@19.2.14)(react@19.2.4)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-slot@1.2.4(@types/react@19.2.14)(react@19.2.4)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.14)(react@19.2.4)': + dependencies: + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.14)(react@19.2.4)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.14)(react@19.2.4)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.14)(react@19.2.4)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.14)(react@19.2.4)': + dependencies: + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.14)(react@19.2.4)': + dependencies: + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.14)(react@19.2.4)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.14)(react@19.2.4)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/rect@1.1.1': {} + + '@rtsao/scc@1.1.0': {} + + '@scalar/helpers@0.2.18': {} + + '@scalar/json-magic@0.11.7': + dependencies: + '@scalar/helpers': 0.2.18 + pathe: 2.0.3 + yaml: 2.8.2 + + '@scalar/openapi-types@0.5.4': + dependencies: + zod: 4.3.6 + + '@scalar/openapi-upgrader@0.1.11': + dependencies: + '@scalar/openapi-types': 0.5.4 + + '@scarf/scarf@1.4.0': {} + + '@shikijs/core@4.0.1': + dependencies: + '@shikijs/primitive': 4.0.1 + '@shikijs/types': 4.0.1 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@4.0.1': + dependencies: + '@shikijs/types': 4.0.1 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.4 + + '@shikijs/engine-oniguruma@4.0.1': + dependencies: + '@shikijs/types': 4.0.1 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@4.0.1': + dependencies: + '@shikijs/types': 4.0.1 + + '@shikijs/primitive@4.0.1': + dependencies: + '@shikijs/types': 4.0.1 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/rehype@4.0.1': + dependencies: + '@shikijs/types': 4.0.1 + '@types/hast': 3.0.4 + hast-util-to-string: 3.0.1 + shiki: 4.0.1 + unified: 11.0.5 + unist-util-visit: 5.1.0 + + '@shikijs/themes@4.0.1': + dependencies: + '@shikijs/types': 4.0.1 + + '@shikijs/transformers@4.0.1': + dependencies: + '@shikijs/core': 4.0.1 + '@shikijs/types': 4.0.1 + + '@shikijs/types@4.0.1': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + + '@standard-schema/spec@1.1.0': {} + + '@swagger-api/apidom-ast@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-error': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + unraw: 3.0.0 + + '@swagger-api/apidom-core@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-ast': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@types/ramda': 0.30.2 + minim: 0.23.8 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + short-unique-id: 5.3.2 + ts-mixer: 6.0.4 + + '@swagger-api/apidom-error@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + + '@swagger-api/apidom-json-pointer@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@swaggerexpert/json-pointer': 2.10.2 + + '@swagger-api/apidom-ns-api-design-systems@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-1': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + optional: true + + '@swagger-api/apidom-ns-arazzo-1@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-json-schema-2020-12': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + optional: true + + '@swagger-api/apidom-ns-asyncapi-2@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-json-schema-draft-7': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + optional: true + + '@swagger-api/apidom-ns-asyncapi-3@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-asyncapi-2': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + optional: true + + '@swagger-api/apidom-ns-json-schema-2019-09@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@swagger-api/apidom-ns-json-schema-draft-7': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-ns-json-schema-2020-12@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@swagger-api/apidom-ns-json-schema-2019-09': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-ns-json-schema-draft-4@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-ast': 1.6.0 + '@swagger-api/apidom-core': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-ns-json-schema-draft-6@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@swagger-api/apidom-ns-json-schema-draft-4': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-ns-json-schema-draft-7@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@swagger-api/apidom-ns-json-schema-draft-6': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-ns-openapi-2@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@swagger-api/apidom-ns-json-schema-draft-4': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + optional: true + + '@swagger-api/apidom-ns-openapi-3-0@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@swagger-api/apidom-ns-json-schema-draft-4': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-ns-openapi-3-1@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-ast': 1.6.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-json-pointer': 1.6.0 + '@swagger-api/apidom-ns-json-schema-2020-12': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-0': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-ns-openapi-3-2@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-ast': 1.6.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-json-pointer': 1.6.0 + '@swagger-api/apidom-ns-json-schema-2020-12': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-0': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-1': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + ts-mixer: 6.0.4 + + '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-api-design-systems': 1.6.0 + '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-api-design-systems': 1.6.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-arazzo-json-1@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-arazzo-1': 1.6.0 + '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-arazzo-yaml-1@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-arazzo-1': 1.6.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-asyncapi-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-asyncapi-json-3@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-asyncapi-3': 1.6.0 + '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-asyncapi-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-asyncapi-3': 1.6.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-json@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-ast': 1.6.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + tree-sitter: 0.21.1 + tree-sitter-json: 0.24.8(tree-sitter@0.21.1) + web-tree-sitter: 0.24.5 + optional: true + + '@swagger-api/apidom-parser-adapter-openapi-json-2@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-openapi-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-0': 1.6.0 + '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-1': 1.6.0 + '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-openapi-json-3-2@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-openapi-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-0': 1.6.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-1': 1.6.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optional: true + + '@swagger-api/apidom-parser-adapter-yaml-1-2@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-ast': 1.6.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@tree-sitter-grammars/tree-sitter-yaml': 0.7.1(tree-sitter@0.22.4) + '@types/ramda': 0.30.2 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + tree-sitter: 0.22.4 + web-tree-sitter: 0.24.5 + optional: true + + '@swagger-api/apidom-reference@1.6.0': + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@types/ramda': 0.30.2 + axios: 1.13.6 + minimatch: 10.2.4 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + optionalDependencies: + '@swagger-api/apidom-json-pointer': 1.6.0 + '@swagger-api/apidom-ns-arazzo-1': 1.6.0 + '@swagger-api/apidom-ns-asyncapi-2': 1.6.0 + '@swagger-api/apidom-ns-openapi-2': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-0': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-1': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-api-design-systems-json': 1.6.0 + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml': 1.6.0 + '@swagger-api/apidom-parser-adapter-arazzo-json-1': 1.6.0 + '@swagger-api/apidom-parser-adapter-arazzo-yaml-1': 1.6.0 + '@swagger-api/apidom-parser-adapter-asyncapi-json-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-asyncapi-json-3': 1.6.0 + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3': 1.6.0 + '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@swagger-api/apidom-parser-adapter-openapi-json-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-openapi-json-3-0': 1.6.0 + '@swagger-api/apidom-parser-adapter-openapi-json-3-1': 1.6.0 + '@swagger-api/apidom-parser-adapter-openapi-json-3-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0': 1.6.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1': 1.6.0 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2': 1.6.0 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + transitivePeerDependencies: + - debug + + '@swaggerexpert/cookie@2.0.2': + dependencies: + apg-lite: 1.0.5 + + '@swaggerexpert/json-pointer@2.10.2': + dependencies: + apg-lite: 1.0.5 + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + + '@tailwindcss/node@4.2.1': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.20.0 + jiti: 2.6.1 + lightningcss: 1.31.1 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.2.1 + + '@tailwindcss/oxide-android-arm64@4.2.1': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.2.1': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.2.1': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.2.1': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.2.1': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.2.1': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.2.1': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.2.1': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.2.1': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.2.1': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.2.1': + optional: true + + '@tailwindcss/oxide@4.2.1': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.2.1 + '@tailwindcss/oxide-darwin-arm64': 4.2.1 + '@tailwindcss/oxide-darwin-x64': 4.2.1 + '@tailwindcss/oxide-freebsd-x64': 4.2.1 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.1 + '@tailwindcss/oxide-linux-arm64-gnu': 4.2.1 + '@tailwindcss/oxide-linux-arm64-musl': 4.2.1 + '@tailwindcss/oxide-linux-x64-gnu': 4.2.1 + '@tailwindcss/oxide-linux-x64-musl': 4.2.1 + '@tailwindcss/oxide-wasm32-wasi': 4.2.1 + '@tailwindcss/oxide-win32-arm64-msvc': 4.2.1 + '@tailwindcss/oxide-win32-x64-msvc': 4.2.1 + + '@tailwindcss/postcss@4.2.1': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.2.1 + '@tailwindcss/oxide': 4.2.1 + postcss: 8.5.8 + tailwindcss: 4.2.1 + + '@tree-sitter-grammars/tree-sitter-yaml@0.7.1(tree-sitter@0.22.4)': + dependencies: + node-addon-api: 8.6.0 + node-gyp-build: 4.8.4 + optionalDependencies: + tree-sitter: 0.22.4 + optional: true + + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/esrecurse@4.3.1': {} + + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.8 + + '@types/estree@1.0.8': {} + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdx@2.0.13': {} + + '@types/ms@2.1.0': {} + + '@types/node@25.3.3': + dependencies: + undici-types: 7.18.2 + + '@types/prismjs@1.26.6': {} + + '@types/ramda@0.30.2': + dependencies: + types-ramda: 0.30.1 + + '@types/react-dom@19.2.3(@types/react@19.2.14)': + dependencies: + '@types/react': 19.2.14 + + '@types/react@19.2.14': + dependencies: + csstype: 3.2.3 + + '@types/swagger-ui-react@5.18.0': + dependencies: + '@types/react': 19.2.14 + + '@types/trusted-types@2.0.7': + optional: true + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@types/use-sync-external-store@0.0.6': {} + + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.56.1 + eslint: 10.0.2(jiti@2.6.1) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.56.1 + debug: 4.4.3 + eslint: 10.0.2(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.56.1(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.56.1': + dependencies: + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/visitor-keys': 8.56.1 + + '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.3 + eslint: 10.0.2(jiti@2.6.1) + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.56.1': {} + + '@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.56.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/visitor-keys': 8.56.1 + debug: 4.4.3 + minimatch: 10.2.4 + semver: 7.7.4 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.56.1': + dependencies: + '@typescript-eslint/types': 8.56.1 + eslint-visitor-keys: 5.0.1 + + '@ungap/structured-clone@1.3.0': {} + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + optional: true + + '@unrs/resolver-binding-android-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true + + acorn-jsx@5.3.2(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + + acorn@8.16.0: {} + + ajv@6.14.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.18.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + apg-lite@1.0.5: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + is-array-buffer: 3.0.5 + + array-includes@3.1.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + is-string: 1.1.1 + math-intrinsics: 1.1.0 + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 + + array.prototype.findlastindex@1.2.6: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-shim-unscopables: 1.1.0 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-shim-unscopables: 1.1.0 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + es-shim-unscopables: 1.1.0 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 + + ast-types-flow@0.0.8: {} + + astring@1.9.0: {} + + async-function@1.0.0: {} + + asynckit@0.4.0: {} + + autolinker@3.16.2: + dependencies: + tslib: 2.8.1 + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + axe-core@4.11.1: {} + + axios@1.13.6: + dependencies: + follow-redirects: 1.15.11 + form-data: 4.0.5 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + axobject-query@4.1.0: {} + + bail@2.0.2: {} + + balanced-match@1.0.2: {} + + balanced-match@4.0.4: {} + + base64-js@1.5.1: {} + + baseline-browser-mapping@2.10.0: {} + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@5.0.4: + dependencies: + balanced-match: 4.0.4 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.10.0 + caniuse-lite: 1.0.30001777 + electron-to-chromium: 1.5.307 + node-releases: 2.0.36 + update-browserslist-db: 1.2.3(browserslist@4.28.1) + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + caniuse-lite@1.0.30001777: {} + + ccount@2.0.1: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + + classnames@2.5.1: {} + + client-only@0.0.1: {} + + clsx@2.1.1: {} + + collapse-white-space@2.1.0: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comma-separated-tokens@2.0.3: {} + + compute-scroll-into-view@3.1.1: {} + + concat-map@0.0.1: {} + + convert-source-map@2.0.0: {} + + copy-to-clipboard@3.3.3: + dependencies: + toggle-selection: 1.0.6 + + core-js-pure@3.48.0: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css.escape@1.5.1: {} + + cssesc@3.0.0: {} + + csstype@3.2.3: {} + + damerau-levenshtein@1.0.8: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.3.0: + dependencies: + character-entities: 2.0.2 + + deep-extend@0.6.0: {} + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + delayed-stream@1.0.0: {} + + dequal@2.0.3: {} + + detect-libc@2.1.2: {} + + detect-node-es@1.1.0: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + dompurify@3.2.6: + optionalDependencies: + '@types/trusted-types': 2.0.7 + + drange@1.1.1: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + electron-to-chromium@1.5.307: {} + + emoji-regex@9.2.2: {} + + enhanced-resolve@5.20.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.0 + + entities@6.0.1: {} + + es-abstract@1.24.1: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-negative-zero: 2.0.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.20 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.2: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + es-set-tostringtag: 2.1.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + safe-array-concat: 1.1.3 + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.1.0: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.16.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.3 + + esbuild@0.27.3: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.3 + '@esbuild/android-arm': 0.27.3 + '@esbuild/android-arm64': 0.27.3 + '@esbuild/android-x64': 0.27.3 + '@esbuild/darwin-arm64': 0.27.3 + '@esbuild/darwin-x64': 0.27.3 + '@esbuild/freebsd-arm64': 0.27.3 + '@esbuild/freebsd-x64': 0.27.3 + '@esbuild/linux-arm': 0.27.3 + '@esbuild/linux-arm64': 0.27.3 + '@esbuild/linux-ia32': 0.27.3 + '@esbuild/linux-loong64': 0.27.3 + '@esbuild/linux-mips64el': 0.27.3 + '@esbuild/linux-ppc64': 0.27.3 + '@esbuild/linux-riscv64': 0.27.3 + '@esbuild/linux-s390x': 0.27.3 + '@esbuild/linux-x64': 0.27.3 + '@esbuild/netbsd-arm64': 0.27.3 + '@esbuild/netbsd-x64': 0.27.3 + '@esbuild/openbsd-arm64': 0.27.3 + '@esbuild/openbsd-x64': 0.27.3 + '@esbuild/openharmony-arm64': 0.27.3 + '@esbuild/sunos-x64': 0.27.3 + '@esbuild/win32-arm64': 0.27.3 + '@esbuild/win32-ia32': 0.27.3 + '@esbuild/win32-x64': 0.27.3 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-config-next@16.1.6(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): + dependencies: + '@next/eslint-plugin-next': 16.1.6 + eslint: 10.0.2(jiti@2.6.1) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-react: 7.37.5(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-react-hooks: 7.0.1(eslint@10.0.2(jiti@2.6.1)) + globals: 16.4.0 + typescript-eslint: 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.1 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.2(jiti@2.6.1)): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.3 + eslint: 10.0.2(jiti@2.6.1) + get-tsconfig: 4.13.6 + is-bun-module: 2.0.0 + stable-hash: 0.0.5 + tinyglobby: 0.2.15 + unrs-resolver: 1.11.1 + optionalDependencies: + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.2(jiti@2.6.1)) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.2(jiti@2.6.1)): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.2(jiti@2.6.1)) + transitivePeerDependencies: + - supports-color + + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.2(jiti@2.6.1)): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.9 + array.prototype.findlastindex: 1.2.6 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 10.0.2(jiti@2.6.1) + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.2(jiti@2.6.1)) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.5 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.2(eslint@10.0.2(jiti@2.6.1)): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.9 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.11.1 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 10.0.2(jiti@2.6.1) + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.5 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 + + eslint-plugin-react-hooks@7.0.1(eslint@10.0.2(jiti@2.6.1)): + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 + eslint: 10.0.2(jiti@2.6.1) + hermes-parser: 0.25.1 + zod: 4.3.6 + zod-validation-error: 4.0.2(zod@4.3.6) + transitivePeerDependencies: + - supports-color + + eslint-plugin-react@7.37.5(eslint@10.0.2(jiti@2.6.1)): + dependencies: + array-includes: 3.1.9 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.2 + eslint: 10.0.2(jiti@2.6.1) + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.5 + object.entries: 1.1.9 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.6 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + + eslint-scope@9.1.1: + dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.8 + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@5.0.1: {} + + eslint@10.0.2(jiti@2.6.1): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.2 + '@eslint/config-helpers': 0.5.2 + '@eslint/core': 1.1.0 + '@eslint/plugin-kit': 0.6.0 + '@humanfs/node': 0.16.7 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.14.0 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 9.1.1 + eslint-visitor-keys: 5.0.1 + espree: 11.1.1 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + minimatch: 10.2.4 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.6.1 + transitivePeerDependencies: + - supports-color + + espree@11.1.1: + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 5.0.1 + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrap@2.2.3: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.8 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.6 + + estree-util-value-to-estree@3.5.0: + dependencies: + '@types/estree': 1.0.8 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 + + esutils@2.0.3: {} + + extend@3.0.2: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.1: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-patch@3.1.1: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-uri@3.1.0: {} + + fast-xml-builder@1.0.0: {} + + fast-xml-parser@5.4.2: + dependencies: + fast-xml-builder: 1.0.0 + strnum: 2.2.0 + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + fault@1.0.4: + dependencies: + format: 0.2.2 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.4 + keyv: 4.5.4 + + flatted@3.3.4: {} + + follow-redirects@1.15.11: {} + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + foreach@2.0.6: {} + + form-data@4.0.5: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + + format@0.2.2: {} + + framer-motion@12.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + motion-dom: 12.35.0 + motion-utils: 12.29.2 + tslib: 2.8.1 + optionalDependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + fsevents@2.3.3: + optional: true + + fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6): + dependencies: + '@formatjs/intl-localematcher': 0.8.1 + '@orama/orama': 3.1.18 + '@shikijs/rehype': 4.0.1 + '@shikijs/transformers': 4.0.1 + estree-util-value-to-estree: 3.5.0 + github-slugger: 2.0.0 + hast-util-to-estree: 3.1.3 + hast-util-to-jsx-runtime: 2.3.6 + image-size: 2.0.2 + mdast-util-mdx: 3.0.0 + mdast-util-to-markdown: 2.1.2 + negotiator: 1.0.0 + npm-to-yarn: 3.0.1 + path-to-regexp: 8.3.0 + remark: 15.0.1 + remark-gfm: 4.0.1 + remark-rehype: 11.1.2 + scroll-into-view-if-needed: 3.1.0 + shiki: 4.0.1 + tinyglobby: 0.2.15 + unified: 11.0.5 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + optionalDependencies: + '@mdx-js/mdx': 3.1.1 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/react': 19.2.14 + lucide-react: 0.546.0(react@19.2.4) + next: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + zod: 4.3.6 + transitivePeerDependencies: + - supports-color + + fumadocs-mdx@14.2.9(@types/mdast@4.0.4)(@types/mdx@2.0.13)(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4): + dependencies: + '@mdx-js/mdx': 3.1.1 + '@standard-schema/spec': 1.1.0 + chokidar: 5.0.0 + esbuild: 0.27.3 + estree-util-value-to-estree: 3.5.0 + fumadocs-core: 16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6) + js-yaml: 4.1.1 + mdast-util-mdx: 3.0.0 + mdast-util-to-markdown: 2.1.2 + picocolors: 1.1.1 + picomatch: 4.0.3 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + zod: 4.3.6 + optionalDependencies: + '@types/mdast': 4.0.4 + '@types/mdx': 2.0.13 + '@types/react': 19.2.14 + next: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + transitivePeerDependencies: + - supports-color + + fumadocs-openapi@10.3.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(fumadocs-ui@16.6.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + '@fumari/json-schema-ts': 0.0.2 + '@fumari/stf': 1.0.3(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-select': 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.14)(react@19.2.4) + '@scalar/json-magic': 0.11.7 + '@scalar/openapi-upgrader': 0.1.11 + ajv: 8.18.0 + class-variance-authority: 0.7.1 + fumadocs-core: 16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6) + fumadocs-ui: 16.6.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.1) + github-slugger: 2.0.0 + hast-util-to-jsx-runtime: 2.3.6 + js-yaml: 4.1.1 + lucide-react: 0.575.0(react@19.2.4) + next-themes: 0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + openapi-sampler: 1.7.1 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-hook-form: 7.71.2(react@19.2.4) + remark: 15.0.1 + remark-rehype: 11.1.2 + tailwind-merge: 3.5.0 + xml-js: 1.6.11 + optionalDependencies: + '@types/react': 19.2.14 + transitivePeerDependencies: + - '@types/react-dom' + - supports-color + + fumadocs-ui@16.6.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.1): + dependencies: + '@fumadocs/tailwind': 0.0.3(tailwindcss@4.2.1) + '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + class-variance-authority: 0.7.1 + fumadocs-core: 16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6) + lucide-react: 0.575.0(react@19.2.4) + motion: 12.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + next-themes: 0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-medium-image-zoom: 5.4.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.4) + rehype-raw: 7.0.0 + scroll-into-view-if-needed: 3.1.0 + tailwind-merge: 3.5.0 + unist-util-visit: 5.1.0 + optionalDependencies: + '@types/react': 19.2.14 + next: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + transitivePeerDependencies: + - '@emotion/is-prop-valid' + - '@types/react-dom' + - tailwindcss + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 + + functions-have-names@1.2.3: {} + + generator-function@2.0.1: {} + + gensync@1.0.0-beta.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-nonce@1.0.1: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + + get-tsconfig@4.13.6: + dependencies: + resolve-pkg-maps: 1.0.0 + + github-slugger@2.0.0: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + globals@16.4.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + has-bigints@1.1.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-from-parse5@8.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 9.0.1 + property-information: 7.1.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-raw@9.1.0: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.3.0 + hast-util-from-parse5: 8.0.3 + hast-util-to-parse5: 8.0.1 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + parse5: 7.3.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-estree@3.1.3: + dependencies: + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.21 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-jsx-runtime@2.3.6: + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.21 + unist-util-position: 5.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + hast-util-to-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-string@3.0.1: + dependencies: + '@types/hast': 3.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@9.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + + hermes-estree@0.25.1: {} + + hermes-parser@0.25.1: + dependencies: + hermes-estree: 0.25.1 + + highlight.js@10.7.3: {} + + highlightjs-vue@1.0.0: {} + + html-void-elements@3.0.0: {} + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + image-size@2.0.2: {} + + immutable@3.8.3: {} + + imurmurhash@0.1.4: {} + + inherits@2.0.4: {} + + inline-style-parser@0.2.7: {} + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-bun-module@2.0.0: + dependencies: + semver: 7.7.4 + + is-callable@1.2.7: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-decimal@2.0.1: {} + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@2.0.1: {} + + is-map@2.0.3: {} + + is-negative-zero@2.0.3: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-plain-obj@4.1.0: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.4 + + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.20 + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + iterator.prototype@1.1.5: + dependencies: + define-data-property: 1.1.4 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + has-symbols: 1.1.0 + set-function-name: 2.0.2 + + jiti@2.6.1: {} + + js-file-download@0.4.12: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-pointer@0.6.2: + dependencies: + foreach: 2.0.6 + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.9 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lightningcss-android-arm64@1.31.1: + optional: true + + lightningcss-darwin-arm64@1.31.1: + optional: true + + lightningcss-darwin-x64@1.31.1: + optional: true + + lightningcss-freebsd-x64@1.31.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.31.1: + optional: true + + lightningcss-linux-arm64-gnu@1.31.1: + optional: true + + lightningcss-linux-arm64-musl@1.31.1: + optional: true + + lightningcss-linux-x64-gnu@1.31.1: + optional: true + + lightningcss-linux-x64-musl@1.31.1: + optional: true + + lightningcss-win32-arm64-msvc@1.31.1: + optional: true + + lightningcss-win32-x64-msvc@1.31.1: + optional: true + + lightningcss@1.31.1: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.31.1 + lightningcss-darwin-arm64: 1.31.1 + lightningcss-darwin-x64: 1.31.1 + lightningcss-freebsd-x64: 1.31.1 + lightningcss-linux-arm-gnueabihf: 1.31.1 + lightningcss-linux-arm64-gnu: 1.31.1 + lightningcss-linux-arm64-musl: 1.31.1 + lightningcss-linux-x64-gnu: 1.31.1 + lightningcss-linux-x64-musl: 1.31.1 + lightningcss-win32-arm64-msvc: 1.31.1 + lightningcss-win32-x64-msvc: 1.31.1 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.debounce@4.0.8: {} + + lodash@4.17.23: {} + + longest-streak@3.1.0: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lowlight@1.20.0: + dependencies: + fault: 1.0.4 + highlight.js: 10.7.3 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lucide-react@0.546.0(react@19.2.4): + dependencies: + react: 19.2.4 + + lucide-react@0.575.0(react@19.2.4): + dependencies: + react: 19.2.4 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + markdown-extensions@2.0.0: {} + + markdown-table@3.0.4: {} + + math-intrinsics@1.1.0: {} + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + mdast-util-from-markdown@2.0.3: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.3 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.2.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.3 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.1 + + mdast-util-to-hast@13.2.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.1.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + merge2@1.4.1: {} + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-expression@3.0.1: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-jsx@3.0.2: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + micromark-extension-mdx-expression: 3.0.1 + micromark-extension-mdx-jsx: 3.0.2 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-mdx-expression@2.0.3: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.3.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-events-to-acorn@2.0.3: + dependencies: + '@types/estree': 1.0.8 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minim@0.23.8: + dependencies: + lodash: 4.17.23 + + minimatch@10.2.4: + dependencies: + brace-expansion: 5.0.4 + + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.12 + + minimist@1.2.8: {} + + motion-dom@12.35.0: + dependencies: + motion-utils: 12.29.2 + + motion-utils@12.29.2: {} + + motion@12.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + framer-motion: 12.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + tslib: 2.8.1 + optionalDependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + ms@2.1.3: {} + + nanoid@3.3.11: {} + + napi-postinstall@0.3.4: {} + + natural-compare@1.4.0: {} + + negotiator@1.0.0: {} + + neotraverse@0.6.18: {} + + next-themes@0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + '@next/env': 16.1.6 + '@swc/helpers': 0.5.15 + baseline-browser-mapping: 2.10.0 + caniuse-lite: 1.0.30001777 + postcss: 8.4.31 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.4) + optionalDependencies: + '@next/swc-darwin-arm64': 16.1.6 + '@next/swc-darwin-x64': 16.1.6 + '@next/swc-linux-arm64-gnu': 16.1.6 + '@next/swc-linux-arm64-musl': 16.1.6 + '@next/swc-linux-x64-gnu': 16.1.6 + '@next/swc-linux-x64-musl': 16.1.6 + '@next/swc-win32-arm64-msvc': 16.1.6 + '@next/swc-win32-x64-msvc': 16.1.6 + sharp: 0.34.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + node-abort-controller@3.1.1: {} + + node-addon-api@8.6.0: + optional: true + + node-domexception@1.0.0: {} + + node-exports-info@1.6.0: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 + + node-fetch-commonjs@3.3.2: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + + node-gyp-build@4.8.4: + optional: true + + node-releases@2.0.36: {} + + npm-to-yarn@3.0.1: {} + + object-assign@4.1.1: {} + + object-inspect@1.13.4: {} + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.entries@1.1.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + oniguruma-parser@0.12.1: {} + + oniguruma-to-es@4.3.4: + dependencies: + oniguruma-parser: 0.12.1 + regex: 6.1.0 + regex-recursion: 6.0.2 + + openapi-path-templating@2.2.1: + dependencies: + apg-lite: 1.0.5 + + openapi-sampler@1.7.1: + dependencies: + '@types/json-schema': 7.0.15 + fast-xml-parser: 5.4.2 + json-pointer: 0.6.2 + + openapi-server-url-templating@1.3.0: + dependencies: + apg-lite: 1.0.5 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + parse-entities@4.0.2: + dependencies: + '@types/unist': 2.0.11 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.3.0 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-to-regexp@8.3.0: {} + + pathe@2.0.3: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + possible-typed-array-names@1.1.0: {} + + postcss-selector-parser@7.1.1: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss@8.4.31: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.5.8: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prismjs@1.30.0: {} + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + property-information@7.1.0: {} + + proxy-from-env@1.1.0: {} + + punycode@2.3.1: {} + + querystringify@2.2.0: {} + + queue-microtask@1.2.3: {} + + ramda-adjunct@5.1.0(ramda@0.30.1): + dependencies: + ramda: 0.30.1 + + ramda@0.30.1: {} + + randexp@0.5.3: + dependencies: + drange: 1.1.1 + ret: 0.2.2 + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + react-copy-to-clipboard@5.1.0(react@19.2.4): + dependencies: + copy-to-clipboard: 3.3.3 + prop-types: 15.8.1 + react: 19.2.4 + + react-debounce-input@3.3.0(react@19.2.4): + dependencies: + lodash.debounce: 4.0.8 + prop-types: 15.8.1 + react: 19.2.4 + + react-dom@19.2.4(react@19.2.4): + dependencies: + react: 19.2.4 + scheduler: 0.27.0 + + react-hook-form@7.71.2(react@19.2.4): + dependencies: + react: 19.2.4 + + react-immutable-proptypes@2.2.0(immutable@3.8.3): + dependencies: + immutable: 3.8.3 + invariant: 2.2.4 + + react-immutable-pure-component@2.2.2(immutable@3.8.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + immutable: 3.8.3 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + react-inspector@6.0.2(react@19.2.4): + dependencies: + react: 19.2.4 + + react-is@16.13.1: {} + + react-medium-image-zoom@5.4.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + + react-redux@9.2.0(@types/react@19.2.14)(react@19.2.4)(redux@5.0.1): + dependencies: + '@types/use-sync-external-store': 0.0.6 + react: 19.2.4 + use-sync-external-store: 1.6.0(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + redux: 5.0.1 + + react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.4): + dependencies: + react: 19.2.4 + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.4) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + + react-remove-scroll@2.7.2(@types/react@19.2.14)(react@19.2.4): + dependencies: + react: 19.2.4 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.14)(react@19.2.4) + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.4) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.2.14)(react@19.2.4) + use-sidecar: 1.1.3(@types/react@19.2.14)(react@19.2.4) + optionalDependencies: + '@types/react': 19.2.14 + + react-style-singleton@2.2.3(@types/react@19.2.14)(react@19.2.4): + dependencies: + get-nonce: 1.0.1 + react: 19.2.4 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + + react-syntax-highlighter@16.1.1(react@19.2.4): + dependencies: + '@babel/runtime': 7.28.6 + highlight.js: 10.7.3 + highlightjs-vue: 1.0.0 + lowlight: 1.20.0 + prismjs: 1.30.0 + react: 19.2.4 + refractor: 5.0.0 + + react@19.2.4: {} + + readdirp@5.0.0: {} + + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.8 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + + recma-jsx@1.0.1(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.8 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.8 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + + redux-immutable@4.0.0(immutable@3.8.3): + dependencies: + immutable: 3.8.3 + + redux@5.0.1: {} + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + refractor@5.0.0: + dependencies: + '@types/hast': 3.0.4 + '@types/prismjs': 1.26.6 + hastscript: 9.0.1 + parse-entities: 4.0.2 + + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.1.0 + vfile: 6.0.3 + + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.3 + transitivePeerDependencies: + - supports-color + + remark-gfm@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.1.1: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.3 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.1 + unified: 11.0.5 + vfile: 6.0.3 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + remark@15.0.1: + dependencies: + '@types/mdast': 4.0.4 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remarkable@2.0.1: + dependencies: + argparse: 1.0.10 + autolinker: 3.16.2 + + repeat-string@1.6.1: {} + + require-from-string@2.0.2: {} + + requires-port@1.0.0: {} + + reselect@5.1.1: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.6: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.1 + node-exports-info: 1.6.0 + object-keys: 1.1.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + ret@0.2.2: {} + + reusify@1.1.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-buffer@5.2.1: {} + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + sax@1.5.0: {} + + scheduler@0.27.0: {} + + scroll-into-view-if-needed@3.1.0: + dependencies: + compute-scroll-into-view: 3.1.1 + + semver@6.3.1: {} + + semver@7.7.4: {} + + serialize-error@8.1.0: + dependencies: + type-fest: 0.20.2 + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + + sha.js@2.4.12: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + to-buffer: 1.2.2 + + sharp@0.34.5: + dependencies: + '@img/colour': 1.1.0 + detect-libc: 2.1.2 + semver: 7.7.4 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.34.5 + '@img/sharp-darwin-x64': 0.34.5 + '@img/sharp-libvips-darwin-arm64': 1.2.4 + '@img/sharp-libvips-darwin-x64': 1.2.4 + '@img/sharp-libvips-linux-arm': 1.2.4 + '@img/sharp-libvips-linux-arm64': 1.2.4 + '@img/sharp-libvips-linux-ppc64': 1.2.4 + '@img/sharp-libvips-linux-riscv64': 1.2.4 + '@img/sharp-libvips-linux-s390x': 1.2.4 + '@img/sharp-libvips-linux-x64': 1.2.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + '@img/sharp-linux-arm': 0.34.5 + '@img/sharp-linux-arm64': 0.34.5 + '@img/sharp-linux-ppc64': 0.34.5 + '@img/sharp-linux-riscv64': 0.34.5 + '@img/sharp-linux-s390x': 0.34.5 + '@img/sharp-linux-x64': 0.34.5 + '@img/sharp-linuxmusl-arm64': 0.34.5 + '@img/sharp-linuxmusl-x64': 0.34.5 + '@img/sharp-wasm32': 0.34.5 + '@img/sharp-win32-arm64': 0.34.5 + '@img/sharp-win32-ia32': 0.34.5 + '@img/sharp-win32-x64': 0.34.5 + optional: true + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shiki@4.0.1: + dependencies: + '@shikijs/core': 4.0.1 + '@shikijs/engine-javascript': 4.0.1 + '@shikijs/engine-oniguruma': 4.0.1 + '@shikijs/langs': 4.0.1 + '@shikijs/themes': 4.0.1 + '@shikijs/types': 4.0.1 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + short-unique-id@5.3.2: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + source-map-js@1.2.1: {} + + source-map@0.7.6: {} + + space-separated-tokens@2.0.2: {} + + sprintf-js@1.0.3: {} + + stable-hash@0.0.5: {} + + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.0 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.24.1 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-bom@3.0.0: {} + + strnum@2.2.0: {} + + style-to-js@1.1.21: + dependencies: + style-to-object: 1.0.14 + + style-to-object@1.0.14: + dependencies: + inline-style-parser: 0.2.7 + + styled-jsx@5.1.6(@babel/core@7.29.0)(react@19.2.4): + dependencies: + client-only: 0.0.1 + react: 19.2.4 + optionalDependencies: + '@babel/core': 7.29.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + swagger-client@3.37.0: + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@scarf/scarf': 1.4.0 + '@swagger-api/apidom-core': 1.6.0 + '@swagger-api/apidom-error': 1.6.0 + '@swagger-api/apidom-json-pointer': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-1': 1.6.0 + '@swagger-api/apidom-ns-openapi-3-2': 1.6.0 + '@swagger-api/apidom-reference': 1.6.0 + '@swaggerexpert/cookie': 2.0.2 + deepmerge: 4.3.1 + fast-json-patch: 3.1.1 + js-yaml: 4.1.1 + neotraverse: 0.6.18 + node-abort-controller: 3.1.1 + node-fetch-commonjs: 3.3.2 + openapi-path-templating: 2.2.1 + openapi-server-url-templating: 1.3.0 + ramda: 0.30.1 + ramda-adjunct: 5.1.0(ramda@0.30.1) + transitivePeerDependencies: + - debug + + swagger-ui-react@5.32.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + '@babel/runtime-corejs3': 7.29.0 + '@scarf/scarf': 1.4.0 + base64-js: 1.5.1 + buffer: 6.0.3 + classnames: 2.5.1 + css.escape: 1.5.1 + deep-extend: 0.6.0 + dompurify: 3.2.6 + ieee754: 1.2.1 + immutable: 3.8.3 + js-file-download: 0.4.12 + js-yaml: 4.1.1 + lodash: 4.17.23 + prop-types: 15.8.1 + randexp: 0.5.3 + randombytes: 2.1.0 + react: 19.2.4 + react-copy-to-clipboard: 5.1.0(react@19.2.4) + react-debounce-input: 3.3.0(react@19.2.4) + react-dom: 19.2.4(react@19.2.4) + react-immutable-proptypes: 2.2.0(immutable@3.8.3) + react-immutable-pure-component: 2.2.2(immutable@3.8.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react-inspector: 6.0.2(react@19.2.4) + react-redux: 9.2.0(@types/react@19.2.14)(react@19.2.4)(redux@5.0.1) + react-syntax-highlighter: 16.1.1(react@19.2.4) + redux: 5.0.1 + redux-immutable: 4.0.0(immutable@3.8.3) + remarkable: 2.0.1 + reselect: 5.1.1 + serialize-error: 8.1.0 + sha.js: 2.4.12 + swagger-client: 3.37.0 + url-parse: 1.5.10 + xml: 1.0.1 + xml-but-prettier: 1.0.1 + zenscroll: 4.0.2 + transitivePeerDependencies: + - '@types/react' + - debug + + tailwind-merge@3.5.0: {} + + tailwindcss@4.2.1: {} + + tapable@2.3.0: {} + + tinyexec@1.0.2: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + to-buffer@1.2.2: + dependencies: + isarray: 2.0.5 + safe-buffer: 5.2.1 + typed-array-buffer: 1.0.3 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toggle-selection@1.0.6: {} + + tree-sitter-json@0.24.8(tree-sitter@0.21.1): + dependencies: + node-addon-api: 8.6.0 + node-gyp-build: 4.8.4 + optionalDependencies: + tree-sitter: 0.21.1 + optional: true + + tree-sitter@0.21.1: + dependencies: + node-addon-api: 8.6.0 + node-gyp-build: 4.8.4 + optional: true + + tree-sitter@0.22.4: + dependencies: + node-addon-api: 8.6.0 + node-gyp-build: 4.8.4 + optional: true + + trim-lines@3.0.1: {} + + trough@2.2.0: {} + + ts-api-utils@2.4.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + ts-mixer@6.0.4: {} + + ts-toolbelt@9.6.0: {} + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@2.8.1: {} + + tsx@4.21.0: + dependencies: + esbuild: 0.27.3 + get-tsconfig: 4.13.6 + optionalDependencies: + fsevents: 2.3.3 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 + + types-ramda@0.30.1: + dependencies: + ts-toolbelt: 9.6.0 + + typescript-eslint@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + typescript@5.9.3: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + undici-types@7.18.2: {} + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unist-util-is@6.0.1: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-remove-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit: 5.1.0 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + + unist-util-visit@5.1.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + unraw@3.0.0: {} + + unrs-resolver@1.11.1: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + + update-browserslist-db@1.2.3(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + + use-callback-ref@1.3.3(@types/react@19.2.14)(react@19.2.4): + dependencies: + react: 19.2.4 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + + use-sidecar@1.1.3(@types/react@19.2.14)(react@19.2.4): + dependencies: + detect-node-es: 1.1.0 + react: 19.2.4 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + + use-sync-external-store@1.6.0(react@19.2.4): + dependencies: + react: 19.2.4 + + util-deprecate@1.0.2: {} + + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + + web-namespaces@2.0.1: {} + + web-streams-polyfill@3.3.3: {} + + web-tree-sitter@0.24.5: + optional: true + + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.4 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.2 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.20 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.20: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + xml-but-prettier@1.0.1: + dependencies: + repeat-string: 1.6.1 + + xml-js@1.6.11: + dependencies: + sax: 1.5.0 + + xml@1.0.1: {} + + yallist@3.1.1: {} + + yaml@2.8.2: {} + + yocto-queue@0.1.0: {} + + zenscroll@4.0.2: {} + + zod-validation-error@4.0.2(zod@4.3.6): + dependencies: + zod: 4.3.6 + + zod@4.3.6: {} + + zwitch@2.0.4: {} diff --git a/tsconfig.json b/tsconfig.json index 4fd260f..c27c8f6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,11 @@ "compilerOptions": { "baseUrl": ".", "target": "ESNext", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "strict": true, @@ -13,11 +17,18 @@ "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, - "jsx": "preserve", + "jsx": "react-jsx", "incremental": true, "paths": { - "@/.source": ["./.source/index.ts"], - "@/*": ["./*"] + "fumadocs-mdx:collections/*": [ + ".source/*" + ], + "@/.source": [ + "./.source/index.ts" + ], + "@/*": [ + "./*" + ] }, "plugins": [ { @@ -25,6 +36,14 @@ } ] }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] -} + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + ".next/dev/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +} \ No newline at end of file From be289a22ad61df474ec3f83b0706ead920393ee6 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Tue, 10 Mar 2026 11:41:26 +0100 Subject: [PATCH 02/21] implement openapi integration for fumadocs --- app/docs/[[...slug]]/page.tsx | 13 +++++++++++++ app/global.css | 1 + components/api-page.client.tsx | 6 ++++++ components/api-page.tsx | 7 +++++++ lib/openapi.ts | 5 +++++ lib/source-docs.ts | 23 ++++++++++++++++------- lib/source-tech-docs.ts | 3 ++- mdx-components.tsx | 2 ++ 8 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 components/api-page.client.tsx create mode 100644 components/api-page.tsx create mode 100644 lib/openapi.ts diff --git a/app/docs/[[...slug]]/page.tsx b/app/docs/[[...slug]]/page.tsx index 10f2536..1fcca2b 100644 --- a/app/docs/[[...slug]]/page.tsx +++ b/app/docs/[[...slug]]/page.tsx @@ -8,6 +8,7 @@ import { import { notFound } from 'next/navigation'; import { createRelativeLink } from 'fumadocs-ui/mdx'; import { getMDXComponents } from '@/mdx-components'; +import { APIPage } from '@/components/api-page'; export default async function Page(props: { @@ -17,6 +18,18 @@ export default async function Page(props: { const page = source.getPage(params.slug); if (!page) notFound(); + // for OpenAPI pages + if (page.data.type === 'openapi') { + return ( + +

{page.data.title}

+ + + +
+ ); + } + const MDXContent = page.data.body; return ( diff --git a/app/global.css b/app/global.css index e6a932c..ebd461c 100644 --- a/app/global.css +++ b/app/global.css @@ -1,6 +1,7 @@ @import 'tailwindcss'; @import 'fumadocs-ui/css/black.css'; @import 'fumadocs-ui/css/preset.css'; +@import 'fumadocs-openapi/css/preset.css'; /* Hide the scheme container for Swagger UI */ .swagger-ui .scheme-container { diff --git a/components/api-page.client.tsx b/components/api-page.client.tsx new file mode 100644 index 0000000..3daad92 --- /dev/null +++ b/components/api-page.client.tsx @@ -0,0 +1,6 @@ +'use client'; +import { defineClientConfig } from 'fumadocs-openapi/ui/client'; + +export default defineClientConfig({ + // client-side config +}); \ No newline at end of file diff --git a/components/api-page.tsx b/components/api-page.tsx new file mode 100644 index 0000000..9651bf7 --- /dev/null +++ b/components/api-page.tsx @@ -0,0 +1,7 @@ +import { openapi } from '@/lib/openapi'; +import { createAPIPage } from 'fumadocs-openapi/ui'; +import client from './api-page.client'; + +export const APIPage = createAPIPage(openapi, { + client, +}); \ No newline at end of file diff --git a/lib/openapi.ts b/lib/openapi.ts new file mode 100644 index 0000000..dc16315 --- /dev/null +++ b/lib/openapi.ts @@ -0,0 +1,5 @@ +import { createOpenAPI } from 'fumadocs-openapi/server'; + +export const openapi = createOpenAPI({ + input: ['./openapi/test.yaml'], +}); diff --git a/lib/source-docs.ts b/lib/source-docs.ts index 4a4f6ed..89c0e9a 100644 --- a/lib/source-docs.ts +++ b/lib/source-docs.ts @@ -1,11 +1,20 @@ -import { loader } from 'fumadocs-core/source'; import { docs } from 'fumadocs-mdx:collections/server'; +import { loader, multiple } from 'fumadocs-core/source'; import { lucideIconsPlugin } from 'fumadocs-core/source/lucide-icons'; +import { openapiPlugin, openapiSource } from 'fumadocs-openapi/server'; +import { openapi } from '@/lib/openapi'; // See https://fumadocs.vercel.app/docs/headless/source-api for more info -export const source = loader({ - // it assigns a URL to your pages - baseUrl: '/docs', - source: docs.toFumadocsSource(), - plugins: [lucideIconsPlugin()], -}); +export const source = loader( + multiple({ + docs: docs.toFumadocsSource(), + openapi: await openapiSource(openapi, { + baseDir: 'openapi', + }), + }), + { + // it assigns a URL to your pages + baseUrl: '/docs', + //source: docs.toFumadocsSource(), + plugins: [lucideIconsPlugin(), openapiPlugin()], + },); diff --git a/lib/source-tech-docs.ts b/lib/source-tech-docs.ts index f85459b..5c53c79 100644 --- a/lib/source-tech-docs.ts +++ b/lib/source-tech-docs.ts @@ -1,11 +1,12 @@ import { techDocs } from 'fumadocs-mdx:collections/server'; import { loader } from 'fumadocs-core/source'; import { lucideIconsPlugin } from 'fumadocs-core/source/lucide-icons'; +import { openapiPlugin } from 'fumadocs-openapi/server'; // See https://fumadocs.vercel.app/docs/headless/source-api for more info export const source = loader({ // it assigns a URL to your pages baseUrl: '/tech-docs', source: techDocs.toFumadocsSource(), - plugins: [lucideIconsPlugin()], + plugins: [lucideIconsPlugin(), openapiPlugin()], }); diff --git a/mdx-components.tsx b/mdx-components.tsx index 7b3bd3c..0ea2524 100644 --- a/mdx-components.tsx +++ b/mdx-components.tsx @@ -6,6 +6,7 @@ import Video, { VideoProps } from './components/content-items/video'; import { joinPath } from './components/utils'; import ExampleBox, { ExampleBoxProps } from './components/content-items/example-box'; import ApiDoc from './components/api-doc'; +import { APIPage } from '@/components/api-page'; const basePath = process.env.NEXT_PUBLIC_BASE_PATH || ""; @@ -24,6 +25,7 @@ export function getMDXComponents(components?: MDXComponents): MDXComponents { />, ExampleBox: (props) => , ApiDoc: (props) => , + APIPage, ...components, }; } From bfeb53b50c32111a20d6ba6ced4850315da61d39 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Wed, 27 May 2026 10:57:39 +0200 Subject: [PATCH 03/21] Update tsconfig and swagger --- package.json | 2 +- tsconfig.json | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 26d39e1..9af2507 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "next": "16.1.6", "react": "^19.2.4", "react-dom": "^19.2.4", - "swagger-ui-react": "^5.29.5" + "swagger-ui-react": "^5.32.6" }, "devDependencies": { "@tailwindcss/postcss": "^4.1.15", diff --git a/tsconfig.json b/tsconfig.json index c27c8f6..078f4b0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,5 @@ { "compilerOptions": { - "baseUrl": ".", "target": "ESNext", "lib": [ "dom", @@ -21,7 +20,7 @@ "incremental": true, "paths": { "fumadocs-mdx:collections/*": [ - ".source/*" + "./.source/*" ], "@/.source": [ "./.source/index.ts" From cebc506b13bf50c78ee73f34a6df51ba42eb4b8d Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Mon, 1 Jun 2026 11:57:29 +0200 Subject: [PATCH 04/21] generate mdx files directly instead of virtual files --- app/docs/[[...slug]]/page.tsx | 14 -------------- lib/source-docs.ts | 9 +-------- scripts/generate-docs.ts | 25 +++++++++++++++++++++++++ 3 files changed, 26 insertions(+), 22 deletions(-) create mode 100644 scripts/generate-docs.ts diff --git a/app/docs/[[...slug]]/page.tsx b/app/docs/[[...slug]]/page.tsx index 1fcca2b..f09ed1e 100644 --- a/app/docs/[[...slug]]/page.tsx +++ b/app/docs/[[...slug]]/page.tsx @@ -8,8 +8,6 @@ import { import { notFound } from 'next/navigation'; import { createRelativeLink } from 'fumadocs-ui/mdx'; import { getMDXComponents } from '@/mdx-components'; -import { APIPage } from '@/components/api-page'; - export default async function Page(props: { params: Promise<{ slug?: string[] }>; @@ -18,18 +16,6 @@ export default async function Page(props: { const page = source.getPage(params.slug); if (!page) notFound(); - // for OpenAPI pages - if (page.data.type === 'openapi') { - return ( - -

{page.data.title}

- - - -
- ); - } - const MDXContent = page.data.body; return ( diff --git a/lib/source-docs.ts b/lib/source-docs.ts index 89c0e9a..1a00d01 100644 --- a/lib/source-docs.ts +++ b/lib/source-docs.ts @@ -2,19 +2,12 @@ import { docs } from 'fumadocs-mdx:collections/server'; import { loader, multiple } from 'fumadocs-core/source'; import { lucideIconsPlugin } from 'fumadocs-core/source/lucide-icons'; import { openapiPlugin, openapiSource } from 'fumadocs-openapi/server'; -import { openapi } from '@/lib/openapi'; // See https://fumadocs.vercel.app/docs/headless/source-api for more info export const source = loader( - multiple({ - docs: docs.toFumadocsSource(), - openapi: await openapiSource(openapi, { - baseDir: 'openapi', - }), - }), { // it assigns a URL to your pages baseUrl: '/docs', - //source: docs.toFumadocsSource(), + source: docs.toFumadocsSource(), plugins: [lucideIconsPlugin(), openapiPlugin()], },); diff --git a/scripts/generate-docs.ts b/scripts/generate-docs.ts new file mode 100644 index 0000000..2ca8dbe --- /dev/null +++ b/scripts/generate-docs.ts @@ -0,0 +1,25 @@ +import { openapi } from '@/lib/openapi'; +import { generateFiles } from 'fumadocs-openapi'; +import path from 'node:path'; + +void generateFiles({ + index: { + // for generating `href` + url: { + baseUrl: '/docs/api', + // paths produced by generateFiles are relative to `output` + contentDir: '.', + }, + items: [ + { + // output path + path: 'index.mdx', + // optional: set frontmatter + description: 'All available pages', + }, + ], + }, + input: openapi, + output: 'content/docs/api', + includeDescription: true, +}); From 8f619655a67de749ef98358f12f3d8507cb45bf1 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Mon, 1 Jun 2026 11:59:11 +0200 Subject: [PATCH 05/21] update fumadocs --- package.json | 6 +- pnpm-lock.yaml | 4022 +++++++++++++++++++++++++----------------------- 2 files changed, 2058 insertions(+), 1970 deletions(-) diff --git a/package.json b/package.json index 9af2507..2c9ff86 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,10 @@ }, "dependencies": { "@orama/orama": "^3.1.16", - "fumadocs-core": "16.6.8", + "fumadocs-core": "16.9.3", "fumadocs-mdx": "14.2.9", - "fumadocs-openapi": "10.3.15", - "fumadocs-ui": "16.6.8", + "fumadocs-openapi": "10.9.1", + "fumadocs-ui": "16.9.3", "lucide-react": "^0.546.0", "next": "16.1.6", "react": "^19.2.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 706a279..2f6719e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,36 +12,36 @@ importers: specifier: ^3.1.16 version: 3.1.18 fumadocs-core: - specifier: 16.6.8 - version: 16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6) + specifier: 16.9.3 + version: 16.9.3(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.15)(lucide-react@0.546.0(react@19.2.6))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3) fumadocs-mdx: specifier: 14.2.9 - version: 14.2.9(@types/mdast@4.0.4)(@types/mdx@2.0.13)(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 14.2.9(@types/mdast@4.0.4)(@types/mdx@2.0.13)(@types/react@19.2.15)(fumadocs-core@16.9.3(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.15)(lucide-react@0.546.0(react@19.2.6))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6) fumadocs-openapi: - specifier: 10.3.15 - version: 10.3.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(fumadocs-ui@16.6.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + specifier: 10.9.1 + version: 10.9.1(6c397e23616c8e23c2ab5a065a8a1f4c) fumadocs-ui: - specifier: 16.6.8 - version: 16.6.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.1) + specifier: 16.9.3 + version: 16.9.3(@tailwindcss/oxide@4.3.0)(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(fumadocs-core@16.9.3(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.15)(lucide-react@0.546.0(react@19.2.6))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(tailwindcss@4.3.0) lucide-react: specifier: ^0.546.0 - version: 0.546.0(react@19.2.4) + version: 0.546.0(react@19.2.6) next: specifier: 16.1.6 - version: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: specifier: ^19.2.4 - version: 19.2.4 + version: 19.2.6 react-dom: specifier: ^19.2.4 - version: 19.2.4(react@19.2.4) + version: 19.2.6(react@19.2.6) swagger-ui-react: - specifier: ^5.29.5 - version: 5.32.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + specifier: ^5.32.6 + version: 5.32.6(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) devDependencies: '@tailwindcss/postcss': specifier: ^4.1.15 - version: 4.2.1 + version: 4.3.0 '@types/mdx': specifier: ^2.0.13 version: 2.0.13 @@ -50,31 +50,31 @@ importers: version: 25.3.3 '@types/react': specifier: ^19.2.2 - version: 19.2.14 + version: 19.2.15 '@types/react-dom': specifier: ^19.2.2 - version: 19.2.3(@types/react@19.2.14) + version: 19.2.3(@types/react@19.2.15) '@types/swagger-ui-react': specifier: ^5.18.0 version: 5.18.0 eslint: specifier: ^10.0.2 - version: 10.0.2(jiti@2.6.1) + version: 10.4.1(jiti@2.7.0) eslint-config-next: specifier: 16.1.6 - version: 16.1.6(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + version: 16.1.6(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) postcss: specifier: ^8.5.6 - version: 8.5.8 + version: 8.5.15 shiki: specifier: ^4.0.1 - version: 4.0.1 + version: 4.1.0 tailwindcss: specifier: ^4.1.15 - version: 4.2.1 + version: 4.3.0 tsx: specifier: ^4.21.0 - version: 4.21.0 + version: 4.22.4 typescript: specifier: ^5.8.3 version: 5.9.3 @@ -85,242 +85,398 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@babel/code-frame@7.29.0': - resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.29.0': - resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} + '@babel/compat-data@7.29.7': + resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} engines: {node: '>=6.9.0'} - '@babel/core@7.29.0': - resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + '@babel/core@7.29.7': + resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.29.1': - resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + '@babel/generator@7.29.7': + resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.28.6': - resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + '@babel/helper-compilation-targets@7.29.7': + resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} engines: {node: '>=6.9.0'} - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.28.6': - resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.28.6': - resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + '@babel/helper-validator-option@7.29.7': + resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.6': - resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} + '@babel/helpers@7.29.7': + resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.0': - resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/runtime-corejs3@7.29.0': - resolution: {integrity: sha512-TgUkdp71C9pIbBcHudc+gXZnihEDOjUAmXO1VO4HHGES7QLZcShR0stfKIxLSNIYx2fqhmJChOjm/wkF8wv4gA==} + '@babel/runtime-corejs3@7.29.7': + resolution: {integrity: sha512-ppj9ouYku+RX0ljtgZd+KMO5mkM2bCqg8H2PYAFWnLsHEIKIdRojqbJ2i3eVHrisuxy7nOFCmngTDdWtUCdXUQ==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.28.6': - resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + '@babel/traverse@7.29.7': + resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} engines: {node: '>=6.9.0'} - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} engines: {node: '>=6.9.0'} - '@emnapi/core@1.8.1': - resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/runtime@1.8.1': - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/wasi-threads@1.1.0': - resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + '@esbuild/aix-ppc64@0.28.0': + resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + '@esbuild/android-arm64@0.28.0': + resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.28.0': + resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.28.0': + resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + '@esbuild/darwin-arm64@0.28.0': + resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.28.0': + resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.28.0': + resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + '@esbuild/freebsd-x64@0.28.0': + resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.28.0': + resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + '@esbuild/linux-arm@0.28.0': + resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.28.0': + resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.27.3': - resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.27.3': - resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + '@esbuild/linux-loong64@0.28.0': + resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.27.3': - resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + '@esbuild/linux-mips64el@0.28.0': + resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.28.0': + resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.27.3': - resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.28.0': + resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.27.3': - resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.27.3': - resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + '@esbuild/linux-s390x@0.28.0': + resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.27.3': - resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + '@esbuild/linux-x64@0.28.0': + resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-arm64@0.28.0': + resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': - resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.27.3': - resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + '@esbuild/netbsd-x64@0.28.0': + resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': - resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + '@esbuild/openbsd-arm64@0.28.0': + resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.28.0': + resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.27.3': - resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.27.3': - resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + '@esbuild/openharmony-arm64@0.28.0': + resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.28.0': + resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.27.3': - resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.27.3': - resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + '@esbuild/win32-arm64@0.28.0': + resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.28.0': + resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.27.3': - resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.28.0': + resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -335,24 +491,24 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.23.2': - resolution: {integrity: sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==} + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.5.2': - resolution: {integrity: sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==} + '@eslint/config-helpers@0.6.0': + resolution: {integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@1.1.0': - resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==} + '@eslint/core@1.2.1': + resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/object-schema@3.0.2': - resolution: {integrity: sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw==} + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.6.0': - resolution: {integrity: sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==} + '@eslint/plugin-kit@0.7.2': + resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@floating-ui/core@1.7.5': @@ -370,17 +526,14 @@ packages: '@floating-ui/utils@0.2.11': resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} - '@formatjs/fast-memoize@3.1.0': - resolution: {integrity: sha512-b5mvSWCI+XVKiz5WhnBCY3RJ4ZwfjAidU0yVlKa3d3MSgKmH1hC3tBGEAtYyN5mqL7N0G5x0BOUYyO8CEupWgg==} - - '@formatjs/intl-localematcher@0.8.1': - resolution: {integrity: sha512-xwEuwQFdtSq1UKtQnyTZWC+eHdv7Uygoa+H2k/9uzBVQjDyp9r20LNDNKedWXll7FssT3GRHvqsdJGYSUWqYFA==} - - '@fumadocs/tailwind@0.0.3': - resolution: {integrity: sha512-/FWcggMz9BhoX+13xBoZLX+XX9mYvJ50dkTqy3IfocJqua65ExcsKfxwKH8hgTO3vA5KnWv4+4jU7LaW2AjAmQ==} + '@fumadocs/tailwind@0.0.5': + resolution: {integrity: sha512-ENKPWUDRmriccsrUDE4bDBq3FNr/ms3BP2rWlsAEMV1yP23pcCaan+ceGfeBUsAQjw7sj9Q3R4Kl3g/TCStPzQ==} peerDependencies: + '@tailwindcss/oxide': ^4.0.0 tailwindcss: ^4.0.0 peerDependenciesMeta: + '@tailwindcss/oxide': + optional: true tailwindcss: optional: true @@ -393,8 +546,8 @@ packages: json-schema-typed: optional: true - '@fumari/stf@1.0.3': - resolution: {integrity: sha512-rSHaCnCREbDFTD4BNU40ZNjvkhg5wcKzJ1OPsPeKbFzVo9gmm1JE2lGhqsfPhDhuBOV+ZNqZy9+5T+JudKY1NA==} + '@fumari/stf@1.0.5': + resolution: {integrity: sha512-O9UQIbV15ePV5vUgceCcaMDuBRYfrSuogDEY5E//CmrbIiWJ1Ji5VgGHHH0L0HQuRr5riUJuAEr9lYIvJl9OyQ==} peerDependencies: '@types/react': '*' react: ^19.2.0 @@ -403,12 +556,16 @@ packages: '@types/react': optional: true - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.7': - resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': @@ -591,8 +748,11 @@ packages: '@mdx-js/mdx@3.1.1': resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} - '@napi-rs/wasm-runtime@0.2.12': - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 '@next/env@16.1.6': resolution: {integrity: sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==} @@ -1053,59 +1213,35 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@scalar/helpers@0.2.18': - resolution: {integrity: sha512-w1d4tpNEVZ293oB2BAgLrS0kVPUtG3eByNmOCJA5eK9vcT4D3cmsGtWjUaaqit0BQCsBFHK51rasGvSWnApYTw==} - engines: {node: '>=20'} - - '@scalar/json-magic@0.11.7': - resolution: {integrity: sha512-GVz9E0vXu+ecypkdn0biK1gbQVkK4QTTX1Hq3eMgxlLQC91wwiqWfCqwfhuX0LRu+Z5OmYhLhufDJEEh56rVgA==} - engines: {node: '>=20'} - - '@scalar/openapi-types@0.5.4': - resolution: {integrity: sha512-2pEbhprh8lLGDfUI6mNm9EV104pjb3+aJsXrFaqfgOSre7r6NlgM5HcSbsLjzDAnTikjJhJ3IMal1Rz8WVwiOw==} - engines: {node: '>=20'} - - '@scalar/openapi-upgrader@0.1.11': - resolution: {integrity: sha512-ngJcHGoCHmpWgYtNy08vmzFfLdQEkMpvaCQqNPPMNKq0QEXOv89e/rn+TZJZgPnRlY7fDIoIhn9lNgr+azBW+w==} - engines: {node: '>=20'} - '@scarf/scarf@1.4.0': resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} - '@shikijs/core@4.0.1': - resolution: {integrity: sha512-vWvqi9JNgz1dRL9Nvog5wtx7RuNkf7MEPl2mU/cyUUxJeH1CAr3t+81h8zO8zs7DK6cKLMoU9TvukWIDjP4Lzg==} - engines: {node: '>=20'} - - '@shikijs/engine-javascript@4.0.1': - resolution: {integrity: sha512-DJK9NiwtGYqMuKCRO4Ip0FKNDQpmaiS+K5bFjJ7DWFn4zHueDWgaUG8kAofkrnXF6zPPYYQY7J5FYVW9MbZyBg==} + '@shikijs/core@4.1.0': + resolution: {integrity: sha512-jLJtSJeuFffqX6/inRE1zqU5aFv2hrszvYgq3OjbAgFRZiWv7abKMDdQzYxuSDfmUPQozZvI/kuy6VMTvnvqTQ==} engines: {node: '>=20'} - '@shikijs/engine-oniguruma@4.0.1': - resolution: {integrity: sha512-oCWdCTDch3J8Kc0OZJ98KuUPC02O1VqIE3W/e2uvrHqTxYRR21RGEJMtchrgrxhsoJJCzmIciKsqG+q/yD+Cxg==} + '@shikijs/engine-javascript@4.1.0': + resolution: {integrity: sha512-YquhawCUgaBfhsS72e2Y/dI59gCBNPHu3fEO/tvLaXrTssxZrY5ddjtNLTwndrMgPo8b3IscE+xoICDzpTmlFQ==} engines: {node: '>=20'} - '@shikijs/langs@4.0.1': - resolution: {integrity: sha512-v/mluaybWdnGJR4GqAR6zh8qAZohW9k+cGYT28Y7M8+jLbC0l4yG085O1A+WkseHTn+awd+P3UBymb2+MXFc8w==} + '@shikijs/engine-oniguruma@4.1.0': + resolution: {integrity: sha512-axLpjVs45YBvvINa+dJF+NPW+KtFkNXsFr4SDw2BMj9GdeMnGxVB9PQb2xXlJYovslt/nz6giedAyOANkfc7hg==} engines: {node: '>=20'} - '@shikijs/primitive@4.0.1': - resolution: {integrity: sha512-ns0hHZc5eWZuvuIEJz2pTx3Qecz0aRVYumVQJ8JgWY2tq/dH8WxdcVM49Fc2NsHEILNIT6vfdW9MF26RANWiTA==} + '@shikijs/langs@4.1.0': + resolution: {integrity: sha512-nwOMruEkbgdZfQ/b8CgpNBVOpvG1k0N5tbmgiFeqsan401+x3ILqlzZJowSla4Agmq4hG2Uf2wh5jLTEhR8VSg==} engines: {node: '>=20'} - '@shikijs/rehype@4.0.1': - resolution: {integrity: sha512-bx7bYA0/p/pgeEICaPO0jT6TXrXHmr9tGRUDhOMy1cAUN2YA0iANfXX7seBnImy8DGu/rxm1ij9/ZofYrAaUjQ==} + '@shikijs/primitive@4.1.0': + resolution: {integrity: sha512-zx2/2Uwj2q9X3KSyYREEhXO23xBw5WUhP4orK2lE4r+t9JGITmEe0JH+wPmJhqHpOT2bRRs6lAL945+LDvOAGw==} engines: {node: '>=20'} - '@shikijs/themes@4.0.1': - resolution: {integrity: sha512-FW41C/D6j/yKQkzVdjrRPiJCtgeDaYRJFEyCKFCINuRJRj9WcmubhP4KQHPZ4+9eT87jruSrYPyoblNRyDFzvA==} + '@shikijs/themes@4.1.0': + resolution: {integrity: sha512-emCcTnUM7yO2wltYbaxm+yLvcCI4+h8XBKc4KmJ7EZUXoSGjcCHifkI//R4OFit9ewpg7H2/9tjOuXrT2v/Knw==} engines: {node: '>=20'} - '@shikijs/transformers@4.0.1': - resolution: {integrity: sha512-oE46W2eHpvD06+C0MBthd2YrDM6cktvJDFl764tOEXxfr3dAJhxMc0uNZ2tQXp+bkMgl4E7IL88Mj9RnSqiayw==} - engines: {node: '>=20'} - - '@shikijs/types@4.0.1': - resolution: {integrity: sha512-EaygPEn57+jJ76mw+nTLvIpJMAcMPokFbrF8lufsZP7Ukk+ToJYEcswN1G0e49nUZAq7aCQtoeW219A8HK1ZOw==} + '@shikijs/types@4.1.0': + resolution: {integrity: sha512-3EQWX54fMpniOrDblzAhiwiJwpiTMW6+B9DWyUd9ska483tbayFYuw47UxwuPknI31bKnySfVQ/QW+jFL4rFdA==} engines: {node: '>=20'} '@shikijs/vscode-textmate@10.0.2': @@ -1114,113 +1250,113 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@swagger-api/apidom-ast@1.6.0': - resolution: {integrity: sha512-ez1KnBdAzoh5a6ijDXzu5nADkVZXlnL1RkLl8n2u2tjiNg9597xxmFdEHLVa31Vxr1yYj0WtYGLA5e2Kp0KNrQ==} + '@swagger-api/apidom-ast@1.11.1': + resolution: {integrity: sha512-5vcFzXltmIpCsjQouVKzjj7pPPUxYmwIARHuenim96GDnmqqVTtAoBXpIX++cD5RcJA72EBEqepQ+VSAA12RPA==} - '@swagger-api/apidom-core@1.6.0': - resolution: {integrity: sha512-gA1MVoXe19sjFLKGkWxp5VvSw3Tk0CSChfItJjFeFHpLSGrfm+LlXp37TmNSns53Ky0F7x7TB/5kAX5I/TO4xw==} + '@swagger-api/apidom-core@1.11.1': + resolution: {integrity: sha512-KsN0dZBsutUGWtbsqBMvQ+3pJUjq/wRRABCNIG2Ys/1Ctq8FaQaA0MoICPuYgDZCUNsZuJYbw6Swm6e0GaHWtA==} - '@swagger-api/apidom-error@1.6.0': - resolution: {integrity: sha512-xp/cQ1xQ/4Vd/hhQfONK7ea9oVc3JUXAYyfRzvDR0lxISly/SyD2jMcqXzHtrylBAnv7V2HSsbC1BWo7ZJDLSQ==} + '@swagger-api/apidom-error@1.11.1': + resolution: {integrity: sha512-7KV2Ac4BOcrv4yJz7T5DbZiTdqbnVUT+g68Hjhabl5zhD28mfEEn9V8Zq2D6rtjlCYkqWAMFb8Y6Y+9ssH5wgA==} - '@swagger-api/apidom-json-pointer@1.6.0': - resolution: {integrity: sha512-RO6P5Gt64AnthGXKeqIFjQCLVFbAJvLYAb67TkvRQ9US4lNixFtFsYJnhLCC4ymz4dTT1hacG0cmTRGcEHF9ig==} + '@swagger-api/apidom-json-pointer@1.11.1': + resolution: {integrity: sha512-c8QSUgQxDolTO+rP2bvX4CrZOrnTMTAMh0xGq8LaYvzVzs0bQT7ZApsbcA/4bzWlwcg6wy2Uuw+qMadl1FNR3w==} - '@swagger-api/apidom-ns-api-design-systems@1.6.0': - resolution: {integrity: sha512-EYJfQ4JYuUo2J4QiiLnA/8LmM1k7AQcf1XVE+NrIpZ1160GIzqE+W5uOXkhAOImkP2Cb7EZZdE2cFE/tMYxNvw==} + '@swagger-api/apidom-ns-api-design-systems@1.11.1': + resolution: {integrity: sha512-2K3Ix+nRHDkuixkZ4FAMWY5MAJHipzpFvZrRtneZ7hsx7nObw9HYEXZw/yXuYrvnhC8jsE4z91Gwuvvz7ZjfPw==} - '@swagger-api/apidom-ns-arazzo-1@1.6.0': - resolution: {integrity: sha512-5rF8PyBiIHh6NfC5Y0WypW11X6hQIWr88EKNOQbBuT/nnzAsOznrUCfQ99FYGLucwdOHaMIBn/b/n4ejGBto/A==} + '@swagger-api/apidom-ns-arazzo-1@1.11.1': + resolution: {integrity: sha512-rnICw0uXnKeNHUaS+Ip7lxtVXqH1iA3zFlX446e4XAamJd6yU28sujIsGiZ71qPQ217teidkfK7Bx7MktHdiEw==} - '@swagger-api/apidom-ns-asyncapi-2@1.6.0': - resolution: {integrity: sha512-tOodfX+o7lonEAnSAxet7nCayW+EqtKPegT06WXt7Llq1LS9eYZ9YzXdFgIwCm8UzfEpZdVLqtxbdLX9vuUtSg==} + '@swagger-api/apidom-ns-asyncapi-2@1.11.1': + resolution: {integrity: sha512-syABiWLeWRfKoonUhPriPVwDDeEOlN5RD20Dj/MS9DT5r1BJUrAB1BfRRRHsVhzaXVdUcKKH99iC9C842J9kvA==} - '@swagger-api/apidom-ns-asyncapi-3@1.6.0': - resolution: {integrity: sha512-lRMvwTdtuPcwJEYLTX/UGtECpHi9UNYeT9rmWMw3LiKZrZzYc2L8q4ipPbpWwH8t7QfsF2u0iggCODU99lXCnw==} + '@swagger-api/apidom-ns-asyncapi-3@1.11.1': + resolution: {integrity: sha512-y4syE8jOEGuSirc3YaeI0dh3rEvHfc/pERQOTj3KofS2IABpBXTmtg+oDfG2zte1/Cyc/eJ6qecVAns5mhBpow==} - '@swagger-api/apidom-ns-json-schema-2019-09@1.6.0': - resolution: {integrity: sha512-dee1i8wcAFgDEOzTsyoCzQhFLZ2JKzkK5KkRuryabvwS0hG2mKlogToFc8cO2MkkiLSpERm7DREALwSTFVHa0w==} + '@swagger-api/apidom-ns-json-schema-2019-09@1.11.1': + resolution: {integrity: sha512-1SNXikZN2uQ1YZ3A4dzWBoMN6wTkba1qZdy/NOkweFtoLuBb63KKN/gD1e6chQV8+ikqGn8TTUZnYvX6SVBZ6g==} - '@swagger-api/apidom-ns-json-schema-2020-12@1.6.0': - resolution: {integrity: sha512-ldTxSnnIXskwpN6yCJkasqs32pJXwoXyad95crKT0xjZZr4fTrcAXXIyzdjBubiY9tK6elSrQGQxinJcV7ivWw==} + '@swagger-api/apidom-ns-json-schema-2020-12@1.11.1': + resolution: {integrity: sha512-oyvTkjDXI9k3G8oVHOvpL/t1MfZmx8d7rgeNqsm6j/vK6WlOXIOHdN9LTYRo8YdACaWq/JV5B30grkio/HRMKQ==} - '@swagger-api/apidom-ns-json-schema-draft-4@1.6.0': - resolution: {integrity: sha512-t9HvHwrevEG7usosO6AdXmC8oYqje5nxHpUmODr72tUtCeAeGEGEb9lgqx7fBhjc3BYsRzOL1hX56m1gjEyCog==} + '@swagger-api/apidom-ns-json-schema-draft-4@1.11.1': + resolution: {integrity: sha512-Ha23zkVSItmFZbAoSKMI7hwYJT7yTMWO+EcNzDBEClsqRrkcCtvF2YsiQZcyUt5SrEwV8rW0TWE0CVG+WEs2zg==} - '@swagger-api/apidom-ns-json-schema-draft-6@1.6.0': - resolution: {integrity: sha512-aoyvQWgAOcZGTe5OfJ3r24DvXHHbrkKtAnxTOEdZzV/uOm6/cbuT8m02+aMOqWPxei1naC3ZHW9iHrETtfgV3w==} + '@swagger-api/apidom-ns-json-schema-draft-6@1.11.1': + resolution: {integrity: sha512-Gm4ULCg4yulfjZiMIbH1XiiKHI/BqK0zc1GexViiLShXS35/2dc27GmpI0YgV7S+DqvivNrwAkqojeN7ho9/NA==} - '@swagger-api/apidom-ns-json-schema-draft-7@1.6.0': - resolution: {integrity: sha512-GjmC4+AHQh22fRZOmV+jSYMJTXh243XvdACfIQ//39kQu7gQsimF4PVSY2IgWSvS/I1ukWdPBYmDvOKryBPGrw==} + '@swagger-api/apidom-ns-json-schema-draft-7@1.11.1': + resolution: {integrity: sha512-OHW4Qb0BqbHJ3QoQcGREE5bobMeBkZzSQe/0RFGayhI1HJZqrmwtot2nLAuie9sQJoj/xeUprOsA/he06NVFEw==} - '@swagger-api/apidom-ns-openapi-2@1.6.0': - resolution: {integrity: sha512-xbmYzagnB8rO7sYwNGVyxYbNBkjCWnMhlnMrxkPtfQ/2u2ANAmTnCB/S/cMswX5XofiRJbznKAjLDSKBS+mLpQ==} + '@swagger-api/apidom-ns-openapi-2@1.11.1': + resolution: {integrity: sha512-yXHJmyN+NyF2xBD6KlFmGuMrf1hKqK9pm/FwStepIUqvn6bfTGgEdUi5BivQuErRrN6NtQczFF21Jlu6jjg86Q==} - '@swagger-api/apidom-ns-openapi-3-0@1.6.0': - resolution: {integrity: sha512-AOvW7a2H27inepcTBAWaBMjJLrCh5IPWD4nTU+gysULC7IW6gphO8hj3iUuTmFBcGh9be89GBbvv2y/EGAfx9w==} + '@swagger-api/apidom-ns-openapi-3-0@1.11.1': + resolution: {integrity: sha512-R2zHd33OiVT5eTlYKS1FyVDP0G76ymdP2EIrBPbM1FDKam1kRIRdgZA2StCd9PY4oNp/LqQKMnfe9wdLWZS3AA==} - '@swagger-api/apidom-ns-openapi-3-1@1.6.0': - resolution: {integrity: sha512-jCVypc8503zDSxAQlyV8j1vzwc75VBdWHtE2O0F+q5j9qNtGxw/ekbDkgrydYRaGBl92mf16dtPjtp5LwJD0Hw==} + '@swagger-api/apidom-ns-openapi-3-1@1.11.1': + resolution: {integrity: sha512-FtoW4wkFO1VSHu6G+wUZ71hQhIOuastJPyWEePbfySE4Uiz+01t/X/ODnl2OHRGVUYFoJa7kJi5/xqcsprdxtA==} - '@swagger-api/apidom-ns-openapi-3-2@1.6.0': - resolution: {integrity: sha512-QcFAUucaPaWiOKOEaaGqSfK3OtjeGJodWZLsuBQ0vrHaHkWyQ7jwsM1DJbc1Y8geOBeD2wIwdrdRjoulmqU1SA==} + '@swagger-api/apidom-ns-openapi-3-2@1.11.1': + resolution: {integrity: sha512-ILJAgp6mHwoV8rRuKYD3QuvPdcRcmK9YmAfrsjgC7fJM7irqzC+nBOKhrWVpTAee7r3b+B3HpV5MG8aKGd9qNQ==} - '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.6.0': - resolution: {integrity: sha512-vz/9k0X/kh6mLm+Fi+LGNk/yyFq28wxI29ZVLW+b7ulcODikv+NaDnyN2n2kLKCvIchPATzAEvqMvVMuuQwWlg==} + '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.11.1': + resolution: {integrity: sha512-bCt1/7NPfCznhq2D3Y1UcZowdxMtr6wGCISMSPf3ziaCcOQhy7sG/nWEzS/rwcKCVNefVft833Ab3jaCWGivJw==} - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.6.0': - resolution: {integrity: sha512-QAq4H6YzRtysSpvLtlJ8WZ22/1Mht+/iarrUOijxDZQPAGfYeUoIicnCqxkVZYSea85sQl+3kiCCB3nhSH+L0g==} + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.11.1': + resolution: {integrity: sha512-hUcshr5ydn/L4VsgP5nyrFDp4QqIADrx5nQnFddw/OWCNi1Al19ccPxuBh1Qlf421AAmk1oUiybeGyduvRsVPQ==} - '@swagger-api/apidom-parser-adapter-arazzo-json-1@1.6.0': - resolution: {integrity: sha512-syKPG3a9IGRvlGhXIEUzWhwbEuFbj+UwwtqaKu8zu771V+DRtH+wxyOkX54vKAIlApz/FgeUbmlWA1ZtYBlSIQ==} + '@swagger-api/apidom-parser-adapter-arazzo-json-1@1.11.1': + resolution: {integrity: sha512-8ydiEnlSJ7DPhFqg9Z11u4Vda16yaOuIGLablI0mOnYoAMTlqnteGk5CDPlVb970VBTYvsNlgW+164XfHAU/6w==} - '@swagger-api/apidom-parser-adapter-arazzo-yaml-1@1.6.0': - resolution: {integrity: sha512-IVVLn+a8Q1iQcQsm4tXiAPghHJuJSB1rhIlDyHe3tSQgt9HOSiVpbnJDpwE/JBxxDxSAkeT6Ovo+fi2T5AmHYg==} + '@swagger-api/apidom-parser-adapter-arazzo-yaml-1@1.11.1': + resolution: {integrity: sha512-G4++rZDMKokEfq78EJ2aE7pgd1Xo70XIn1/ikSiT5awfuhPJzNcV99ZdzQI2xVVU/pbKIL2Vc/b5SP1IRlfCwA==} - '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.6.0': - resolution: {integrity: sha512-aSUi22ELTDvdCLA3nIUOehuNBcHSeCqU7S7YNiHP/mwE4Q07pwQrYXijH2PROfCdjlZNNN34m6Ptakd92jliJQ==} + '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.11.1': + resolution: {integrity: sha512-7Npn4LkG4q95b2VimG3SV0lqgG3xPeF5Srq+sVbG7iFd4yDubvEVy5zzqx5QH4tOtATdarhv6glA9j3hTfWBdQ==} - '@swagger-api/apidom-parser-adapter-asyncapi-json-3@1.6.0': - resolution: {integrity: sha512-Ic53vcFF9zniDyCXOGSwwuAdEBUn5lFEAa0m2i30R36cQFHBCCuvbzbMQjWdr+oML0Aw4XoqOwZCQgkJJICpPA==} + '@swagger-api/apidom-parser-adapter-asyncapi-json-3@1.11.1': + resolution: {integrity: sha512-/C1CzsnUW2ZMBg4kWYrhrfqmyjb4aGo9+YaySQwdArLfM8l2HCOQqDEteGIivedVEsmTpVdhC60gdb6N2VzSaQ==} - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.6.0': - resolution: {integrity: sha512-d/w7X+T4vT+KPqb+8xUm6n4pbHsGB28jdxE9rNVbxhu6D3owny2uxfglwaFh4fJG6FQMavCwl/QzfB4newdoKQ==} + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.11.1': + resolution: {integrity: sha512-0Xfu8PLM787el0R7lwjFfQYe0Bpv3Jz0YlkEiQqAVvftVb0oNi8tg9FhDTR8ju/N94gpNXIfaH/5Ahgz5G+NKg==} - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3@1.6.0': - resolution: {integrity: sha512-Wmf0LY59TZxQhqrJU2pcnUikcChVB4IqGPgjtOFLUoqPpz8FSwYbJ/SPnSMSl+QuncxROheSFsgZ6Tupv0sPHw==} + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3@1.11.1': + resolution: {integrity: sha512-DqoR43NsFBmiJW1h2Xg3n2V6NQx+95qJ3ziA9rIbKJHGCidHtjNJgi4I7sWGnaIApIHijYY2bW22MKXaT0a0cQ==} - '@swagger-api/apidom-parser-adapter-json@1.6.0': - resolution: {integrity: sha512-WdAS+dBAB2t18HuUgSZy5b8JM7uXfn1RlPymJNRMUsrKYCTtPrQ/0q3YfnBjPhtjSSNCp+p1wajxHAFS7cj2VA==} + '@swagger-api/apidom-parser-adapter-json@1.11.1': + resolution: {integrity: sha512-L8XFzTbEknHDhD40M/pSoDlimjlYaXXWZS4AmyD3i+XRfiDWWVhEWHPE9OTNk6UL8R6DOBm3RSDxAd5xpLoPjg==} - '@swagger-api/apidom-parser-adapter-openapi-json-2@1.6.0': - resolution: {integrity: sha512-Q36W1FzdVaY7Oh98533dzCUghwb8k3ZMdlnV37V1H13FlUkj3tVZiWaeaCLwIakzQ7XXYaQTOP+VrRhDRjzhUA==} + '@swagger-api/apidom-parser-adapter-openapi-json-2@1.11.1': + resolution: {integrity: sha512-s9xZa/h4Yiz+Qc304s+9JSTPFsToYtSWQCeyA9jkHOWy/Oq8ZjD9wg34IjENS3yBqM1YLz6Dk+PX06DcyAOnnw==} - '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.6.0': - resolution: {integrity: sha512-UY+obOLTPHJvnXscdMY9XwZyuqcnBe6cu9TURjJgkO/QpOpPDqqZoRyurKZgRrX0Pv9B1zR3EIzhl01u/jeUaw==} + '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.11.1': + resolution: {integrity: sha512-dLGaVn24N+YZRB0vzQMC4R+aiSNfD81Xcp5TwdEbE+jOeOnoOe5NqzqCWjaDpSMChDsK/NdaSDjQj4uiYfWpug==} - '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.6.0': - resolution: {integrity: sha512-4ch04/96lYMXQu6odqa6H0aJmV8UefnBJKX1CPuL4qcPSPMFCurcXHGpPHrwMu1p/4Q9H+yRVlYeNQV10xvM0w==} + '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.11.1': + resolution: {integrity: sha512-EnYF3rzPZoiCYDnp4ChB6K15RUV4rE6QfEh7fTEwIlkWMUKv4oVwZd8aqz2i9laRZiBH6S2uUoED8YNtCNbeIg==} - '@swagger-api/apidom-parser-adapter-openapi-json-3-2@1.6.0': - resolution: {integrity: sha512-fWR2gjMQg00QIimcXQMSVeLnCH/2iuDD/Dx8TzVHmKV/IKlu+TnmIVosdlDfRmOB+4duwU6/yfoA79IEhFeZdw==} + '@swagger-api/apidom-parser-adapter-openapi-json-3-2@1.11.1': + resolution: {integrity: sha512-digw37g+k/rg87HHMUHuSZVWH1Kh8OjC8SmQflIh1Oot9fGhmnZWddsws+sKWSVy6/HveuZPykL8bxtSV3Nc/A==} - '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.6.0': - resolution: {integrity: sha512-dkEh1Rw9uvuIAOTfKjWRX2rLWP+xJ/Eqdkqeo0I0BWFKXX49YcDpHJV4XHpmd5FbsjJ9vBYr0hAmkbl32TtR4g==} + '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.11.1': + resolution: {integrity: sha512-b38GFur/NjjLFBCVR/wo7DRF6EW5h8B5jBe7C17EVaJvg9eRzknnr9/KMnxYeTtjQVO8W/JeY7LlLad1/j0pcA==} - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.6.0': - resolution: {integrity: sha512-6azq5YonWdzHcO9llK9zn1a+rGxlTz2Uf8p8NWDQnl2AZ56neDLYEL3mNDlrMXAy8dSJIHw+u9VF1OOzdslIHQ==} + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.11.1': + resolution: {integrity: sha512-dza6Bwe5kLL+4jANuaScxvYh3o7RxESp6Riz6M09cXRysyRrHFQ7UYuUhxepSD4jSiSxJQS8nu0i547i6Z7W7Q==} - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.6.0': - resolution: {integrity: sha512-g2tGCXyIAC0IA6JjA0HVxHWyCovyfAxDQ+pMAJ6qm4PfrZHB+oXKWKZHNNmQaFiKdc/SVdMQq6Up0mXOQs7IOQ==} + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.11.1': + resolution: {integrity: sha512-PgmolQN1PYdROSo/cHNyXINVD+aLmW6VqfwT7potNo08c4aWj+QQ/a0Az+mldfJ+G98WjNRvEKr8dhEw8zfqmw==} - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2@1.6.0': - resolution: {integrity: sha512-NGkdG9X5Svi89ZBluNseyUBNdgB9MkbTTNmerVKKOmCCHaVbzIb6UFPXf1MifSFyT+wTeGZk6WZLgRIDsTAZ5Q==} + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2@1.11.1': + resolution: {integrity: sha512-+nmtJ3/wPLBBN6d8xI8rD0mOz80V4iSRe6rYYOQ/skel673N1SY4B58Ufnc7KnMNV4cOce/a52ASQ1Qd1csLvQ==} - '@swagger-api/apidom-parser-adapter-yaml-1-2@1.6.0': - resolution: {integrity: sha512-UwSE5pPUJ+ag7ZCbesgx/SJ8zUD3Sx+2U4AD3/1G1EJ+0gb7FMYgihuOT8ujmBfZVGGm3HMIEIa1w3zha08v2g==} + '@swagger-api/apidom-parser-adapter-yaml-1-2@1.11.1': + resolution: {integrity: sha512-KEgk5PoSmmLC7ZvH0+RF4FPyWAj0NyrPFbTr04DmNPznfr2qpGqvt3ZBmAJm82jrWoI1dc8EH1ugT1YX69N8ww==} - '@swagger-api/apidom-reference@1.6.0': - resolution: {integrity: sha512-gYTDfWQM1heqrCCrCsZH+EWDyAkIGqEJnSJcVWKngwOkXJKeUwat8p1TOW4q3rkaTT+fBaYbrjTr9SkFtVbdMg==} + '@swagger-api/apidom-reference@1.11.1': + resolution: {integrity: sha512-wxsRo12YVc2Q4o81K9EGzX5oM1htNDkeCIRkLyg1wPvzFQUH4khd6aOWYaX/0V0L+7yqwwmeW/t80xV8qLEGAQ==} '@swaggerexpert/cookie@2.0.2': resolution: {integrity: sha512-DPI8YJ0Vznk4CT+ekn3rcFNq1uQwvUHZhH6WvTSPD0YKBIlMS9ur2RYKghXuxxOiqOam/i4lHJH4xTIiTgs3Mg==} @@ -1233,69 +1369,69 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@tailwindcss/node@4.2.1': - resolution: {integrity: sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==} + '@tailwindcss/node@4.3.0': + resolution: {integrity: sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==} - '@tailwindcss/oxide-android-arm64@4.2.1': - resolution: {integrity: sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==} + '@tailwindcss/oxide-android-arm64@4.3.0': + resolution: {integrity: sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==} engines: {node: '>= 20'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.2.1': - resolution: {integrity: sha512-q/LHkOstoJ7pI1J0q6djesLzRvQSIfEto148ppAd+BVQK0JYjQIFSK3JgYZJa+Yzi0DDa52ZsQx2rqytBnf8Hw==} + '@tailwindcss/oxide-darwin-arm64@4.3.0': + resolution: {integrity: sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==} engines: {node: '>= 20'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.2.1': - resolution: {integrity: sha512-/f/ozlaXGY6QLbpvd/kFTro2l18f7dHKpB+ieXz+Cijl4Mt9AI2rTrpq7V+t04nK+j9XBQHnSMdeQRhbGyt6fw==} + '@tailwindcss/oxide-darwin-x64@4.3.0': + resolution: {integrity: sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==} engines: {node: '>= 20'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.2.1': - resolution: {integrity: sha512-5e/AkgYJT/cpbkys/OU2Ei2jdETCLlifwm7ogMC7/hksI2fC3iiq6OcXwjibcIjPung0kRtR3TxEITkqgn0TcA==} + '@tailwindcss/oxide-freebsd-x64@4.3.0': + resolution: {integrity: sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==} engines: {node: '>= 20'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1': - resolution: {integrity: sha512-Uny1EcVTTmerCKt/1ZuKTkb0x8ZaiuYucg2/kImO5A5Y/kBz41/+j0gxUZl+hTF3xkWpDmHX+TaWhOtba2Fyuw==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0': + resolution: {integrity: sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==} engines: {node: '>= 20'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.2.1': - resolution: {integrity: sha512-CTrwomI+c7n6aSSQlsPL0roRiNMDQ/YzMD9EjcR+H4f0I1SQ8QqIuPnsVp7QgMkC1Qi8rtkekLkOFjo7OlEFRQ==} + '@tailwindcss/oxide-linux-arm64-gnu@4.3.0': + resolution: {integrity: sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] libc: [glibc] - '@tailwindcss/oxide-linux-arm64-musl@4.2.1': - resolution: {integrity: sha512-WZA0CHRL/SP1TRbA5mp9htsppSEkWuQ4KsSUumYQnyl8ZdT39ntwqmz4IUHGN6p4XdSlYfJwM4rRzZLShHsGAQ==} + '@tailwindcss/oxide-linux-arm64-musl@4.3.0': + resolution: {integrity: sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] libc: [musl] - '@tailwindcss/oxide-linux-x64-gnu@4.2.1': - resolution: {integrity: sha512-qMFzxI2YlBOLW5PhblzuSWlWfwLHaneBE0xHzLrBgNtqN6mWfs+qYbhryGSXQjFYB1Dzf5w+LN5qbUTPhW7Y5g==} + '@tailwindcss/oxide-linux-x64-gnu@4.3.0': + resolution: {integrity: sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==} engines: {node: '>= 20'} cpu: [x64] os: [linux] libc: [glibc] - '@tailwindcss/oxide-linux-x64-musl@4.2.1': - resolution: {integrity: sha512-5r1X2FKnCMUPlXTWRYpHdPYUY6a1Ar/t7P24OuiEdEOmms5lyqjDRvVY1yy9Rmioh+AunQ0rWiOTPE8F9A3v5g==} + '@tailwindcss/oxide-linux-x64-musl@4.3.0': + resolution: {integrity: sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==} engines: {node: '>= 20'} cpu: [x64] os: [linux] libc: [musl] - '@tailwindcss/oxide-wasm32-wasi@4.2.1': - resolution: {integrity: sha512-MGFB5cVPvshR85MTJkEvqDUnuNoysrsRxd6vnk1Lf2tbiqNlXpHYZqkqOQalydienEWOHHFyyuTSYRsLfxFJ2Q==} + '@tailwindcss/oxide-wasm32-wasi@4.3.0': + resolution: {integrity: sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -1306,24 +1442,24 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.2.1': - resolution: {integrity: sha512-YlUEHRHBGnCMh4Nj4GnqQyBtsshUPdiNroZj8VPkvTZSoHsilRCwXcVKnG9kyi0ZFAS/3u+qKHBdDc81SADTRA==} + '@tailwindcss/oxide-win32-arm64-msvc@4.3.0': + resolution: {integrity: sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==} engines: {node: '>= 20'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.2.1': - resolution: {integrity: sha512-rbO34G5sMWWyrN/idLeVxAZgAKWrn5LiR3/I90Q9MkA67s6T1oB0xtTe+0heoBvHSpbU9Mk7i6uwJnpo4u21XQ==} + '@tailwindcss/oxide-win32-x64-msvc@4.3.0': + resolution: {integrity: sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==} engines: {node: '>= 20'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.2.1': - resolution: {integrity: sha512-yv9jeEFWnjKCI6/T3Oq50yQEOqmpmpfzG1hcZsAOaXFQPfzWprWrlHSdGPEF3WQTi8zu8ohC9Mh9J470nT5pUw==} + '@tailwindcss/oxide@4.3.0': + resolution: {integrity: sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==} engines: {node: '>= 20'} - '@tailwindcss/postcss@4.2.1': - resolution: {integrity: sha512-OEwGIBnXnj7zJeonOh6ZG9woofIjGrd2BORfvE5p9USYKDCZoQmfqLcfNiRWoJlRWLdNPn2IgVZuWAOM4iTYMw==} + '@tailwindcss/postcss@4.3.0': + resolution: {integrity: sha512-Jm05Tjx+9yCLGv5qw1c+84Psds8MnyrEQYCB+FFk2lgGiUjlRqdxke4mVTuYrj2xnVZqKim2Apr5ySuQRYAw/w==} '@tree-sitter-grammars/tree-sitter-yaml@0.7.1': resolution: {integrity: sha512-AynBwkIoQCTgjDR33bDUp9Mqq+YTco0is3n5hRApMqG9of/6A4eQsfC1/uSEeHSUyMQSYawcAWamsexnVpIP4Q==} @@ -1333,11 +1469,11 @@ packages: tree-sitter: optional: true - '@tybys/wasm-util@0.10.1': - resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@tybys/wasm-util@0.10.2': + resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} '@types/esrecurse@4.3.1': resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} @@ -1345,8 +1481,8 @@ packages: '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -1380,8 +1516,8 @@ packages: peerDependencies: '@types/react': ^19.2.0 - '@types/react@19.2.14': - resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} + '@types/react@19.2.15': + resolution: {integrity: sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q==} '@types/swagger-ui-react@5.18.0': resolution: {integrity: sha512-c2M9adVG7t28t1pq19K9Jt20VLQf0P/fwJwnfcmsVVsdkwCWhRmbKDu+tIs0/NGwJ/7GY8lBx+iKZxuDI5gDbw==} @@ -1398,168 +1534,185 @@ packages: '@types/use-sync-external-store@0.0.6': resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} - '@typescript-eslint/eslint-plugin@8.56.1': - resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} + '@typescript-eslint/eslint-plugin@8.60.0': + resolution: {integrity: sha512-QYb/sa74/s7OKMbACMjrYnGspj9Hs5YI5aaffSL65UfeBUzVzBJfVo3oWSpbzPurvm7yaCCo2Lk7lVj610HqKw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.56.1 + '@typescript-eslint/parser': ^8.60.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.56.1': - resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} + '@typescript-eslint/parser@8.60.0': + resolution: {integrity: sha512-fcqpj/MyK4sxDPcbe7STNPbpQL4RLZOPWuaTmwZYuc+hJKzRf58yRxfhqGpc6PIq9ZyfSBpfHgmUHmHs0KwHwg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.56.1': - resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} + '@typescript-eslint/project-service@8.60.0': + resolution: {integrity: sha512-aZu74NNKJeUWqCjDddzdiKaS82dgYgV/vmf+Ui3ZdZejmgfXR/q+pRumgobnQ2cCJTgGTWp4ypiwsuofFubavg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.56.1': - resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} + '@typescript-eslint/scope-manager@8.60.0': + resolution: {integrity: sha512-pFzqhllJMs+jghLQWzV00ds39xLzuyqPSev5pd8f4Ir0rtKR3ZLUB4/4dhjOFighWb9larvtfJvqL+4yKDI3Xw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.56.1': - resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} + '@typescript-eslint/tsconfig-utils@8.60.0': + resolution: {integrity: sha512-BZPR3RGYlAXnly6ymAxfkVn5rCbZzQNou0rxv3GfWZ8cTQp+hhVd73khbGLAd8k1TlAPLISH337M+tAgAnaJDQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.56.1': - resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} + '@typescript-eslint/type-utils@8.60.0': + resolution: {integrity: sha512-SX46wEUtitCpq7AN38HkUU/+zvUpdKf7ephtWAFgckH8O7PQIyL5gvrhQgBLuEYgLfuKWOVvWVskMbuFHAz5xg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.56.1': - resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} + '@typescript-eslint/types@8.60.0': + resolution: {integrity: sha512-AsE7x2XaAK+CVbeih0Fvbn+r1qHxtpLDJ3XUuFcIinT318T90yHMJC+Zgv+jUuDjQQd06HKwxnDu6sz1IcTilA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.56.1': - resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} + '@typescript-eslint/typescript-estree@8.60.0': + resolution: {integrity: sha512-3AcZNBGMClm6CXDyo8kYvVGT/sx29sS0oBsIb9oZI2gunA4Vm2M3YHzRLPvsUBBsl+yB5FPtltq7gGH0iTlp9g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.56.1': - resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} + '@typescript-eslint/utils@8.60.0': + resolution: {integrity: sha512-HtXuPfrHTyBDkameWpl+vJb1Uevu2tznAyahM1Oc4AENidCLTPiZDWIo4GfcxNdC/RcfGcadzzkqbRG87dUrQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.56.1': - resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} + '@typescript-eslint/visitor-keys@8.60.0': + resolution: {integrity: sha512-9WI52t8ZGLVGrPMBet25yAftqY/n95+zmoUUtJBBQTKDSKUu7OsPTroT2op7U9JatkoRccL0YkWDNMFfC4Sjxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@ungap/structured-clone@1.3.1': + resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} cpu: [arm] os: [android] - '@unrs/resolver-binding-android-arm64@1.11.1': - resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + '@unrs/resolver-binding-android-arm64@1.12.2': + resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} cpu: [arm64] os: [android] - '@unrs/resolver-binding-darwin-arm64@1.11.1': - resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + '@unrs/resolver-binding-darwin-arm64@1.12.2': + resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.11.1': - resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + '@unrs/resolver-binding-darwin-x64@1.12.2': + resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.11.1': - resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + '@unrs/resolver-binding-freebsd-x64@1.12.2': + resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} cpu: [arm64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} cpu: [arm64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} cpu: [ppc64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} cpu: [riscv64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} cpu: [riscv64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} cpu: [s390x] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} cpu: [x64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} cpu: [x64] os: [linux] libc: [musl] - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} + cpu: [arm64] + os: [openharmony] + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} cpu: [x64] os: [win32] @@ -1573,11 +1726,12 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - ajv@6.14.0: - resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} - ajv@8.18.0: - resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} apg-lite@1.0.5: resolution: {integrity: sha512-SlI+nLMQDzCZfS39ihzjGp3JNBQfJXyMi6cg9tkLOCPVErgFsUIAEdO9IezR7kbP5Xd0ozcPNQBkf9TO5cHgWw==} @@ -1649,12 +1803,12 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.11.1: - resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==} + axe-core@4.11.4: + resolution: {integrity: sha512-KunSNx+TVpkAw/6ULfhnx+HWRecjqZGTOyquAoWHYLRSdK1tB5Ihce1ZW+UY3fj33bYAFWPu7W/GRSmmrCGuxA==} engines: {node: '>=4'} - axios@1.13.6: - resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} + axios@1.16.1: + resolution: {integrity: sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -1673,24 +1827,24 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.0: - resolution: {integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==} + baseline-browser-mapping@2.10.33: + resolution: {integrity: sha512-bA6+tcSLpz2tIEdDXZPpPTIuxBcC4+w6SieaYyfigIa4h8GlFxbA17v22Vx3JUtuZQj9SgOsnbK+aTBzyDyEuw==} engines: {node: '>=6.0.0'} hasBin: true - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + brace-expansion@1.1.15: + resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} engines: {node: 18 || 20 || >=22} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1701,16 +1855,16 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} engines: {node: '>= 0.4'} call-bound@1.0.4: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001777: - resolution: {integrity: sha512-tmN+fJxroPndC74efCdp12j+0rk0RHwV5Jwa1zWaFVyw2ZxAuPeG8ZgWC3Wz7uSjT3qMRQ5XHZ4COgQmsCMJAQ==} + caniuse-lite@1.0.30001793: + resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1766,8 +1920,8 @@ packages: copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - core-js-pure@3.48.0: - resolution: {integrity: sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==} + core-js-pure@3.49.0: + resolution: {integrity: sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==} cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} @@ -1776,11 +1930,6 @@ packages: css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -1860,8 +2009,8 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - dompurify@3.2.6: - resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==} + dompurify@3.4.7: + resolution: {integrity: sha512-2jBxDJY4RR06tQNy4w5FlFH7kfxsQZlufd0sbv+chfHCxeJwrFw2baUDsSwvBISD4K4RDbd0PTfy3uNXsR6siA==} drange@1.1.1: resolution: {integrity: sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==} @@ -1871,22 +2020,22 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - electron-to-chromium@1.5.307: - resolution: {integrity: sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==} + electron-to-chromium@1.5.364: + resolution: {integrity: sha512-G/dYE3+AYhyHwzTwg8UbnXf7zqMERYh7l2jJ3QujhFsH8agSYwtnGAR2aZ7f0AakIKJXd5En/Hre4igIUrdlYw==} emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enhanced-resolve@5.20.0: - resolution: {integrity: sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==} + enhanced-resolve@5.22.1: + resolution: {integrity: sha512-6QEuw3zoX1SJQc7b87aBXke/no+mG2bTBgw29gWMQonLmpEkWoCAVkl+M49e48AZlWzxiDzDZzYdp6kobcyLww==} engines: {node: '>=10.13.0'} entities@6.0.1: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} - es-abstract@1.24.1: - resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} + es-abstract@1.24.2: + resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -1897,12 +2046,12 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.2.2: - resolution: {integrity: sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==} + es-iterator-helpers@1.3.2: + resolution: {integrity: sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==} engines: {node: '>= 0.4'} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: @@ -1923,8 +2072,13 @@ packages: esast-util-from-js@2.0.1: resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.28.0: + resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} engines: {node: '>=18'} hasBin: true @@ -1949,8 +2103,8 @@ packages: typescript: optional: true - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + eslint-import-resolver-node@0.3.10: + resolution: {integrity: sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==} eslint-import-resolver-typescript@3.10.1: resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} @@ -1965,8 +2119,8 @@ packages: eslint-plugin-import-x: optional: true - eslint-module-utils@2.12.1: - resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} + eslint-module-utils@2.13.0: + resolution: {integrity: sha512-bLohSkT6469rRs8czj0tLTD8vaeIS/whvPRJVjDr7IuoTT1k5DYDERlNycjDj/HkOlvQdYurmfZ/g3fG5bgeLQ==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -2002,11 +2156,11 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-react-hooks@7.0.1: - resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} + eslint-plugin-react-hooks@7.1.1: + resolution: {integrity: sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==} engines: {node: '>=18'} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0 eslint-plugin-react@7.37.5: resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} @@ -2014,8 +2168,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-scope@9.1.1: - resolution: {integrity: sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==} + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} eslint-visitor-keys@3.4.3: @@ -2026,8 +2180,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.0.2: - resolution: {integrity: sha512-uYixubwmqJZH+KLVYIVKY1JQt7tysXhtj21WSvjcSmU5SVNzMus1bgLe+pAt816yQ8opKfheVVoPLqvVMGejYw==} + eslint@10.4.1: + resolution: {integrity: sha512-AyIKhnOBuOAdueD7RB3xB+YeAWScb9jHsJBgH2Hcde8InP5JYhqrRR6iTMHyTEwgENK54Cp44e4v8BwNhsuHuw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -2036,16 +2190,21 @@ packages: jiti: optional: true - espree@11.1.1: - resolution: {integrity: sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==} + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} esquery@1.7.0: resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} - esrap@2.2.3: - resolution: {integrity: sha512-8fOS+GIGCQZl/ZIlhl59htOlms6U8NvX6ZYgYHpRU/b6tVSh3uHkOHZikl3D4cMbYM0JlpBe+p/BkZEi8J9XIQ==} + esrap@2.2.9: + resolution: {integrity: sha512-4KijP+NxCWthMCUC3qHbE6n4vCjqgJS1uAYKhuT/GWfFTf1Qyive2TgOjep+gzbSzRfnNyaN/UU9YmdOt8Eg0A==} + peerDependencies: + '@typescript-eslint/types': ^8.2.0 + peerDependenciesMeta: + '@typescript-eslint/types': + optional: true esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} @@ -2102,16 +2261,6 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-uri@3.1.0: - resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - - fast-xml-builder@1.0.0: - resolution: {integrity: sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ==} - - fast-xml-parser@5.4.2: - resolution: {integrity: sha512-pw/6pIl4k0CSpElPEJhDppLzaixDEuWui2CUQQBH/ECDf7+y6YwA4Gf7Tyb0Rfe4DIMuZipYj4AEL0nACKglvQ==} - hasBin: true - fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -2143,11 +2292,11 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.4: - resolution: {integrity: sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==} + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -2159,9 +2308,6 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - foreach@2.0.6: - resolution: {integrity: sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==} - form-data@4.0.5: resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} @@ -2170,8 +2316,8 @@ packages: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} - framer-motion@12.35.0: - resolution: {integrity: sha512-w8hghCMQ4oq10j6aZh3U2yeEQv5K69O/seDI/41PK4HtgkLrcBovUNc0ayBC3UyyU7V1mrY2yLzvYdWJX9pGZQ==} + framer-motion@12.40.0: + resolution: {integrity: sha512-uaBd3qC1v3KQqBEjwTUd183K6PbS+j0yR9w9VmEOLWA/tnUcSn8Xa3uck7t4dgpDoUss8xQTcj8W2L07lrnLFg==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -2189,11 +2335,11 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - fumadocs-core@16.6.8: - resolution: {integrity: sha512-cTdV0+cM+Rp+ofYM0y9gWO8xrzxHIvHTBGWQvA7bgBDpb4yQBEr5zdbz70b42OXzSFIlt1vr1HzTW1CBp69W2w==} + fumadocs-core@16.9.3: + resolution: {integrity: sha512-8RVzKnzBJR5o+tJCccY28ntekfMQYBoYiz7alnYb/d9YJc+XpnsINzTl63lQ1eBMZ9gdhm2MqRtgUjh/8rUrbw==} peerDependencies: '@mdx-js/mdx': '*' - '@mixedbread/sdk': ^0.46.0 + '@mixedbread/sdk': 0.x.x '@orama/core': 1.x.x '@oramacloud/client': 2.x.x '@tanstack/react-router': 1.x.x @@ -2202,12 +2348,13 @@ packages: '@types/mdast': '*' '@types/react': '*' algoliasearch: 5.x.x + flexsearch: '*' lucide-react: '*' next: 16.x.x react: ^19.2.0 react-dom: ^19.2.0 react-router: 7.x.x - waku: ^0.26.0 || ^0.27.0 || ^1.0.0 + waku: '*' zod: 4.x.x peerDependenciesMeta: '@mdx-js/mdx': @@ -2230,6 +2377,8 @@ packages: optional: true algoliasearch: optional: true + flexsearch: + optional: true lucide-react: optional: true next: @@ -2276,13 +2425,13 @@ packages: vite: optional: true - fumadocs-openapi@10.3.15: - resolution: {integrity: sha512-VI89XV1jR6/WzCzuPwTzFWVb1e/OezR0e4y+8M/p1Tjfnj6y5qFJAss/b4ZaTduhRKA+me7rlsZyOlfYjc70eQ==} + fumadocs-openapi@10.9.1: + resolution: {integrity: sha512-9b+dDEaSmgwV6dSLoWgvdz5pnkXul4PN4UBrneztGRkll399Hb+uP+wBZPUkuiQF4vyI+8VrZo2coKgDCKoyog==} peerDependencies: - '@scalar/api-client-react': '*' + '@scalar/api-client-react': 2.0.1 '@types/react': '*' - fumadocs-core: ^16.5.0 - fumadocs-ui: ^16.5.0 + fumadocs-core: ^16.9.0 + fumadocs-ui: ^16.9.0 json-schema-typed: '*' react: ^19.2.0 react-dom: ^19.2.0 @@ -2294,18 +2443,21 @@ packages: json-schema-typed: optional: true - fumadocs-ui@16.6.8: - resolution: {integrity: sha512-/1V91jEm4mNKwM7Fsdfd0crVZ0pKo1MZ4EmGfXX2JuGXvhgJ8JQVUycUmWDdNw6aL8ArQeiotMu/7CIj29UJdQ==} + fumadocs-ui@16.9.3: + resolution: {integrity: sha512-eoVKj1H+ATut0su+WIoPWBLRqzPMGD0hekIBr4GopWvUg1lS997HL4kP+Leyf+3CYlZtFgyXb6ylbvRLFtEj6Q==} peerDependencies: - '@takumi-rs/image-response': ^0.68.17 + '@takumi-rs/image-response': '*' + '@types/mdx': '*' '@types/react': '*' - fumadocs-core: 16.6.8 + fumadocs-core: 16.9.3 next: 16.x.x react: ^19.2.0 react-dom: ^19.2.0 peerDependenciesMeta: '@takumi-rs/image-response': optional: true + '@types/mdx': + optional: true '@types/react': optional: true next: @@ -2345,8 +2497,8 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.13.6: - resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==} + get-tsconfig@4.14.0: + resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -2393,8 +2545,8 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} hast-util-from-parse5@8.0.3: @@ -2418,9 +2570,6 @@ packages: hast-util-to-parse5@8.0.1: resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} - hast-util-to-string@3.0.1: - resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} - hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} @@ -2442,6 +2591,10 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -2453,11 +2606,6 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} - image-size@2.0.2: - resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} - engines: {node: '>=16.x'} - hasBin: true - immutable@3.8.3: resolution: {integrity: sha512-AUY/VyX0E5XlibOmWt10uabJzam1zlYjwiEgQSDc5+UIkFNaF9WM0JxXKaNMGf+F/ffUF+7kRKXM9A7C0xXqMg==} engines: {node: '>=0.10.0'} @@ -2508,8 +2656,8 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + is-core-module@2.16.2: + resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} engines: {node: '>= 0.4'} is-data-view@1.0.2: @@ -2608,8 +2756,8 @@ packages: resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} - jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true js-file-download@0.4.12: @@ -2622,6 +2770,10 @@ packages: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true + js-yaml@4.2.0: + resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==} + hasBin: true + jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -2630,15 +2782,9 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-pointer@0.6.2: - resolution: {integrity: sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==} - json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -2669,78 +2815,78 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lightningcss-android-arm64@1.31.1: - resolution: {integrity: sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==} + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [android] - lightningcss-darwin-arm64@1.31.1: - resolution: {integrity: sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==} + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] - lightningcss-darwin-x64@1.31.1: - resolution: {integrity: sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==} + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] - lightningcss-freebsd-x64@1.31.1: - resolution: {integrity: sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==} + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] - lightningcss-linux-arm-gnueabihf@1.31.1: - resolution: {integrity: sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==} + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] - lightningcss-linux-arm64-gnu@1.31.1: - resolution: {integrity: sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==} + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] libc: [glibc] - lightningcss-linux-arm64-musl@1.31.1: - resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==} + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] libc: [musl] - lightningcss-linux-x64-gnu@1.31.1: - resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==} + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] libc: [glibc] - lightningcss-linux-x64-musl@1.31.1: - resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==} + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] libc: [musl] - lightningcss-win32-arm64-msvc@1.31.1: - resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==} + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] - lightningcss-win32-x64-msvc@1.31.1: - resolution: {integrity: sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==} + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] - lightningcss@1.31.1: - resolution: {integrity: sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==} + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} engines: {node: '>= 12.0.0'} locate-path@6.0.0: @@ -2750,8 +2896,8 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash@4.17.23: - resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -2771,8 +2917,8 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - lucide-react@0.575.0: - resolution: {integrity: sha512-VuXgKZrk0uiDlWjGGXmKV6MSk9Yy4l10qgVvzGn2AWBx1Ylt0iBexKOAoA6I7JO3m+M9oeovJd3yYENfkUbOeg==} + lucide-react@1.17.0: + resolution: {integrity: sha512-9FA9evdox/JQL5PT57fdA1x/yg8T7knJ98+zjTL3UfKza6pflQUUh3XtaQIHKvnsJw1lmsEyHVlt5jchYxOQ5w==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2963,8 +3109,8 @@ packages: resolution: {integrity: sha512-bjdr2xW1dBCMsMGGsUeqM4eFI60m94+szhxWys+B1ztIt6gWSfeGBdSVCIawezeHYLYn0j6zrsXdQS/JllBzww==} engines: {node: '>=6'} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} minimatch@3.1.5: @@ -2973,14 +3119,14 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - motion-dom@12.35.0: - resolution: {integrity: sha512-FFMLEnIejK/zDABn+vqGVAUN4T0+3fw+cVAY8MMT65yR+j5uMuvWdd4npACWhh94OVWQs79CrBBuwOwGRZAQiA==} + motion-dom@12.40.0: + resolution: {integrity: sha512-HxU3ZaBwNPVQUBQf1xxgq+7JrPNZvjLVxgbpEZL7RrWJnsxOf0/OM+yrHG9ogLQ31Do/r57Oz2gQWPK+6q62mg==} - motion-utils@12.29.2: - resolution: {integrity: sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==} + motion-utils@12.39.0: + resolution: {integrity: sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==} - motion@12.35.0: - resolution: {integrity: sha512-BQUhNUIGvUcwXCzwmnT1JpjUqab34lIwxHnXUyWRht1WC1vAyp7/4qgMiUXxN3K6hgUhyoR+HNnLeQMwUZjVjw==} + motion@12.40.0: + resolution: {integrity: sha512-yjrHUrBFW6kQvjJwRsoiPSAhC5tRwRqNGJWmiJ4CrGnbKp0V88AdzkhBmDoqIsIPfarOe0Uddd37Xq43/gIocA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -2996,8 +3142,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -3009,10 +3155,6 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@1.0.0: - resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} - engines: {node: '>= 0.6'} - neotraverse@0.6.18: resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} engines: {node: '>= 10'} @@ -3047,33 +3189,21 @@ packages: node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - node-addon-api@8.6.0: - resolution: {integrity: sha512-gBVjCaqDlRUk0EwoPNKzIr9KkS9041G/q31IBShPs1Xz6UTA+EXdZADbzqAJQrpDRq71CIMnOP5VMut3SL0z5Q==} + node-addon-api@8.8.0: + resolution: {integrity: sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA==} engines: {node: ^18 || ^20 || >= 21} - node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} - deprecated: Use your platform's native DOMException instead - node-exports-info@1.6.0: resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} engines: {node: '>= 0.4'} - node-fetch-commonjs@3.3.2: - resolution: {integrity: sha512-VBlAiynj3VMLrotgwOS3OyECFxas5y7ltLcK4t41lMUZeaK15Ym4QRkqN0EQKAFL42q9i21EPKjzLUPfltR72A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-gyp-build@4.8.4: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-releases@2.0.36: - resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} - - npm-to-yarn@3.0.1: - resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + node-releases@2.0.46: + resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} + engines: {node: '>=18'} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -3107,19 +3237,16 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - oniguruma-parser@0.12.1: - resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + oniguruma-parser@0.12.2: + resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} - oniguruma-to-es@4.3.4: - resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==} + oniguruma-to-es@4.3.6: + resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} openapi-path-templating@2.2.1: resolution: {integrity: sha512-eN14VrDvl/YyGxxrkGOHkVkWEoPyhyeydOUrbvjoz8K5eIGgELASwN1eqFOJ2CTQMGCy2EntOK1KdtJ8ZMekcg==} engines: {node: '>=12.20.0'} - openapi-sampler@1.7.1: - resolution: {integrity: sha512-pKFRROcYyxRt9GIn0NmS+GkWPS19l0CLQRYAnHk4m1Qp+G43ssVNcfRMs1sLkGrVMuFWO4P4F6YMXeXnfyFGuQ==} - openapi-server-url-templating@1.3.0: resolution: {integrity: sha512-DPlCms3KKEbjVQb0spV6Awfn6UWNheuG/+folQPzh/wUaKwuqvj8zt5gagD7qoyxtE03cIiKPgLFS3Q8Bz00uQ==} engines: {node: '>=12.20.0'} @@ -3157,37 +3284,27 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-to-regexp@8.3.0: - resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==} - - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} - engines: {node: '>=4'} - postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.8: - resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -3204,8 +3321,9 @@ packages: property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + proxy-from-env@2.1.0: + resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} + engines: {node: '>=10'} punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -3243,16 +3361,10 @@ packages: peerDependencies: react: ^15.3.0 || 16 || 17 || 18 - react-dom@19.2.4: - resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} - peerDependencies: - react: ^19.2.4 - - react-hook-form@7.71.2: - resolution: {integrity: sha512-1CHvcDYzuRUNOflt4MOq3ZM46AronNJtQ1S7tnX6YN4y72qhgiUItpacZUAQ0TyWYci3yz1X+rXaSxiuEm86PA==} - engines: {node: '>=18.0.0'} + react-dom@19.2.6: + resolution: {integrity: sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==} peerDependencies: - react: ^16.8.0 || ^17 || ^18 || ^19 + react: ^19.2.6 react-immutable-proptypes@2.2.0: resolution: {integrity: sha512-Vf4gBsePlwdGvSZoLSBfd4HAP93HDauMY4fDjXhreg/vg6F3Fj/MXDNyTbltPC/xZKmZc+cjLu3598DdYK6sgQ==} @@ -3274,14 +3386,8 @@ packages: react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-medium-image-zoom@5.4.1: - resolution: {integrity: sha512-DD2iZYaCfAwiQGR8AN62r/cDJYoXhezlYJc5HY4TzBUGuGge43CptG0f7m0PEIM72aN6GfpjohvY1yYdtCJB7g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - react-redux@9.2.0: - resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==} + react-redux@9.3.0: + resolution: {integrity: sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==} peerDependencies: '@types/react': ^18.2.25 || ^19 react: ^18.0 || ^19 @@ -3328,8 +3434,8 @@ packages: peerDependencies: react: '>= 0.14.0' - react@19.2.4: - resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} + react@19.2.6: + resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==} engines: {node: '>=0.10.0'} readdirp@5.0.0: @@ -3411,26 +3517,17 @@ packages: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - reselect@5.1.1: - resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} + reselect@5.2.0: + resolution: {integrity: sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==} resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} - engines: {node: '>= 0.4'} - hasBin: true - - resolve@2.0.0-next.6: - resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} + resolve@2.0.0-next.7: + resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==} engines: {node: '>= 0.4'} hasBin: true @@ -3445,8 +3542,8 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + safe-array-concat@1.1.4: + resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} engines: {node: '>=0.4'} safe-buffer@5.2.1: @@ -3460,10 +3557,6 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} - sax@1.5.0: - resolution: {integrity: sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==} - engines: {node: '>=11.0.0'} - scheduler@0.27.0: resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} @@ -3474,8 +3567,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + semver@7.8.1: + resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} engines: {node: '>=10'} hasBin: true @@ -3512,16 +3605,16 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@4.0.1: - resolution: {integrity: sha512-EkAEhDTN5WhpoQFXFw79OHIrSAfHhlImeCdSyg4u4XvrpxKEmdo/9x/HWSowujAnUrFsGOwWiE58a6GVentMnQ==} + shiki@4.1.0: + resolution: {integrity: sha512-l/ABZPUR5v70jI10EzqfMS/I96vjSGv2y0ihUV+WYFzv0EfvW4s54m0Lg8wCrrL+2IkwBzFTuxkZjPf8b2NX9Q==} engines: {node: '>=20'} short-unique-id@5.3.2: resolution: {integrity: sha512-KRT/hufMSxXKEDSQujfVE0Faa/kZ51ihUcZQAcmP04t00DvPj7Ox5anHke1sJYUtzSuiT/Y5uyzg/W7bBEGhCg==} hasBin: true - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} side-channel-map@1.0.1: @@ -3587,9 +3680,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strnum@2.2.0: - resolution: {integrity: sha512-Y7Bj8XyJxnPAORMZj/xltsfo55uOiyHcU2tnAVzHUnSJR/KsEX+9RoDeXEnsXtl/CX4fAcrt64gZ13aGaWPeBg==} - style-to-js@1.1.21: resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} @@ -3613,31 +3703,32 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - swagger-client@3.37.0: - resolution: {integrity: sha512-pzU+B+DkUbrSwlj4/E8sGeP1w84/CFgDJAt80fHu650TxnOHbqFLGQjiE6luvpRxTPdfK2zRHJP7I6CgUkI8yA==} + swagger-client@3.37.4: + resolution: {integrity: sha512-3xxqc9s99Vsf47ket2j7D4Tw6b6T7ObNvTqSP009yBeoAo0fy0yprqOVxFISTrvRxN7jgfrEi8GXMhsjzb1M0g==} + engines: {node: '>=22'} - swagger-ui-react@5.32.0: - resolution: {integrity: sha512-2mmrtvfp0EA90pdT8qXTMu26ex03TG2bsjvDAwXhdfCm+9foyadYJN+nEvDHM6/c6/xtXbdAsb6cVxBvbltnpw==} + swagger-ui-react@5.32.6: + resolution: {integrity: sha512-2q2kXd6eDR+syyWV5HE2CkWANyr2MHPkNezG4M7fC0FPlBUZEsNgyA/2dcb9dIwgE5xd995dO42h89fNMF5/ng==} peerDependencies: react: '>=16.8.0 <20' react-dom: '>=16.8.0 <20' - tailwind-merge@3.5.0: - resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==} + tailwind-merge@3.6.0: + resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==} - tailwindcss@4.2.1: - resolution: {integrity: sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==} + tailwindcss@4.3.0: + resolution: {integrity: sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==} - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} - tinyexec@1.0.2: - resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + tinyexec@1.2.4: + resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} engines: {node: '>=18'} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} to-buffer@1.2.2: @@ -3671,8 +3762,8 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@2.4.0: - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -3689,8 +3780,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.21.0: - resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + tsx@4.22.4: + resolution: {integrity: sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==} engines: {node: '>=18.0.0'} hasBin: true @@ -3714,19 +3805,19 @@ packages: resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + typed-array-length@1.0.8: + resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} engines: {node: '>= 0.4'} types-ramda@0.30.1: resolution: {integrity: sha512-1HTsf5/QVRmLzcGfldPFvkVsAdi1db1BBKzi7iW3KBUlOICg/nKnFS+jGqDJS3YD8VsWbAh7JiHeBvbsw8RPxA==} - typescript-eslint@8.56.1: - resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==} + typescript-eslint@8.60.0: + resolution: {integrity: sha512-9f65qWLZdAW9m1JaxBDUHcqRUfL8bkxxXL7XxEfI+F09q56PkBvIfCjLF3yInsDM/BBmwkqmCQdCZe/RYlIWEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} @@ -3767,8 +3858,8 @@ packages: unraw@3.0.0: resolution: {integrity: sha512-08/DA66UF65OlpUDIQtbJyrqTR0jTAlJ+jsnkQ4jxR7+K5g5YG1APZKQSMCE1vqqmD+2pv6+IdEjmopFatacvg==} - unrs-resolver@1.11.1: - resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + unrs-resolver@1.12.2: + resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} @@ -3807,9 +3898,6 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} @@ -3822,10 +3910,6 @@ packages: web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} - web-tree-sitter@0.24.5: resolution: {integrity: sha512-+J/2VSHN8J47gQUAvF8KDadrfz6uFYVjxoxbKWDoXVsH2u7yLdarCnIURnrMA6uSRkgX3SdmqM5BOoQjPdSh5w==} @@ -3841,8 +3925,8 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-typed-array@1.1.20: - resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} + which-typed-array@1.1.21: + resolution: {integrity: sha512-zbRA8cVm6io/d5W8uIe2hblzN76/Wm3v/yiythQvr+dpBWeqhPSWIDNj4zOyHi4zKbMK6DN34Xsr9jPHJERAEw==} engines: {node: '>= 0.4'} which@2.0.2: @@ -3857,21 +3941,12 @@ packages: xml-but-prettier@1.0.1: resolution: {integrity: sha512-C2CJaadHrZTqESlH03WOyw0oZTtoy2uEg6dSDF6YRg+9GnYNub53RRemLpnvtbHDFelxMx4LajiFsYeR6XJHgQ==} - xml-js@1.6.11: - resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} - hasBin: true - xml@1.0.1: resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} - engines: {node: '>= 14.6'} - hasBin: true - yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -3885,8 +3960,8 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 - zod@4.3.6: - resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -3895,25 +3970,25 @@ snapshots: '@alloc/quick-lru@5.2.0': {} - '@babel/code-frame@7.29.0': + '@babel/code-frame@7.29.7': dependencies: - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-validator-identifier': 7.29.7 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.29.0': {} + '@babel/compat-data@7.29.7': {} - '@babel/core@7.29.0': + '@babel/core@7.29.7': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3 @@ -3923,206 +3998,284 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.29.1': + '@babel/generator@7.29.7': dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/helper-compilation-targets@7.28.6': + '@babel/helper-compilation-targets@7.29.7': dependencies: - '@babel/compat-data': 7.29.0 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.28.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-globals@7.28.0': {} + '@babel/helper-globals@7.29.7': {} - '@babel/helper-module-imports@7.28.6': + '@babel/helper-module-imports@7.29.7': dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@7.29.7': {} - '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-identifier@7.29.7': {} - '@babel/helper-validator-option@7.27.1': {} + '@babel/helper-validator-option@7.29.7': {} - '@babel/helpers@7.28.6': + '@babel/helpers@7.29.7': dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 - '@babel/parser@7.29.0': + '@babel/parser@7.29.7': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 - '@babel/runtime-corejs3@7.29.0': + '@babel/runtime-corejs3@7.29.7': dependencies: - core-js-pure: 3.48.0 + core-js-pure: 3.49.0 - '@babel/runtime@7.28.6': {} + '@babel/runtime@7.29.7': {} - '@babel/template@7.28.6': + '@babel/template@7.29.7': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 - '@babel/traverse@7.29.0': + '@babel/traverse@7.29.7': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.29.0': + '@babel/types@7.29.7': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 - '@emnapi/core@1.8.1': + '@emnapi/core@1.10.0': dependencies: - '@emnapi/wasi-threads': 1.1.0 + '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.8.1': + '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.1.0': + '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.27.3': + '@esbuild/aix-ppc64@0.27.7': + optional: true + + '@esbuild/aix-ppc64@0.28.0': + optional: true + + '@esbuild/android-arm64@0.27.7': + optional: true + + '@esbuild/android-arm64@0.28.0': + optional: true + + '@esbuild/android-arm@0.27.7': + optional: true + + '@esbuild/android-arm@0.28.0': + optional: true + + '@esbuild/android-x64@0.27.7': optional: true - '@esbuild/android-arm64@0.27.3': + '@esbuild/android-x64@0.28.0': optional: true - '@esbuild/android-arm@0.27.3': + '@esbuild/darwin-arm64@0.27.7': optional: true - '@esbuild/android-x64@0.27.3': + '@esbuild/darwin-arm64@0.28.0': optional: true - '@esbuild/darwin-arm64@0.27.3': + '@esbuild/darwin-x64@0.27.7': optional: true - '@esbuild/darwin-x64@0.27.3': + '@esbuild/darwin-x64@0.28.0': optional: true - '@esbuild/freebsd-arm64@0.27.3': + '@esbuild/freebsd-arm64@0.27.7': optional: true - '@esbuild/freebsd-x64@0.27.3': + '@esbuild/freebsd-arm64@0.28.0': optional: true - '@esbuild/linux-arm64@0.27.3': + '@esbuild/freebsd-x64@0.27.7': optional: true - '@esbuild/linux-arm@0.27.3': + '@esbuild/freebsd-x64@0.28.0': optional: true - '@esbuild/linux-ia32@0.27.3': + '@esbuild/linux-arm64@0.27.7': optional: true - '@esbuild/linux-loong64@0.27.3': + '@esbuild/linux-arm64@0.28.0': optional: true - '@esbuild/linux-mips64el@0.27.3': + '@esbuild/linux-arm@0.27.7': optional: true - '@esbuild/linux-ppc64@0.27.3': + '@esbuild/linux-arm@0.28.0': optional: true - '@esbuild/linux-riscv64@0.27.3': + '@esbuild/linux-ia32@0.27.7': optional: true - '@esbuild/linux-s390x@0.27.3': + '@esbuild/linux-ia32@0.28.0': optional: true - '@esbuild/linux-x64@0.27.3': + '@esbuild/linux-loong64@0.27.7': optional: true - '@esbuild/netbsd-arm64@0.27.3': + '@esbuild/linux-loong64@0.28.0': optional: true - '@esbuild/netbsd-x64@0.27.3': + '@esbuild/linux-mips64el@0.27.7': optional: true - '@esbuild/openbsd-arm64@0.27.3': + '@esbuild/linux-mips64el@0.28.0': optional: true - '@esbuild/openbsd-x64@0.27.3': + '@esbuild/linux-ppc64@0.27.7': optional: true - '@esbuild/openharmony-arm64@0.27.3': + '@esbuild/linux-ppc64@0.28.0': optional: true - '@esbuild/sunos-x64@0.27.3': + '@esbuild/linux-riscv64@0.27.7': optional: true - '@esbuild/win32-arm64@0.27.3': + '@esbuild/linux-riscv64@0.28.0': optional: true - '@esbuild/win32-ia32@0.27.3': + '@esbuild/linux-s390x@0.27.7': optional: true - '@esbuild/win32-x64@0.27.3': + '@esbuild/linux-s390x@0.28.0': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.0.2(jiti@2.6.1))': + '@esbuild/linux-x64@0.27.7': + optional: true + + '@esbuild/linux-x64@0.28.0': + optional: true + + '@esbuild/netbsd-arm64@0.27.7': + optional: true + + '@esbuild/netbsd-arm64@0.28.0': + optional: true + + '@esbuild/netbsd-x64@0.27.7': + optional: true + + '@esbuild/netbsd-x64@0.28.0': + optional: true + + '@esbuild/openbsd-arm64@0.27.7': + optional: true + + '@esbuild/openbsd-arm64@0.28.0': + optional: true + + '@esbuild/openbsd-x64@0.27.7': + optional: true + + '@esbuild/openbsd-x64@0.28.0': + optional: true + + '@esbuild/openharmony-arm64@0.27.7': + optional: true + + '@esbuild/openharmony-arm64@0.28.0': + optional: true + + '@esbuild/sunos-x64@0.27.7': + optional: true + + '@esbuild/sunos-x64@0.28.0': + optional: true + + '@esbuild/win32-arm64@0.27.7': + optional: true + + '@esbuild/win32-arm64@0.28.0': + optional: true + + '@esbuild/win32-ia32@0.27.7': + optional: true + + '@esbuild/win32-ia32@0.28.0': + optional: true + + '@esbuild/win32-x64@0.27.7': + optional: true + + '@esbuild/win32-x64@0.28.0': + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@10.4.1(jiti@2.7.0))': dependencies: - eslint: 10.0.2(jiti@2.6.1) + eslint: 10.4.1(jiti@2.7.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.23.2': + '@eslint/config-array@0.23.5': dependencies: - '@eslint/object-schema': 3.0.2 + '@eslint/object-schema': 3.0.5 debug: 4.4.3 - minimatch: 10.2.4 + minimatch: 10.2.5 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.5.2': + '@eslint/config-helpers@0.6.0': dependencies: - '@eslint/core': 1.1.0 + '@eslint/core': 1.2.1 - '@eslint/core@1.1.0': + '@eslint/core@1.2.1': dependencies: '@types/json-schema': 7.0.15 - '@eslint/object-schema@3.0.2': {} + '@eslint/object-schema@3.0.5': {} - '@eslint/plugin-kit@0.6.0': + '@eslint/plugin-kit@0.7.2': dependencies: - '@eslint/core': 1.1.0 + '@eslint/core': 1.2.1 levn: 0.4.1 '@floating-ui/core@1.7.5': @@ -4134,47 +4287,44 @@ snapshots: '@floating-ui/core': 1.7.5 '@floating-ui/utils': 0.2.11 - '@floating-ui/react-dom@2.1.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@floating-ui/react-dom@2.1.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@floating-ui/dom': 1.7.6 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) '@floating-ui/utils@0.2.11': {} - '@formatjs/fast-memoize@3.1.0': - dependencies: - tslib: 2.8.1 - - '@formatjs/intl-localematcher@0.8.1': - dependencies: - '@formatjs/fast-memoize': 3.1.0 - tslib: 2.8.1 - - '@fumadocs/tailwind@0.0.3(tailwindcss@4.2.1)': - dependencies: - postcss-selector-parser: 7.1.1 + '@fumadocs/tailwind@0.0.5(@tailwindcss/oxide@4.3.0)(tailwindcss@4.3.0)': optionalDependencies: - tailwindcss: 4.2.1 + '@tailwindcss/oxide': 4.3.0 + tailwindcss: 4.3.0 - '@fumari/json-schema-ts@0.0.2': + '@fumari/json-schema-ts@0.0.2(@typescript-eslint/types@8.60.0)': dependencies: - esrap: 2.2.3 + esrap: 2.2.9(@typescript-eslint/types@8.60.0) + transitivePeerDependencies: + - '@typescript-eslint/types' - '@fumari/stf@1.0.3(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@fumari/stf@1.0.5(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@humanfs/core@0.19.1': {} + '@humanfs/core@0.19.2': + dependencies: + '@humanfs/types': 0.15.0 - '@humanfs/node@0.16.7': + '@humanfs/node@0.16.8': dependencies: - '@humanfs/core': 0.19.1 + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 '@humanwhocodes/retry': 0.4.3 + '@humanfs/types@0.15.0': {} + '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/retry@0.4.3': {} @@ -4264,7 +4414,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.8.1 + '@emnapi/runtime': 1.10.0 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -4297,7 +4447,7 @@ snapshots: '@mdx-js/mdx@3.1.1': dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdx': 2.0.13 @@ -4325,11 +4475,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@napi-rs/wasm-runtime@0.2.12': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 - '@tybys/wasm-util': 0.10.1 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.2 optional: true '@next/env@16.1.6': {} @@ -4382,455 +4532,425 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.15)(react@19.2.6)': dependencies: - react: 19.2.4 + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-context@1.1.2(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.15)(react@19.2.6)': dependencies: - react: 19.2.4 + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.15)(react@19.2.6) aria-hidden: 1.2.6 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-remove-scroll: 2.7.2(@types/react@19.2.15)(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-direction@1.1.1(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-direction@1.1.1(@types/react@19.2.15)(react@19.2.6)': dependencies: - react: 19.2.4 + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.15)(react@19.2.6)': dependencies: - react: 19.2.4 + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-id@1.1.1(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.15)(react@19.2.6)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.15)(react@19.2.6) aria-hidden: 1.2.6 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-remove-scroll: 2.7.2(@types/react@19.2.15)(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) - - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': - dependencies: - '@floating-ui/react-dom': 2.1.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + dependencies: + '@floating-ui/react-dom': 2.1.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.15)(react@19.2.6) '@radix-ui/rect': 1.1.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) aria-hidden: 1.2.6 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-remove-scroll: 2.7.2(@types/react@19.2.15)(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-slot@1.2.3(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.15)(react@19.2.6)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-slot@1.2.4(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-slot@1.2.4(@types/react@19.2.15)(react@19.2.6)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.15)(react@19.2.6)': dependencies: - react: 19.2.4 + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.15)(react@19.2.6)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.15)(react@19.2.6)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.15)(react@19.2.6)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.15)(react@19.2.6)': dependencies: - react: 19.2.4 + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.15)(react@19.2.6)': dependencies: - react: 19.2.4 + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.15)(react@19.2.6)': dependencies: '@radix-ui/rect': 1.1.1 - react: 19.2.4 + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-use-size@1.1.1(@types/react@19.2.14)(react@19.2.4)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.15)(react@19.2.6)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.15)(react@19.2.6) + react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 - '@types/react-dom': 19.2.3(@types/react@19.2.14) + '@types/react': 19.2.15 + '@types/react-dom': 19.2.3(@types/react@19.2.15) '@radix-ui/rect@1.1.1': {} '@rtsao/scc@1.1.0': {} - '@scalar/helpers@0.2.18': {} - - '@scalar/json-magic@0.11.7': - dependencies: - '@scalar/helpers': 0.2.18 - pathe: 2.0.3 - yaml: 2.8.2 - - '@scalar/openapi-types@0.5.4': - dependencies: - zod: 4.3.6 - - '@scalar/openapi-upgrader@0.1.11': - dependencies: - '@scalar/openapi-types': 0.5.4 - '@scarf/scarf@1.4.0': {} - '@shikijs/core@4.0.1': + '@shikijs/core@4.1.0': dependencies: - '@shikijs/primitive': 4.0.1 - '@shikijs/types': 4.0.1 + '@shikijs/primitive': 4.1.0 + '@shikijs/types': 4.1.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@4.0.1': + '@shikijs/engine-javascript@4.1.0': dependencies: - '@shikijs/types': 4.0.1 + '@shikijs/types': 4.1.0 '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 4.3.4 + oniguruma-to-es: 4.3.6 - '@shikijs/engine-oniguruma@4.0.1': + '@shikijs/engine-oniguruma@4.1.0': dependencies: - '@shikijs/types': 4.0.1 + '@shikijs/types': 4.1.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@4.0.1': + '@shikijs/langs@4.1.0': dependencies: - '@shikijs/types': 4.0.1 + '@shikijs/types': 4.1.0 - '@shikijs/primitive@4.0.1': + '@shikijs/primitive@4.1.0': dependencies: - '@shikijs/types': 4.0.1 + '@shikijs/types': 4.1.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - '@shikijs/rehype@4.0.1': - dependencies: - '@shikijs/types': 4.0.1 - '@types/hast': 3.0.4 - hast-util-to-string: 3.0.1 - shiki: 4.0.1 - unified: 11.0.5 - unist-util-visit: 5.1.0 - - '@shikijs/themes@4.0.1': - dependencies: - '@shikijs/types': 4.0.1 - - '@shikijs/transformers@4.0.1': + '@shikijs/themes@4.1.0': dependencies: - '@shikijs/core': 4.0.1 - '@shikijs/types': 4.0.1 + '@shikijs/types': 4.1.0 - '@shikijs/types@4.0.1': + '@shikijs/types@4.1.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -4839,20 +4959,20 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@swagger-api/apidom-ast@1.6.0': + '@swagger-api/apidom-ast@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-error': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-error': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) unraw: 3.0.0 - '@swagger-api/apidom-core@1.6.0': + '@swagger-api/apidom-core@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-ast': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-ast': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 '@types/ramda': 0.30.2 minim: 0.23.8 ramda: 0.30.1 @@ -4860,260 +4980,260 @@ snapshots: short-unique-id: 5.3.2 ts-mixer: 6.0.4 - '@swagger-api/apidom-error@1.6.0': + '@swagger-api/apidom-error@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 + '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-json-pointer@1.6.0': + '@swagger-api/apidom-json-pointer@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 '@swaggerexpert/json-pointer': 2.10.2 - '@swagger-api/apidom-ns-api-design-systems@1.6.0': + '@swagger-api/apidom-ns-api-design-systems@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-1': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-1': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-arazzo-1@1.6.0': + '@swagger-api/apidom-ns-arazzo-1@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-json-schema-2020-12': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-json-schema-2020-12': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-asyncapi-2@1.6.0': + '@swagger-api/apidom-ns-asyncapi-2@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-json-schema-draft-7': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-json-schema-draft-7': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-asyncapi-3@1.6.0': + '@swagger-api/apidom-ns-asyncapi-3@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-asyncapi-2': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-asyncapi-2': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-json-schema-2019-09@1.6.0': + '@swagger-api/apidom-ns-json-schema-2019-09@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 - '@swagger-api/apidom-ns-json-schema-draft-7': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 + '@swagger-api/apidom-ns-json-schema-draft-7': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-ns-json-schema-2020-12@1.6.0': + '@swagger-api/apidom-ns-json-schema-2020-12@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 - '@swagger-api/apidom-ns-json-schema-2019-09': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 + '@swagger-api/apidom-ns-json-schema-2019-09': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-ns-json-schema-draft-4@1.6.0': + '@swagger-api/apidom-ns-json-schema-draft-4@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-ast': 1.6.0 - '@swagger-api/apidom-core': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-ast': 1.11.1 + '@swagger-api/apidom-core': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-ns-json-schema-draft-6@1.6.0': + '@swagger-api/apidom-ns-json-schema-draft-6@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 - '@swagger-api/apidom-ns-json-schema-draft-4': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 + '@swagger-api/apidom-ns-json-schema-draft-4': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-ns-json-schema-draft-7@1.6.0': + '@swagger-api/apidom-ns-json-schema-draft-7@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 - '@swagger-api/apidom-ns-json-schema-draft-6': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 + '@swagger-api/apidom-ns-json-schema-draft-6': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-ns-openapi-2@1.6.0': + '@swagger-api/apidom-ns-openapi-2@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 - '@swagger-api/apidom-ns-json-schema-draft-4': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 + '@swagger-api/apidom-ns-json-schema-draft-4': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 optional: true - '@swagger-api/apidom-ns-openapi-3-0@1.6.0': + '@swagger-api/apidom-ns-openapi-3-0@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 - '@swagger-api/apidom-ns-json-schema-draft-4': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 + '@swagger-api/apidom-ns-json-schema-draft-4': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-ns-openapi-3-1@1.6.0': + '@swagger-api/apidom-ns-openapi-3-1@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-ast': 1.6.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-json-pointer': 1.6.0 - '@swagger-api/apidom-ns-json-schema-2020-12': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-0': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-ast': 1.11.1 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-json-pointer': 1.11.1 + '@swagger-api/apidom-ns-json-schema-2020-12': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-0': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-ns-openapi-3-2@1.6.0': + '@swagger-api/apidom-ns-openapi-3-2@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-ast': 1.6.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-json-pointer': 1.6.0 - '@swagger-api/apidom-ns-json-schema-2020-12': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-0': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-1': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-ast': 1.11.1 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-json-pointer': 1.11.1 + '@swagger-api/apidom-ns-json-schema-2020-12': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-0': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-1': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) ts-mixer: 6.0.4 - '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.6.0': + '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-api-design-systems': 1.6.0 - '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-api-design-systems': 1.11.1 + '@swagger-api/apidom-parser-adapter-json': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.6.0': + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-api-design-systems': 1.6.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-api-design-systems': 1.11.1 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-arazzo-json-1@1.6.0': + '@swagger-api/apidom-parser-adapter-arazzo-json-1@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-arazzo-1': 1.6.0 - '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-arazzo-1': 1.11.1 + '@swagger-api/apidom-parser-adapter-json': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-arazzo-yaml-1@1.6.0': + '@swagger-api/apidom-parser-adapter-arazzo-yaml-1@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-arazzo-1': 1.6.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-arazzo-1': 1.11.1 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.6.0': + '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-asyncapi-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-asyncapi-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-json': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-asyncapi-json-3@1.6.0': + '@swagger-api/apidom-parser-adapter-asyncapi-json-3@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-asyncapi-3': 1.6.0 - '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-asyncapi-3': 1.11.1 + '@swagger-api/apidom-parser-adapter-json': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.6.0': + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-asyncapi-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-asyncapi-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3@1.6.0': + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-asyncapi-3': 1.6.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-asyncapi-3': 1.11.1 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-json@1.6.0': + '@swagger-api/apidom-parser-adapter-json@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-ast': 1.6.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-ast': 1.11.1 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) @@ -5122,100 +5242,100 @@ snapshots: web-tree-sitter: 0.24.5 optional: true - '@swagger-api/apidom-parser-adapter-openapi-json-2@1.6.0': + '@swagger-api/apidom-parser-adapter-openapi-json-2@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-openapi-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-openapi-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-json': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.6.0': + '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-0': 1.6.0 - '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-0': 1.11.1 + '@swagger-api/apidom-parser-adapter-json': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.6.0': + '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-1': 1.6.0 - '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-1': 1.11.1 + '@swagger-api/apidom-parser-adapter-json': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-json-3-2@1.6.0': + '@swagger-api/apidom-parser-adapter-openapi-json-3-2@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-json': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-json': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.6.0': + '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-openapi-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-openapi-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.6.0': + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-0': 1.6.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-0': 1.11.1 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.6.0': + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-1': 1.6.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-1': 1.11.1 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2@1.6.0': + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 '@types/ramda': 0.30.2 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optional: true - '@swagger-api/apidom-parser-adapter-yaml-1-2@1.6.0': + '@swagger-api/apidom-parser-adapter-yaml-1-2@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-ast': 1.6.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-ast': 1.11.1 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 '@tree-sitter-grammars/tree-sitter-yaml': 0.7.1(tree-sitter@0.22.4) '@types/ramda': 0.30.2 ramda: 0.30.1 @@ -5224,44 +5344,45 @@ snapshots: web-tree-sitter: 0.24.5 optional: true - '@swagger-api/apidom-reference@1.6.0': + '@swagger-api/apidom-reference@1.11.1': dependencies: - '@babel/runtime-corejs3': 7.29.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 + '@babel/runtime-corejs3': 7.29.7 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 '@types/ramda': 0.30.2 - axios: 1.13.6 - minimatch: 10.2.4 + axios: 1.16.1 + minimatch: 10.2.5 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) optionalDependencies: - '@swagger-api/apidom-json-pointer': 1.6.0 - '@swagger-api/apidom-ns-arazzo-1': 1.6.0 - '@swagger-api/apidom-ns-asyncapi-2': 1.6.0 - '@swagger-api/apidom-ns-openapi-2': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-0': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-1': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-api-design-systems-json': 1.6.0 - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml': 1.6.0 - '@swagger-api/apidom-parser-adapter-arazzo-json-1': 1.6.0 - '@swagger-api/apidom-parser-adapter-arazzo-yaml-1': 1.6.0 - '@swagger-api/apidom-parser-adapter-asyncapi-json-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-asyncapi-json-3': 1.6.0 - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3': 1.6.0 - '@swagger-api/apidom-parser-adapter-json': 1.6.0 - '@swagger-api/apidom-parser-adapter-openapi-json-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-openapi-json-3-0': 1.6.0 - '@swagger-api/apidom-parser-adapter-openapi-json-3-1': 1.6.0 - '@swagger-api/apidom-parser-adapter-openapi-json-3-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-openapi-yaml-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0': 1.6.0 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1': 1.6.0 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2': 1.6.0 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.6.0 + '@swagger-api/apidom-json-pointer': 1.11.1 + '@swagger-api/apidom-ns-arazzo-1': 1.11.1 + '@swagger-api/apidom-ns-asyncapi-2': 1.11.1 + '@swagger-api/apidom-ns-openapi-2': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-0': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-1': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-api-design-systems-json': 1.11.1 + '@swagger-api/apidom-parser-adapter-api-design-systems-yaml': 1.11.1 + '@swagger-api/apidom-parser-adapter-arazzo-json-1': 1.11.1 + '@swagger-api/apidom-parser-adapter-arazzo-yaml-1': 1.11.1 + '@swagger-api/apidom-parser-adapter-asyncapi-json-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-asyncapi-json-3': 1.11.1 + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3': 1.11.1 + '@swagger-api/apidom-parser-adapter-json': 1.11.1 + '@swagger-api/apidom-parser-adapter-openapi-json-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-openapi-json-3-0': 1.11.1 + '@swagger-api/apidom-parser-adapter-openapi-json-3-1': 1.11.1 + '@swagger-api/apidom-parser-adapter-openapi-json-3-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-openapi-yaml-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0': 1.11.1 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1': 1.11.1 + '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2': 1.11.1 + '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 transitivePeerDependencies: - debug + - supports-color '@swaggerexpert/cookie@2.0.2': dependencies: @@ -5275,89 +5396,89 @@ snapshots: dependencies: tslib: 2.8.1 - '@tailwindcss/node@4.2.1': + '@tailwindcss/node@4.3.0': dependencies: '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.20.0 - jiti: 2.6.1 - lightningcss: 1.31.1 + enhanced-resolve: 5.22.1 + jiti: 2.7.0 + lightningcss: 1.32.0 magic-string: 0.30.21 source-map-js: 1.2.1 - tailwindcss: 4.2.1 + tailwindcss: 4.3.0 - '@tailwindcss/oxide-android-arm64@4.2.1': + '@tailwindcss/oxide-android-arm64@4.3.0': optional: true - '@tailwindcss/oxide-darwin-arm64@4.2.1': + '@tailwindcss/oxide-darwin-arm64@4.3.0': optional: true - '@tailwindcss/oxide-darwin-x64@4.2.1': + '@tailwindcss/oxide-darwin-x64@4.3.0': optional: true - '@tailwindcss/oxide-freebsd-x64@4.2.1': + '@tailwindcss/oxide-freebsd-x64@4.3.0': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.1': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.2.1': + '@tailwindcss/oxide-linux-arm64-gnu@4.3.0': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.2.1': + '@tailwindcss/oxide-linux-arm64-musl@4.3.0': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.2.1': + '@tailwindcss/oxide-linux-x64-gnu@4.3.0': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.2.1': + '@tailwindcss/oxide-linux-x64-musl@4.3.0': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.2.1': + '@tailwindcss/oxide-wasm32-wasi@4.3.0': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.2.1': + '@tailwindcss/oxide-win32-arm64-msvc@4.3.0': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.2.1': + '@tailwindcss/oxide-win32-x64-msvc@4.3.0': optional: true - '@tailwindcss/oxide@4.2.1': + '@tailwindcss/oxide@4.3.0': optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.2.1 - '@tailwindcss/oxide-darwin-arm64': 4.2.1 - '@tailwindcss/oxide-darwin-x64': 4.2.1 - '@tailwindcss/oxide-freebsd-x64': 4.2.1 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.1 - '@tailwindcss/oxide-linux-arm64-gnu': 4.2.1 - '@tailwindcss/oxide-linux-arm64-musl': 4.2.1 - '@tailwindcss/oxide-linux-x64-gnu': 4.2.1 - '@tailwindcss/oxide-linux-x64-musl': 4.2.1 - '@tailwindcss/oxide-wasm32-wasi': 4.2.1 - '@tailwindcss/oxide-win32-arm64-msvc': 4.2.1 - '@tailwindcss/oxide-win32-x64-msvc': 4.2.1 - - '@tailwindcss/postcss@4.2.1': + '@tailwindcss/oxide-android-arm64': 4.3.0 + '@tailwindcss/oxide-darwin-arm64': 4.3.0 + '@tailwindcss/oxide-darwin-x64': 4.3.0 + '@tailwindcss/oxide-freebsd-x64': 4.3.0 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.0 + '@tailwindcss/oxide-linux-arm64-gnu': 4.3.0 + '@tailwindcss/oxide-linux-arm64-musl': 4.3.0 + '@tailwindcss/oxide-linux-x64-gnu': 4.3.0 + '@tailwindcss/oxide-linux-x64-musl': 4.3.0 + '@tailwindcss/oxide-wasm32-wasi': 4.3.0 + '@tailwindcss/oxide-win32-arm64-msvc': 4.3.0 + '@tailwindcss/oxide-win32-x64-msvc': 4.3.0 + + '@tailwindcss/postcss@4.3.0': dependencies: '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.2.1 - '@tailwindcss/oxide': 4.2.1 - postcss: 8.5.8 - tailwindcss: 4.2.1 + '@tailwindcss/node': 4.3.0 + '@tailwindcss/oxide': 4.3.0 + postcss: 8.5.15 + tailwindcss: 4.3.0 '@tree-sitter-grammars/tree-sitter-yaml@0.7.1(tree-sitter@0.22.4)': dependencies: - node-addon-api: 8.6.0 + node-addon-api: 8.8.0 node-gyp-build: 4.8.4 optionalDependencies: tree-sitter: 0.22.4 optional: true - '@tybys/wasm-util@0.10.1': + '@tybys/wasm-util@0.10.2': dependencies: tslib: 2.8.1 optional: true - '@types/debug@4.1.12': + '@types/debug@4.1.13': dependencies: '@types/ms': 2.1.0 @@ -5365,9 +5486,9 @@ snapshots: '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 - '@types/estree@1.0.8': {} + '@types/estree@1.0.9': {} '@types/hast@3.0.4': dependencies: @@ -5395,17 +5516,17 @@ snapshots: dependencies: types-ramda: 0.30.1 - '@types/react-dom@19.2.3(@types/react@19.2.14)': + '@types/react-dom@19.2.3(@types/react@19.2.15)': dependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@types/react@19.2.14': + '@types/react@19.2.15': dependencies: csstype: 3.2.3 '@types/swagger-ui-react@5.18.0': dependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 '@types/trusted-types@2.0.7': optional: true @@ -5416,156 +5537,167 @@ snapshots: '@types/use-sync-external-store@0.0.6': {} - '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.56.1 - eslint: 10.0.2(jiti@2.6.1) + '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.60.0 + '@typescript-eslint/type-utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.60.0 + eslint: 10.4.1(jiti@2.7.0) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/scope-manager': 8.60.0 + '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/typescript-estree': 8.60.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.60.0 debug: 4.4.3 - eslint: 10.0.2(jiti@2.6.1) + eslint: 10.4.1(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.56.1(typescript@5.9.3)': + '@typescript-eslint/project-service@8.60.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@5.9.3) + '@typescript-eslint/types': 8.60.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.56.1': + '@typescript-eslint/scope-manager@8.60.0': dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/visitor-keys': 8.60.0 - '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.60.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/typescript-estree': 8.60.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) debug: 4.4.3 - eslint: 10.0.2(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.9.3) + eslint: 10.4.1(jiti@2.7.0) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.56.1': {} + '@typescript-eslint/types@8.60.0': {} - '@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.60.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.56.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/project-service': 8.60.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@5.9.3) + '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/visitor-keys': 8.60.0 debug: 4.4.3 - minimatch: 10.2.4 - semver: 7.7.4 - tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.9.3) + minimatch: 10.2.5 + semver: 7.8.1 + tinyglobby: 0.2.17 + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - eslint: 10.0.2(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) + '@typescript-eslint/scope-manager': 8.60.0 + '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/typescript-estree': 8.60.0(typescript@5.9.3) + eslint: 10.4.1(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.56.1': + '@typescript-eslint/visitor-keys@8.60.0': dependencies: - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/types': 8.60.0 eslint-visitor-keys: 5.0.1 - '@ungap/structured-clone@1.3.0': {} + '@ungap/structured-clone@1.3.1': {} + + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + optional: true + + '@unrs/resolver-binding-android-arm64@1.12.2': + optional: true - '@unrs/resolver-binding-android-arm-eabi@1.11.1': + '@unrs/resolver-binding-darwin-arm64@1.12.2': optional: true - '@unrs/resolver-binding-android-arm64@1.11.1': + '@unrs/resolver-binding-darwin-x64@1.12.2': optional: true - '@unrs/resolver-binding-darwin-arm64@1.11.1': + '@unrs/resolver-binding-freebsd-x64@1.12.2': optional: true - '@unrs/resolver-binding-darwin-x64@1.11.1': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': optional: true - '@unrs/resolver-binding-freebsd-x64@1.11.1': + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.11.1': + '@unrs/resolver-binding-linux-x64-musl@1.12.2': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.11.1': + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': dependencies: - '@napi-rs/wasm-runtime': 0.2.12 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': optional: true acorn-jsx@5.3.2(acorn@8.16.0): @@ -5574,20 +5706,19 @@ snapshots: acorn@8.16.0: {} - ajv@6.14.0: + agent-base@6.0.2: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + ajv@6.15.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.18.0: - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.1.0 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - apg-lite@1.0.5: {} argparse@1.0.10: @@ -5609,62 +5740,62 @@ snapshots: array-includes@3.1.9: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 - es-object-atoms: 1.1.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 is-string: 1.1.1 math-intrinsics: 1.1.0 array.prototype.findlast@1.2.5: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 es-shim-unscopables: 1.1.0 array.prototype.findlastindex@1.2.6: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 es-shim-unscopables: 1.1.0 array.prototype.flat@1.3.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -5685,15 +5816,17 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - axe-core@4.11.1: {} + axe-core@4.11.4: {} - axios@1.13.6: + axios@1.16.1: dependencies: - follow-redirects: 1.15.11 + follow-redirects: 1.16.0 form-data: 4.0.5 - proxy-from-env: 1.1.0 + https-proxy-agent: 5.0.1 + proxy-from-env: 2.1.0 transitivePeerDependencies: - debug + - supports-color axobject-query@4.1.0: {} @@ -5705,14 +5838,14 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.10.0: {} + baseline-browser-mapping@2.10.33: {} - brace-expansion@1.1.12: + brace-expansion@1.1.15: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@5.0.4: + brace-expansion@5.0.6: dependencies: balanced-match: 4.0.4 @@ -5720,13 +5853,13 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.28.1: + browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.0 - caniuse-lite: 1.0.30001777 - electron-to-chromium: 1.5.307 - node-releases: 2.0.36 - update-browserslist-db: 1.2.3(browserslist@4.28.1) + baseline-browser-mapping: 2.10.33 + caniuse-lite: 1.0.30001793 + electron-to-chromium: 1.5.364 + node-releases: 2.0.46 + update-browserslist-db: 1.2.3(browserslist@4.28.2) buffer@6.0.3: dependencies: @@ -5738,7 +5871,7 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.8: + call-bind@1.0.9: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 @@ -5750,7 +5883,7 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - caniuse-lite@1.0.30001777: {} + caniuse-lite@1.0.30001793: {} ccount@2.0.1: {} @@ -5794,7 +5927,7 @@ snapshots: dependencies: toggle-selection: 1.0.6 - core-js-pure@3.48.0: {} + core-js-pure@3.49.0: {} cross-spawn@7.0.6: dependencies: @@ -5804,8 +5937,6 @@ snapshots: css.escape@1.5.1: {} - cssesc@3.0.0: {} - csstype@3.2.3: {} damerau-levenshtein@1.0.8: {} @@ -5874,7 +6005,7 @@ snapshots: dependencies: esutils: 2.0.3 - dompurify@3.2.6: + dompurify@3.4.7: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -5886,30 +6017,30 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - electron-to-chromium@1.5.307: {} + electron-to-chromium@1.5.364: {} emoji-regex@9.2.2: {} - enhanced-resolve@5.20.0: + enhanced-resolve@5.22.1: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.0 + tapable: 2.3.3 entities@6.0.1: {} - es-abstract@1.24.1: + es-abstract@1.24.2: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 data-view-buffer: 1.0.2 data-view-byte-length: 1.0.2 data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 @@ -5921,7 +6052,7 @@ snapshots: has-property-descriptors: 1.0.2 has-proto: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.4 internal-slot: 1.1.0 is-array-buffer: 3.0.5 is-callable: 1.2.7 @@ -5939,7 +6070,7 @@ snapshots: object.assign: 4.1.7 own-keys: 1.0.1 regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 + safe-array-concat: 1.1.4 safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 @@ -5950,20 +6081,20 @@ snapshots: typed-array-buffer: 1.0.3 typed-array-byte-length: 1.0.3 typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 + typed-array-length: 1.0.8 unbox-primitive: 1.1.0 - which-typed-array: 1.1.20 + which-typed-array: 1.1.21 es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-iterator-helpers@1.2.2: + es-iterator-helpers@1.3.2: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 @@ -5975,9 +6106,9 @@ snapshots: has-symbols: 1.1.0 internal-slot: 1.1.0 iterator.prototype: 1.1.5 - safe-array-concat: 1.1.3 + math-intrinsics: 1.1.0 - es-object-atoms@1.1.1: + es-object-atoms@1.1.2: dependencies: es-errors: 1.3.0 @@ -5986,11 +6117,11 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.4 es-shim-unscopables@1.1.0: dependencies: - hasown: 2.0.2 + hasown: 2.0.4 es-to-primitive@1.3.0: dependencies: @@ -6012,34 +6143,63 @@ snapshots: esast-util-from-estree: 2.0.0 vfile-message: 4.0.3 - esbuild@0.27.3: + esbuild@0.27.7: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 + + esbuild@0.28.0: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.3 - '@esbuild/android-arm': 0.27.3 - '@esbuild/android-arm64': 0.27.3 - '@esbuild/android-x64': 0.27.3 - '@esbuild/darwin-arm64': 0.27.3 - '@esbuild/darwin-x64': 0.27.3 - '@esbuild/freebsd-arm64': 0.27.3 - '@esbuild/freebsd-x64': 0.27.3 - '@esbuild/linux-arm': 0.27.3 - '@esbuild/linux-arm64': 0.27.3 - '@esbuild/linux-ia32': 0.27.3 - '@esbuild/linux-loong64': 0.27.3 - '@esbuild/linux-mips64el': 0.27.3 - '@esbuild/linux-ppc64': 0.27.3 - '@esbuild/linux-riscv64': 0.27.3 - '@esbuild/linux-s390x': 0.27.3 - '@esbuild/linux-x64': 0.27.3 - '@esbuild/netbsd-arm64': 0.27.3 - '@esbuild/netbsd-x64': 0.27.3 - '@esbuild/openbsd-arm64': 0.27.3 - '@esbuild/openbsd-x64': 0.27.3 - '@esbuild/openharmony-arm64': 0.27.3 - '@esbuild/sunos-x64': 0.27.3 - '@esbuild/win32-arm64': 0.27.3 - '@esbuild/win32-ia32': 0.27.3 - '@esbuild/win32-x64': 0.27.3 + '@esbuild/aix-ppc64': 0.28.0 + '@esbuild/android-arm': 0.28.0 + '@esbuild/android-arm64': 0.28.0 + '@esbuild/android-x64': 0.28.0 + '@esbuild/darwin-arm64': 0.28.0 + '@esbuild/darwin-x64': 0.28.0 + '@esbuild/freebsd-arm64': 0.28.0 + '@esbuild/freebsd-x64': 0.28.0 + '@esbuild/linux-arm': 0.28.0 + '@esbuild/linux-arm64': 0.28.0 + '@esbuild/linux-ia32': 0.28.0 + '@esbuild/linux-loong64': 0.28.0 + '@esbuild/linux-mips64el': 0.28.0 + '@esbuild/linux-ppc64': 0.28.0 + '@esbuild/linux-riscv64': 0.28.0 + '@esbuild/linux-s390x': 0.28.0 + '@esbuild/linux-x64': 0.28.0 + '@esbuild/netbsd-arm64': 0.28.0 + '@esbuild/netbsd-x64': 0.28.0 + '@esbuild/openbsd-arm64': 0.28.0 + '@esbuild/openbsd-x64': 0.28.0 + '@esbuild/openharmony-arm64': 0.28.0 + '@esbuild/sunos-x64': 0.28.0 + '@esbuild/win32-arm64': 0.28.0 + '@esbuild/win32-ia32': 0.28.0 + '@esbuild/win32-x64': 0.28.0 escalade@3.2.0: {} @@ -6047,18 +6207,18 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-next@16.1.6(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): + eslint-config-next@16.1.6(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3): dependencies: '@next/eslint-plugin-next': 16.1.6 - eslint: 10.0.2(jiti@2.6.1) - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.2(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.2(jiti@2.6.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@10.0.2(jiti@2.6.1)) - eslint-plugin-react: 7.37.5(eslint@10.0.2(jiti@2.6.1)) - eslint-plugin-react-hooks: 7.0.1(eslint@10.0.2(jiti@2.6.1)) + eslint: 10.4.1(jiti@2.7.0) + eslint-import-resolver-node: 0.3.10 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.4.1(jiti@2.7.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@10.4.1(jiti@2.7.0)) + eslint-plugin-react: 7.37.5(eslint@10.4.1(jiti@2.7.0)) + eslint-plugin-react-hooks: 7.1.1(eslint@10.4.1(jiti@2.7.0)) globals: 16.4.0 - typescript-eslint: 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + typescript-eslint: 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -6067,41 +6227,41 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-import-resolver-node@0.3.9: + eslint-import-resolver-node@0.3.10: dependencies: debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.11 + is-core-module: 2.16.2 + resolve: 2.0.0-next.7 transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.2(jiti@2.6.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.4.1(jiti@2.7.0)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 - eslint: 10.0.2(jiti@2.6.1) - get-tsconfig: 4.13.6 + eslint: 10.4.1(jiti@2.7.0) + get-tsconfig: 4.14.0 is-bun-module: 2.0.0 stable-hash: 0.0.5 - tinyglobby: 0.2.15 - unrs-resolver: 1.11.1 + tinyglobby: 0.2.17 + unrs-resolver: 1.12.2 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.2(jiti@2.6.1)): + eslint-module-utils@2.13.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.0.2(jiti@2.6.1) - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.0.2(jiti@2.6.1)) + '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + eslint: 10.4.1(jiti@2.7.0) + eslint-import-resolver-node: 0.3.10 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.4.1(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.2(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -6110,11 +6270,11 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 10.0.2(jiti@2.6.1) - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@10.0.2(jiti@2.6.1)) - hasown: 2.0.2 - is-core-module: 2.16.1 + eslint: 10.4.1(jiti@2.7.0) + eslint-import-resolver-node: 0.3.10 + eslint-module-utils: 2.13.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@10.4.1(jiti@2.7.0)) + hasown: 2.0.4 + is-core-module: 2.16.2 is-glob: 4.0.3 minimatch: 3.1.5 object.fromentries: 2.0.8 @@ -6124,24 +6284,24 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@10.0.2(jiti@2.6.1)): + eslint-plugin-jsx-a11y@6.10.2(eslint@10.4.1(jiti@2.7.0)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.11.1 + axe-core: 4.11.4 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 10.0.2(jiti@2.6.1) - hasown: 2.0.2 + eslint: 10.4.1(jiti@2.7.0) + hasown: 2.0.4 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.5 @@ -6149,43 +6309,43 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@7.0.1(eslint@10.0.2(jiti@2.6.1)): + eslint-plugin-react-hooks@7.1.1(eslint@10.4.1(jiti@2.7.0)): dependencies: - '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 - eslint: 10.0.2(jiti@2.6.1) + '@babel/core': 7.29.7 + '@babel/parser': 7.29.7 + eslint: 10.4.1(jiti@2.7.0) hermes-parser: 0.25.1 - zod: 4.3.6 - zod-validation-error: 4.0.2(zod@4.3.6) + zod: 4.4.3 + zod-validation-error: 4.0.2(zod@4.4.3) transitivePeerDependencies: - supports-color - eslint-plugin-react@7.37.5(eslint@10.0.2(jiti@2.6.1)): + eslint-plugin-react@7.37.5(eslint@10.4.1(jiti@2.7.0)): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.2.2 - eslint: 10.0.2(jiti@2.6.1) + es-iterator-helpers: 1.3.2 + eslint: 10.4.1(jiti@2.7.0) estraverse: 5.3.0 - hasown: 2.0.2 + hasown: 2.0.4 jsx-ast-utils: 3.3.5 minimatch: 3.1.5 object.entries: 1.1.9 object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 - resolve: 2.0.0-next.6 + resolve: 2.0.0-next.7 semver: 6.3.1 string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-scope@9.1.1: + eslint-scope@9.1.2: dependencies: '@types/esrecurse': 4.3.1 - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 esrecurse: 4.3.0 estraverse: 5.3.0 @@ -6193,25 +6353,25 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.0.2(jiti@2.6.1): + eslint@10.4.1(jiti@2.7.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.2 - '@eslint/config-helpers': 0.5.2 - '@eslint/core': 1.1.0 - '@eslint/plugin-kit': 0.6.0 - '@humanfs/node': 0.16.7 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.6.0 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.2 + '@humanfs/node': 0.16.8 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 - ajv: 6.14.0 + '@types/estree': 1.0.9 + ajv: 6.15.0 cross-spawn: 7.0.6 debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint-scope: 9.1.1 + eslint-scope: 9.1.2 eslint-visitor-keys: 5.0.1 - espree: 11.1.1 + espree: 11.2.0 esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -6222,15 +6382,15 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - minimatch: 10.2.4 + minimatch: 10.2.5 natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.6.1 + jiti: 2.7.0 transitivePeerDependencies: - supports-color - espree@11.1.1: + espree@11.2.0: dependencies: acorn: 8.16.0 acorn-jsx: 5.3.2(acorn@8.16.0) @@ -6240,9 +6400,11 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.2.3: + esrap@2.2.9(@typescript-eslint/types@8.60.0): dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + optionalDependencies: + '@typescript-eslint/types': 8.60.0 esrecurse@4.3.0: dependencies: @@ -6252,7 +6414,7 @@ snapshots: estree-util-attach-comments@3.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 estree-util-build-jsx@3.0.1: dependencies: @@ -6265,7 +6427,7 @@ snapshots: estree-util-scope@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 devlop: 1.1.0 estree-util-to-js@2.0.0: @@ -6276,7 +6438,7 @@ snapshots: estree-util-value-to-estree@3.5.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 estree-util-visit@2.0.0: dependencies: @@ -6285,7 +6447,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 esutils@2.0.3: {} @@ -6307,15 +6469,6 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-uri@3.1.0: {} - - fast-xml-builder@1.0.0: {} - - fast-xml-parser@5.4.2: - dependencies: - fast-xml-builder: 1.0.0 - strnum: 2.2.0 - fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -6324,9 +6477,9 @@ snapshots: dependencies: format: 0.2.2 - fdir@6.5.0(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.4): optionalDependencies: - picomatch: 4.0.3 + picomatch: 4.0.4 file-entry-cache@8.0.0: dependencies: @@ -6343,63 +6496,55 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.4 + flatted: 3.4.2 keyv: 4.5.4 - flatted@3.3.4: {} + flatted@3.4.2: {} - follow-redirects@1.15.11: {} + follow-redirects@1.16.0: {} for-each@0.3.5: dependencies: is-callable: 1.2.7 - foreach@2.0.6: {} - form-data@4.0.5: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 - hasown: 2.0.2 + hasown: 2.0.4 mime-types: 2.1.35 format@0.2.2: {} - framer-motion@12.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + framer-motion@12.40.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - motion-dom: 12.35.0 - motion-utils: 12.29.2 + motion-dom: 12.40.0 + motion-utils: 12.39.0 tslib: 2.8.1 optionalDependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) fsevents@2.3.3: optional: true - fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6): + fumadocs-core@16.9.3(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.15)(lucide-react@0.546.0(react@19.2.6))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3): dependencies: - '@formatjs/intl-localematcher': 0.8.1 '@orama/orama': 3.1.18 - '@shikijs/rehype': 4.0.1 - '@shikijs/transformers': 4.0.1 estree-util-value-to-estree: 3.5.0 github-slugger: 2.0.0 hast-util-to-estree: 3.1.3 hast-util-to-jsx-runtime: 2.3.6 - image-size: 2.0.2 + js-yaml: 4.2.0 mdast-util-mdx: 3.0.0 mdast-util-to-markdown: 2.1.2 - negotiator: 1.0.0 - npm-to-yarn: 3.0.1 - path-to-regexp: 8.3.0 remark: 15.0.1 remark-gfm: 4.0.1 remark-rehype: 11.1.2 scroll-into-view-if-needed: 3.1.0 - shiki: 4.0.1 - tinyglobby: 0.2.15 + shiki: 4.1.0 + tinyglobby: 0.2.17 unified: 11.0.5 unist-util-visit: 5.1.0 vfile: 6.0.3 @@ -6408,108 +6553,106 @@ snapshots: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@types/react': 19.2.14 - lucide-react: 0.546.0(react@19.2.4) - next: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - zod: 4.3.6 + '@types/react': 19.2.15 + lucide-react: 0.546.0(react@19.2.6) + next: 16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + zod: 4.4.3 transitivePeerDependencies: - supports-color - fumadocs-mdx@14.2.9(@types/mdast@4.0.4)(@types/mdx@2.0.13)(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4): + fumadocs-mdx@14.2.9(@types/mdast@4.0.4)(@types/mdx@2.0.13)(@types/react@19.2.15)(fumadocs-core@16.9.3(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.15)(lucide-react@0.546.0(react@19.2.6))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6): dependencies: '@mdx-js/mdx': 3.1.1 '@standard-schema/spec': 1.1.0 chokidar: 5.0.0 - esbuild: 0.27.3 + esbuild: 0.27.7 estree-util-value-to-estree: 3.5.0 - fumadocs-core: 16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6) - js-yaml: 4.1.1 + fumadocs-core: 16.9.3(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.15)(lucide-react@0.546.0(react@19.2.6))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3) + js-yaml: 4.2.0 mdast-util-mdx: 3.0.0 mdast-util-to-markdown: 2.1.2 picocolors: 1.1.1 - picomatch: 4.0.3 - tinyexec: 1.0.2 - tinyglobby: 0.2.15 + picomatch: 4.0.4 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.1.0 vfile: 6.0.3 - zod: 4.3.6 + zod: 4.4.3 optionalDependencies: '@types/mdast': 4.0.4 '@types/mdx': 2.0.13 - '@types/react': 19.2.14 - next: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 + '@types/react': 19.2.15 + next: 16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 transitivePeerDependencies: - supports-color - fumadocs-openapi@10.3.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(fumadocs-ui@16.6.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.1))(react-dom@19.2.4(react@19.2.4))(react@19.2.4): - dependencies: - '@fumari/json-schema-ts': 0.0.2 - '@fumari/stf': 1.0.3(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-select': 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.4(@types/react@19.2.14)(react@19.2.4) - '@scalar/json-magic': 0.11.7 - '@scalar/openapi-upgrader': 0.1.11 - ajv: 8.18.0 + fumadocs-openapi@10.9.1(6c397e23616c8e23c2ab5a065a8a1f4c): + dependencies: + '@fumari/json-schema-ts': 0.0.2(@typescript-eslint/types@8.60.0) + '@fumari/stf': 1.0.5(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-select': 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.15)(react@19.2.6) + chokidar: 5.0.0 class-variance-authority: 0.7.1 - fumadocs-core: 16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6) - fumadocs-ui: 16.6.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.1) + fumadocs-core: 16.9.3(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.15)(lucide-react@0.546.0(react@19.2.6))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3) + fumadocs-ui: 16.9.3(@tailwindcss/oxide@4.3.0)(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(fumadocs-core@16.9.3(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.15)(lucide-react@0.546.0(react@19.2.6))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(tailwindcss@4.3.0) github-slugger: 2.0.0 hast-util-to-jsx-runtime: 2.3.6 - js-yaml: 4.1.1 - lucide-react: 0.575.0(react@19.2.4) - next-themes: 0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - openapi-sampler: 1.7.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-hook-form: 7.71.2(react@19.2.4) + js-yaml: 4.2.0 + lucide-react: 1.17.0(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) remark: 15.0.1 remark-rehype: 11.1.2 - tailwind-merge: 3.5.0 - xml-js: 1.6.11 + shiki: 4.1.0 + tailwind-merge: 3.6.0 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 transitivePeerDependencies: - '@types/react-dom' + - '@typescript-eslint/types' - supports-color - fumadocs-ui@16.6.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(fumadocs-core@16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.1): - dependencies: - '@fumadocs/tailwind': 0.0.3(tailwindcss@4.2.1) - '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.4(@types/react@19.2.14)(react@19.2.4) - '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + fumadocs-ui@16.9.3(@tailwindcss/oxide@4.3.0)(@types/mdx@2.0.13)(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(fumadocs-core@16.9.3(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.15)(lucide-react@0.546.0(react@19.2.6))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(tailwindcss@4.3.0): + dependencies: + '@fumadocs/tailwind': 0.0.5(@tailwindcss/oxide@4.3.0)(tailwindcss@4.3.0) + '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.15)(react@19.2.6) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.15))(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) class-variance-authority: 0.7.1 - fumadocs-core: 16.6.8(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.14)(lucide-react@0.546.0(react@19.2.4))(next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod@4.3.6) - lucide-react: 0.575.0(react@19.2.4) - motion: 12.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - next-themes: 0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-medium-image-zoom: 5.4.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.4) + fumadocs-core: 16.9.3(@mdx-js/mdx@3.1.1)(@types/estree-jsx@1.0.5)(@types/hast@3.0.4)(@types/mdast@4.0.4)(@types/react@19.2.15)(lucide-react@0.546.0(react@19.2.6))(next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(zod@4.4.3) + lucide-react: 1.17.0(react@19.2.6) + motion: 12.40.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + next-themes: 0.4.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-remove-scroll: 2.7.2(@types/react@19.2.15)(react@19.2.6) rehype-raw: 7.0.0 scroll-into-view-if-needed: 3.1.0 - tailwind-merge: 3.5.0 + shiki: 4.1.0 + tailwind-merge: 3.6.0 unist-util-visit: 5.1.0 optionalDependencies: - '@types/react': 19.2.14 - next: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@types/mdx': 2.0.13 + '@types/react': 19.2.15 + next: 16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) transitivePeerDependencies: - '@emotion/is-prop-valid' + - '@tailwindcss/oxide' - '@types/react-dom' - tailwindcss @@ -6517,11 +6660,11 @@ snapshots: function.prototype.name@1.1.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 functions-have-names: 1.2.3 - hasown: 2.0.2 + hasown: 2.0.4 is-callable: 1.2.7 functions-have-names@1.2.3: {} @@ -6535,12 +6678,12 @@ snapshots: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.4 math-intrinsics: 1.1.0 get-nonce@1.0.1: {} @@ -6548,7 +6691,7 @@ snapshots: get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-symbol-description@1.1.0: dependencies: @@ -6556,7 +6699,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.13.6: + get-tsconfig@4.14.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -6597,7 +6740,7 @@ snapshots: dependencies: has-symbols: 1.1.0 - hasown@2.0.2: + hasown@2.0.4: dependencies: function-bind: 1.1.2 @@ -6620,7 +6763,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.3.1 hast-util-from-parse5: 8.0.3 hast-util-to-parse5: 8.0.1 html-void-elements: 3.0.0 @@ -6634,7 +6777,7 @@ snapshots: hast-util-to-estree@3.1.3: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -6669,7 +6812,7 @@ snapshots: hast-util-to-jsx-runtime@2.3.6: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 '@types/hast': 3.0.4 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 @@ -6697,10 +6840,6 @@ snapshots: web-namespaces: 2.0.1 zwitch: 2.0.4 - hast-util-to-string@3.0.1: - dependencies: - '@types/hast': 3.0.4 - hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -6725,14 +6864,19 @@ snapshots: html-void-elements@3.0.0: {} + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + ieee754@1.2.1: {} ignore@5.3.2: {} ignore@7.0.5: {} - image-size@2.0.2: {} - immutable@3.8.3: {} imurmurhash@0.1.4: {} @@ -6744,7 +6888,7 @@ snapshots: internal-slot@1.1.0: dependencies: es-errors: 1.3.0 - hasown: 2.0.2 + hasown: 2.0.4 side-channel: 1.1.0 invariant@2.2.4: @@ -6760,7 +6904,7 @@ snapshots: is-array-buffer@3.0.5: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 get-intrinsic: 1.3.0 @@ -6783,13 +6927,13 @@ snapshots: is-bun-module@2.0.0: dependencies: - semver: 7.7.4 + semver: 7.8.1 is-callable@1.2.7: {} - is-core-module@2.16.1: + is-core-module@2.16.2: dependencies: - hasown: 2.0.2 + hasown: 2.0.4 is-data-view@1.0.2: dependencies: @@ -6842,7 +6986,7 @@ snapshots: call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.4 is-set@2.0.3: {} @@ -6863,7 +7007,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.20 + which-typed-array: 1.1.21 is-weakmap@2.0.2: {} @@ -6883,13 +7027,13 @@ snapshots: iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 get-proto: 1.0.1 has-symbols: 1.1.0 set-function-name: 2.0.2 - jiti@2.6.1: {} + jiti@2.7.0: {} js-file-download@0.4.12: {} @@ -6899,18 +7043,16 @@ snapshots: dependencies: argparse: 2.0.1 + js-yaml@4.2.0: + dependencies: + argparse: 2.0.1 + jsesc@3.1.0: {} json-buffer@3.0.1: {} - json-pointer@0.6.2: - dependencies: - foreach: 2.0.6 - json-schema-traverse@0.4.1: {} - json-schema-traverse@1.0.0: {} - json-stable-stringify-without-jsonify@1.0.1: {} json5@1.0.2: @@ -6941,54 +7083,54 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lightningcss-android-arm64@1.31.1: + lightningcss-android-arm64@1.32.0: optional: true - lightningcss-darwin-arm64@1.31.1: + lightningcss-darwin-arm64@1.32.0: optional: true - lightningcss-darwin-x64@1.31.1: + lightningcss-darwin-x64@1.32.0: optional: true - lightningcss-freebsd-x64@1.31.1: + lightningcss-freebsd-x64@1.32.0: optional: true - lightningcss-linux-arm-gnueabihf@1.31.1: + lightningcss-linux-arm-gnueabihf@1.32.0: optional: true - lightningcss-linux-arm64-gnu@1.31.1: + lightningcss-linux-arm64-gnu@1.32.0: optional: true - lightningcss-linux-arm64-musl@1.31.1: + lightningcss-linux-arm64-musl@1.32.0: optional: true - lightningcss-linux-x64-gnu@1.31.1: + lightningcss-linux-x64-gnu@1.32.0: optional: true - lightningcss-linux-x64-musl@1.31.1: + lightningcss-linux-x64-musl@1.32.0: optional: true - lightningcss-win32-arm64-msvc@1.31.1: + lightningcss-win32-arm64-msvc@1.32.0: optional: true - lightningcss-win32-x64-msvc@1.31.1: + lightningcss-win32-x64-msvc@1.32.0: optional: true - lightningcss@1.31.1: + lightningcss@1.32.0: dependencies: detect-libc: 2.1.2 optionalDependencies: - lightningcss-android-arm64: 1.31.1 - lightningcss-darwin-arm64: 1.31.1 - lightningcss-darwin-x64: 1.31.1 - lightningcss-freebsd-x64: 1.31.1 - lightningcss-linux-arm-gnueabihf: 1.31.1 - lightningcss-linux-arm64-gnu: 1.31.1 - lightningcss-linux-arm64-musl: 1.31.1 - lightningcss-linux-x64-gnu: 1.31.1 - lightningcss-linux-x64-musl: 1.31.1 - lightningcss-win32-arm64-msvc: 1.31.1 - lightningcss-win32-x64-msvc: 1.31.1 + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 locate-path@6.0.0: dependencies: @@ -6996,7 +7138,7 @@ snapshots: lodash.debounce@4.0.8: {} - lodash@4.17.23: {} + lodash@4.18.1: {} longest-streak@3.1.0: {} @@ -7013,13 +7155,13 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.546.0(react@19.2.4): + lucide-react@0.546.0(react@19.2.6): dependencies: - react: 19.2.4 + react: 19.2.6 - lucide-react@0.575.0(react@19.2.4): + lucide-react@1.17.0(react@19.2.6): dependencies: - react: 19.2.4 + react: 19.2.6 magic-string@0.30.21: dependencies: @@ -7170,7 +7312,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.3.1 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -7275,7 +7417,7 @@ snapshots: micromark-extension-mdx-expression@3.0.1: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 devlop: 1.1.0 micromark-factory-mdx-expression: 2.0.3 micromark-factory-space: 2.0.1 @@ -7286,7 +7428,7 @@ snapshots: micromark-extension-mdx-jsx@3.0.2: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 micromark-factory-mdx-expression: 2.0.3 @@ -7303,7 +7445,7 @@ snapshots: micromark-extension-mdxjs-esm@3.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 micromark-util-character: 2.1.1 @@ -7339,7 +7481,7 @@ snapshots: micromark-factory-mdx-expression@2.0.3: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 devlop: 1.1.0 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 @@ -7403,7 +7545,7 @@ snapshots: micromark-util-events-to-acorn@2.0.3: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 '@types/unist': 3.0.3 devlop: 1.1.0 estree-util-visit: 2.0.0 @@ -7440,7 +7582,7 @@ snapshots: micromark@4.0.2: dependencies: - '@types/debug': 4.1.12 + '@types/debug': 4.1.13 debug: 4.4.3 decode-named-character-reference: 1.3.0 devlop: 1.1.0 @@ -7463,7 +7605,7 @@ snapshots: micromatch@4.0.8: dependencies: braces: 3.0.3 - picomatch: 2.3.1 + picomatch: 2.3.2 mime-db@1.52.0: {} @@ -7473,59 +7615,57 @@ snapshots: minim@0.23.8: dependencies: - lodash: 4.17.23 + lodash: 4.18.1 - minimatch@10.2.4: + minimatch@10.2.5: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.6 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 1.1.15 minimist@1.2.8: {} - motion-dom@12.35.0: + motion-dom@12.40.0: dependencies: - motion-utils: 12.29.2 + motion-utils: 12.39.0 - motion-utils@12.29.2: {} + motion-utils@12.39.0: {} - motion@12.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + motion@12.40.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - framer-motion: 12.35.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + framer-motion: 12.40.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 optionalDependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) ms@2.1.3: {} - nanoid@3.3.11: {} + nanoid@3.3.12: {} napi-postinstall@0.3.4: {} natural-compare@1.4.0: {} - negotiator@1.0.0: {} - neotraverse@0.6.18: {} - next-themes@0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + next-themes@0.4.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + next@16.1.6(@babel/core@7.29.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: '@next/env': 16.1.6 '@swc/helpers': 0.5.15 - baseline-browser-mapping: 2.10.0 - caniuse-lite: 1.0.30001777 + baseline-browser-mapping: 2.10.33 + caniuse-lite: 1.0.30001793 postcss: 8.4.31 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.4) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + styled-jsx: 5.1.6(@babel/core@7.29.7)(react@19.2.6) optionalDependencies: '@next/swc-darwin-arm64': 16.1.6 '@next/swc-darwin-x64': 16.1.6 @@ -7542,11 +7682,9 @@ snapshots: node-abort-controller@3.1.1: {} - node-addon-api@8.6.0: + node-addon-api@8.8.0: optional: true - node-domexception@1.0.0: {} - node-exports-info@1.6.0: dependencies: array.prototype.flatmap: 1.3.3 @@ -7554,17 +7692,10 @@ snapshots: object.entries: 1.1.9 semver: 6.3.1 - node-fetch-commonjs@3.3.2: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.3.3 - node-gyp-build@4.8.4: optional: true - node-releases@2.0.36: {} - - npm-to-yarn@3.0.1: {} + node-releases@2.0.46: {} object-assign@4.1.1: {} @@ -7574,45 +7705,45 @@ snapshots: object.assign@4.1.7: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 has-symbols: 1.1.0 object-keys: 1.1.1 object.entries@1.1.9: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 object.fromentries@2.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 - es-object-atoms: 1.1.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 object.groupby@1.0.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 object.values@1.2.1: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 - oniguruma-parser@0.12.1: {} + oniguruma-parser@0.12.2: {} - oniguruma-to-es@4.3.4: + oniguruma-to-es@4.3.6: dependencies: - oniguruma-parser: 0.12.1 + oniguruma-parser: 0.12.2 regex: 6.1.0 regex-recursion: 6.0.2 @@ -7620,12 +7751,6 @@ snapshots: dependencies: apg-lite: 1.0.5 - openapi-sampler@1.7.1: - dependencies: - '@types/json-schema': 7.0.15 - fast-xml-parser: 5.4.2 - json-pointer: 0.6.2 - openapi-server-url-templating@1.3.0: dependencies: apg-lite: 1.0.5 @@ -7673,32 +7798,23 @@ snapshots: path-parse@1.0.7: {} - path-to-regexp@8.3.0: {} - - pathe@2.0.3: {} - picocolors@1.1.1: {} - picomatch@2.3.1: {} + picomatch@2.3.2: {} - picomatch@4.0.3: {} + picomatch@4.0.4: {} possible-typed-array-names@1.1.0: {} - postcss-selector-parser@7.1.1: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss@8.4.31: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.8: + postcss@8.5.15: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -7714,7 +7830,7 @@ snapshots: property-information@7.1.0: {} - proxy-from-env@1.1.0: {} + proxy-from-env@2.1.0: {} punycode@2.3.1: {} @@ -7737,102 +7853,93 @@ snapshots: dependencies: safe-buffer: 5.2.1 - react-copy-to-clipboard@5.1.0(react@19.2.4): + react-copy-to-clipboard@5.1.0(react@19.2.6): dependencies: copy-to-clipboard: 3.3.3 prop-types: 15.8.1 - react: 19.2.4 + react: 19.2.6 - react-debounce-input@3.3.0(react@19.2.4): + react-debounce-input@3.3.0(react@19.2.6): dependencies: lodash.debounce: 4.0.8 prop-types: 15.8.1 - react: 19.2.4 + react: 19.2.6 - react-dom@19.2.4(react@19.2.4): + react-dom@19.2.6(react@19.2.6): dependencies: - react: 19.2.4 + react: 19.2.6 scheduler: 0.27.0 - react-hook-form@7.71.2(react@19.2.4): - dependencies: - react: 19.2.4 - react-immutable-proptypes@2.2.0(immutable@3.8.3): dependencies: immutable: 3.8.3 invariant: 2.2.4 - react-immutable-pure-component@2.2.2(immutable@3.8.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + react-immutable-pure-component@2.2.2(immutable@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: immutable: 3.8.3 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) - react-inspector@6.0.2(react@19.2.4): + react-inspector@6.0.2(react@19.2.6): dependencies: - react: 19.2.4 + react: 19.2.6 react-is@16.13.1: {} - react-medium-image-zoom@5.4.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4): - dependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - - react-redux@9.2.0(@types/react@19.2.14)(react@19.2.4)(redux@5.0.1): + react-redux@9.3.0(@types/react@19.2.15)(react@19.2.6)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.6 - react: 19.2.4 - use-sync-external-store: 1.6.0(react@19.2.4) + react: 19.2.6 + use-sync-external-store: 1.6.0(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 redux: 5.0.1 - react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.4): + react-remove-scroll-bar@2.3.8(@types/react@19.2.15)(react@19.2.6): dependencies: - react: 19.2.4 - react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.4) + react: 19.2.6 + react-style-singleton: 2.2.3(@types/react@19.2.15)(react@19.2.6) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - react-remove-scroll@2.7.2(@types/react@19.2.14)(react@19.2.4): + react-remove-scroll@2.7.2(@types/react@19.2.15)(react@19.2.6): dependencies: - react: 19.2.4 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.14)(react@19.2.4) - react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.4) + react: 19.2.6 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.15)(react@19.2.6) + react-style-singleton: 2.2.3(@types/react@19.2.15)(react@19.2.6) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.14)(react@19.2.4) - use-sidecar: 1.1.3(@types/react@19.2.14)(react@19.2.4) + use-callback-ref: 1.3.3(@types/react@19.2.15)(react@19.2.6) + use-sidecar: 1.1.3(@types/react@19.2.15)(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - react-style-singleton@2.2.3(@types/react@19.2.14)(react@19.2.4): + react-style-singleton@2.2.3(@types/react@19.2.15)(react@19.2.6): dependencies: get-nonce: 1.0.1 - react: 19.2.4 + react: 19.2.6 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - react-syntax-highlighter@16.1.1(react@19.2.4): + react-syntax-highlighter@16.1.1(react@19.2.6): dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.29.7 highlight.js: 10.7.3 highlightjs-vue: 1.0.0 lowlight: 1.20.0 prismjs: 1.30.0 - react: 19.2.4 + react: 19.2.6 refractor: 5.0.0 - react@19.2.4: {} + react@19.2.6: {} readdirp@5.0.0: {} recma-build-jsx@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 estree-util-build-jsx: 3.0.1 vfile: 6.0.3 @@ -7847,14 +7954,14 @@ snapshots: recma-parse@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 esast-util-from-js: 2.0.1 unified: 11.0.5 vfile: 6.0.3 recma-stringify@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 estree-util-to-js: 2.0.0 unified: 11.0.5 vfile: 6.0.3 @@ -7867,11 +7974,11 @@ snapshots: reflect.getprototypeof@1.0.10: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -7895,7 +8002,7 @@ snapshots: regexp.prototype.flags@1.5.4: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 es-errors: 1.3.0 get-proto: 1.0.1 @@ -7910,7 +8017,7 @@ snapshots: rehype-recma@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 '@types/hast': 3.0.4 hast-util-to-estree: 3.1.3 transitivePeerDependencies: @@ -7973,24 +8080,16 @@ snapshots: repeat-string@1.6.1: {} - require-from-string@2.0.2: {} - requires-port@1.0.0: {} - reselect@5.1.1: {} + reselect@5.2.0: {} resolve-pkg-maps@1.0.0: {} - resolve@1.22.11: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - resolve@2.0.0-next.6: + resolve@2.0.0-next.7: dependencies: es-errors: 1.3.0 - is-core-module: 2.16.1 + is-core-module: 2.16.2 node-exports-info: 1.6.0 object-keys: 1.1.1 path-parse: 1.0.7 @@ -8004,9 +8103,9 @@ snapshots: dependencies: queue-microtask: 1.2.3 - safe-array-concat@1.1.3: + safe-array-concat@1.1.4: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 get-intrinsic: 1.3.0 has-symbols: 1.1.0 @@ -8025,8 +8124,6 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 - sax@1.5.0: {} - scheduler@0.27.0: {} scroll-into-view-if-needed@3.1.0: @@ -8035,7 +8132,7 @@ snapshots: semver@6.3.1: {} - semver@7.7.4: {} + semver@7.8.1: {} serialize-error@8.1.0: dependencies: @@ -8061,7 +8158,7 @@ snapshots: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 sha.js@2.4.12: dependencies: @@ -8073,7 +8170,7 @@ snapshots: dependencies: '@img/colour': 1.1.0 detect-libc: 2.1.2 - semver: 7.7.4 + semver: 7.8.1 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.5 '@img/sharp-darwin-x64': 0.34.5 @@ -8107,20 +8204,20 @@ snapshots: shebang-regex@3.0.0: {} - shiki@4.0.1: + shiki@4.1.0: dependencies: - '@shikijs/core': 4.0.1 - '@shikijs/engine-javascript': 4.0.1 - '@shikijs/engine-oniguruma': 4.0.1 - '@shikijs/langs': 4.0.1 - '@shikijs/themes': 4.0.1 - '@shikijs/types': 4.0.1 + '@shikijs/core': 4.1.0 + '@shikijs/engine-javascript': 4.1.0 + '@shikijs/engine-oniguruma': 4.1.0 + '@shikijs/langs': 4.1.0 + '@shikijs/themes': 4.1.0 + '@shikijs/types': 4.1.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 short-unique-id@5.3.2: {} - side-channel-list@1.0.0: + side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -8144,7 +8241,7 @@ snapshots: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 - side-channel-list: 1.0.0 + side-channel-list: 1.0.1 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -8165,18 +8262,18 @@ snapshots: string.prototype.includes@2.0.1: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 string.prototype.matchall@4.0.12: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 gopd: 1.2.0 has-symbols: 1.1.0 @@ -8188,30 +8285,30 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.24.2 string.prototype.trim@1.2.10: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.1 - es-object-atoms: 1.1.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 stringify-entities@4.0.4: dependencies: @@ -8220,8 +8317,6 @@ snapshots: strip-bom@3.0.0: {} - strnum@2.2.0: {} - style-to-js@1.1.21: dependencies: style-to-object: 1.0.14 @@ -8230,73 +8325,73 @@ snapshots: dependencies: inline-style-parser: 0.2.7 - styled-jsx@5.1.6(@babel/core@7.29.0)(react@19.2.4): + styled-jsx@5.1.6(@babel/core@7.29.7)(react@19.2.6): dependencies: client-only: 0.0.1 - react: 19.2.4 + react: 19.2.6 optionalDependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 supports-preserve-symlinks-flag@1.0.0: {} - swagger-client@3.37.0: + swagger-client@3.37.4: dependencies: - '@babel/runtime-corejs3': 7.29.0 + '@babel/runtime-corejs3': 7.29.7 '@scarf/scarf': 1.4.0 - '@swagger-api/apidom-core': 1.6.0 - '@swagger-api/apidom-error': 1.6.0 - '@swagger-api/apidom-json-pointer': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-1': 1.6.0 - '@swagger-api/apidom-ns-openapi-3-2': 1.6.0 - '@swagger-api/apidom-reference': 1.6.0 + '@swagger-api/apidom-core': 1.11.1 + '@swagger-api/apidom-error': 1.11.1 + '@swagger-api/apidom-json-pointer': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-1': 1.11.1 + '@swagger-api/apidom-ns-openapi-3-2': 1.11.1 + '@swagger-api/apidom-reference': 1.11.1 '@swaggerexpert/cookie': 2.0.2 deepmerge: 4.3.1 fast-json-patch: 3.1.1 js-yaml: 4.1.1 neotraverse: 0.6.18 node-abort-controller: 3.1.1 - node-fetch-commonjs: 3.3.2 openapi-path-templating: 2.2.1 openapi-server-url-templating: 1.3.0 ramda: 0.30.1 ramda-adjunct: 5.1.0(ramda@0.30.1) transitivePeerDependencies: - debug + - supports-color - swagger-ui-react@5.32.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + swagger-ui-react@5.32.6(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - '@babel/runtime-corejs3': 7.29.0 + '@babel/runtime-corejs3': 7.29.7 '@scarf/scarf': 1.4.0 base64-js: 1.5.1 buffer: 6.0.3 classnames: 2.5.1 css.escape: 1.5.1 deep-extend: 0.6.0 - dompurify: 3.2.6 + dompurify: 3.4.7 ieee754: 1.2.1 immutable: 3.8.3 js-file-download: 0.4.12 js-yaml: 4.1.1 - lodash: 4.17.23 + lodash: 4.18.1 prop-types: 15.8.1 randexp: 0.5.3 randombytes: 2.1.0 - react: 19.2.4 - react-copy-to-clipboard: 5.1.0(react@19.2.4) - react-debounce-input: 3.3.0(react@19.2.4) - react-dom: 19.2.4(react@19.2.4) + react: 19.2.6 + react-copy-to-clipboard: 5.1.0(react@19.2.6) + react-debounce-input: 3.3.0(react@19.2.6) + react-dom: 19.2.6(react@19.2.6) react-immutable-proptypes: 2.2.0(immutable@3.8.3) - react-immutable-pure-component: 2.2.2(immutable@3.8.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react-inspector: 6.0.2(react@19.2.4) - react-redux: 9.2.0(@types/react@19.2.14)(react@19.2.4)(redux@5.0.1) - react-syntax-highlighter: 16.1.1(react@19.2.4) + react-immutable-pure-component: 2.2.2(immutable@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + react-inspector: 6.0.2(react@19.2.6) + react-redux: 9.3.0(@types/react@19.2.15)(react@19.2.6)(redux@5.0.1) + react-syntax-highlighter: 16.1.1(react@19.2.6) redux: 5.0.1 redux-immutable: 4.0.0(immutable@3.8.3) remarkable: 2.0.1 - reselect: 5.1.1 + reselect: 5.2.0 serialize-error: 8.1.0 sha.js: 2.4.12 - swagger-client: 3.37.0 + swagger-client: 3.37.4 url-parse: 1.5.10 xml: 1.0.1 xml-but-prettier: 1.0.1 @@ -8304,19 +8399,20 @@ snapshots: transitivePeerDependencies: - '@types/react' - debug + - supports-color - tailwind-merge@3.5.0: {} + tailwind-merge@3.6.0: {} - tailwindcss@4.2.1: {} + tailwindcss@4.3.0: {} - tapable@2.3.0: {} + tapable@2.3.3: {} - tinyexec@1.0.2: {} + tinyexec@1.2.4: {} - tinyglobby@0.2.15: + tinyglobby@0.2.17: dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 to-buffer@1.2.2: dependencies: @@ -8332,7 +8428,7 @@ snapshots: tree-sitter-json@0.24.8(tree-sitter@0.21.1): dependencies: - node-addon-api: 8.6.0 + node-addon-api: 8.8.0 node-gyp-build: 4.8.4 optionalDependencies: tree-sitter: 0.21.1 @@ -8340,13 +8436,13 @@ snapshots: tree-sitter@0.21.1: dependencies: - node-addon-api: 8.6.0 + node-addon-api: 8.8.0 node-gyp-build: 4.8.4 optional: true tree-sitter@0.22.4: dependencies: - node-addon-api: 8.6.0 + node-addon-api: 8.8.0 node-gyp-build: 4.8.4 optional: true @@ -8354,7 +8450,7 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.4.0(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@5.9.3): dependencies: typescript: 5.9.3 @@ -8371,10 +8467,9 @@ snapshots: tslib@2.8.1: {} - tsx@4.21.0: + tsx@4.22.4: dependencies: - esbuild: 0.27.3 - get-tsconfig: 4.13.6 + esbuild: 0.28.0 optionalDependencies: fsevents: 2.3.3 @@ -8392,7 +8487,7 @@ snapshots: typed-array-byte-length@1.0.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 @@ -8401,16 +8496,16 @@ snapshots: typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 - typed-array-length@1.0.7: + typed-array-length@1.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 @@ -8421,13 +8516,13 @@ snapshots: dependencies: ts-toolbelt: 9.6.0 - typescript-eslint@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.0.2(jiti@2.6.1) + '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/parser': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.60.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) + eslint: 10.4.1(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -8487,33 +8582,36 @@ snapshots: unraw@3.0.0: {} - unrs-resolver@1.11.1: + unrs-resolver@1.12.2: dependencies: napi-postinstall: 0.3.4 optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.11.1 - '@unrs/resolver-binding-android-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-x64': 1.11.1 - '@unrs/resolver-binding-freebsd-x64': 1.11.1 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 - '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-musl': 1.11.1 - '@unrs/resolver-binding-wasm32-wasi': 1.11.1 - '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 - '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 - '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - - update-browserslist-db@1.2.3(browserslist@4.28.1): - dependencies: - browserslist: 4.28.1 + '@unrs/resolver-binding-android-arm-eabi': 1.12.2 + '@unrs/resolver-binding-android-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-x64': 1.12.2 + '@unrs/resolver-binding-freebsd-x64': 1.12.2 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 + '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 + '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-musl': 1.12.2 + '@unrs/resolver-binding-openharmony-arm64': 1.12.2 + '@unrs/resolver-binding-wasm32-wasi': 1.12.2 + '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 + '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 + '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 + + update-browserslist-db@1.2.3(browserslist@4.28.2): + dependencies: + browserslist: 4.28.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -8526,26 +8624,24 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - use-callback-ref@1.3.3(@types/react@19.2.14)(react@19.2.4): + use-callback-ref@1.3.3(@types/react@19.2.15)(react@19.2.6): dependencies: - react: 19.2.4 + react: 19.2.6 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - use-sidecar@1.1.3(@types/react@19.2.14)(react@19.2.4): + use-sidecar@1.1.3(@types/react@19.2.15)(react@19.2.6): dependencies: detect-node-es: 1.1.0 - react: 19.2.4 + react: 19.2.6 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - use-sync-external-store@1.6.0(react@19.2.4): + use-sync-external-store@1.6.0(react@19.2.6): dependencies: - react: 19.2.4 - - util-deprecate@1.0.2: {} + react: 19.2.6 vfile-location@5.0.3: dependencies: @@ -8564,8 +8660,6 @@ snapshots: web-namespaces@2.0.1: {} - web-streams-polyfill@3.3.3: {} - web-tree-sitter@0.24.5: optional: true @@ -8591,7 +8685,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.20 + which-typed-array: 1.1.21 which-collection@1.0.2: dependencies: @@ -8600,10 +8694,10 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 - which-typed-array@1.1.20: + which-typed-array@1.1.21: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 for-each: 0.3.5 get-proto: 1.0.1 @@ -8620,24 +8714,18 @@ snapshots: dependencies: repeat-string: 1.6.1 - xml-js@1.6.11: - dependencies: - sax: 1.5.0 - xml@1.0.1: {} yallist@3.1.1: {} - yaml@2.8.2: {} - yocto-queue@0.1.0: {} zenscroll@4.0.2: {} - zod-validation-error@4.0.2(zod@4.3.6): + zod-validation-error@4.0.2(zod@4.4.3): dependencies: - zod: 4.3.6 + zod: 4.4.3 - zod@4.3.6: {} + zod@4.4.3: {} zwitch@2.0.4: {} From ed38a6cb423ec307ff37a18a394c038f636fe2ae Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Tue, 16 Jun 2026 12:13:46 +0200 Subject: [PATCH 06/21] change style --- app/global.css | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/global.css b/app/global.css index ebd461c..500d670 100644 --- a/app/global.css +++ b/app/global.css @@ -1,9 +1,17 @@ @import 'tailwindcss'; -@import 'fumadocs-ui/css/black.css'; +@import 'fumadocs-ui/css/solar.css'; @import 'fumadocs-ui/css/preset.css'; @import 'fumadocs-openapi/css/preset.css'; -/* Hide the scheme container for Swagger UI */ -.swagger-ui .scheme-container { - display: none; +html { + scrollbar-gutter: stable; +} + +html>body[data-scroll-locked] { + margin-right: 0px !important; + --removed-body-scroll-bar-size: 0px !important; +} + +:root { + --fd-layout-width: 1600px; } \ No newline at end of file From 5a73f1514338d40d4e4b35f105671d7548f628cf Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Tue, 16 Jun 2026 12:17:05 +0200 Subject: [PATCH 07/21] Remove apidoc components from swagger --- app/tech-docs/[[...slug]]/page.tsx | 8 -------- components/api-doc.tsx | 29 ----------------------------- mdx-components.tsx | 2 -- 3 files changed, 39 deletions(-) delete mode 100644 components/api-doc.tsx diff --git a/app/tech-docs/[[...slug]]/page.tsx b/app/tech-docs/[[...slug]]/page.tsx index be7e2d9..28ca1b4 100644 --- a/app/tech-docs/[[...slug]]/page.tsx +++ b/app/tech-docs/[[...slug]]/page.tsx @@ -8,7 +8,6 @@ import { import { notFound } from 'next/navigation'; import { createRelativeLink } from 'fumadocs-ui/mdx'; import { getMDXComponents } from '@/mdx-components'; -import ApiDoc from '@/components/api-doc'; const basePath = process.env.NEXT_PUBLIC_BASE_PATH || ''; @@ -20,13 +19,6 @@ export default async function Page(props: { const page = source.getPage(params.slug); if (!page) notFound(); - // Use the ApiDoc component for API pages (wrapper for Swagger UI) - if (params.slug?.includes('api')) { - return ( - - ) - } - const MDXContent = page.data.body; return ( diff --git a/components/api-doc.tsx b/components/api-doc.tsx deleted file mode 100644 index 7e8c6ed..0000000 --- a/components/api-doc.tsx +++ /dev/null @@ -1,29 +0,0 @@ -'use client'; -import SwaggerUI from "swagger-ui-react" -import 'swagger-ui-react/swagger-ui.css'; - - -const DisableAuthorizePlugin = function () { - return { - wrapComponents: { - authorizeBtn: () => () => null, - TryItOutButton: () => () => null - } - }; -}; - -const ApiDoc = ({ specUrl }: { specUrl: string }) => { - return ( - - ) -} - -export default ApiDoc; \ No newline at end of file diff --git a/mdx-components.tsx b/mdx-components.tsx index 0ea2524..2844aee 100644 --- a/mdx-components.tsx +++ b/mdx-components.tsx @@ -5,7 +5,6 @@ import { ImageProps } from 'next/image'; import Video, { VideoProps } from './components/content-items/video'; import { joinPath } from './components/utils'; import ExampleBox, { ExampleBoxProps } from './components/content-items/example-box'; -import ApiDoc from './components/api-doc'; import { APIPage } from '@/components/api-page'; const basePath = process.env.NEXT_PUBLIC_BASE_PATH || ""; @@ -24,7 +23,6 @@ export function getMDXComponents(components?: MDXComponents): MDXComponents { videoPath={joinPath(basePath, (props as VideoProps).videoPath)} />, ExampleBox: (props) => , - ApiDoc: (props) => , APIPage, ...components, }; From 4d664517abf5ef6f24f128abec9cf96b6af7ebef Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:43:35 +0200 Subject: [PATCH 08/21] add profile-based config, improve index layout and styling --- lib/openapi.ts | 14 +- scripts/doc-profiles.ts | 39 ++++++ scripts/generate-docs.ts | 269 +++++++++++++++++++++++++++++++++++---- 3 files changed, 296 insertions(+), 26 deletions(-) create mode 100644 scripts/doc-profiles.ts diff --git a/lib/openapi.ts b/lib/openapi.ts index dc16315..869d402 100644 --- a/lib/openapi.ts +++ b/lib/openapi.ts @@ -1,5 +1,13 @@ import { createOpenAPI } from 'fumadocs-openapi/server'; -export const openapi = createOpenAPI({ - input: ['./openapi/test.yaml'], -}); +export const defaultOpenAPIInput = './openapi/management-api.yaml'; + +export function createDocsOpenAPI(input: string | string[]) { + const normalizedInput = Array.isArray(input) ? input : [input]; + + return createOpenAPI({ + input: normalizedInput, + }); +} + +export const openapi = createDocsOpenAPI(defaultOpenAPIInput); diff --git a/scripts/doc-profiles.ts b/scripts/doc-profiles.ts new file mode 100644 index 0000000..46e4982 --- /dev/null +++ b/scripts/doc-profiles.ts @@ -0,0 +1,39 @@ +export type DocsProfile = { + id: string; + input: string; + outputDir: string; + baseUrl: string; + groupByTag: boolean; +}; + +export const docsProfiles: DocsProfile[] = [ + { + id: 'management-api', + input: './openapi/management-api.yaml', + outputDir: 'content/tech-docs/management-api/api', + baseUrl: '/tech-docs/management-api/api', + groupByTag: true, + }, + { + id: 'participant-api', + input: './openapi/participant-api.yaml', + outputDir: 'content/tech-docs/participant-api/api', + baseUrl: '/tech-docs/participant-api/api', + groupByTag: true, + }, + { + id: 'smtp-bridge', + input: './openapi/smtp-bridge.yaml', + outputDir: 'content/tech-docs/smtp-bridge/api', + baseUrl: '/tech-docs/smtp-bridge/api', + groupByTag: false, + }, +]; + +export function getDocsProfile(profileId: string): DocsProfile | undefined { + return docsProfiles.find((profile) => profile.id === profileId); +} + +export function getDefaultDocsProfile(): DocsProfile { + return docsProfiles[0]; +} diff --git a/scripts/generate-docs.ts b/scripts/generate-docs.ts index 2ca8dbe..7b95702 100644 --- a/scripts/generate-docs.ts +++ b/scripts/generate-docs.ts @@ -1,25 +1,248 @@ -import { openapi } from '@/lib/openapi'; +import { createDocsOpenAPI } from '@/lib/openapi'; import { generateFiles } from 'fumadocs-openapi'; -import path from 'node:path'; - -void generateFiles({ - index: { - // for generating `href` - url: { - baseUrl: '/docs/api', - // paths produced by generateFiles are relative to `output` - contentDir: '.', - }, - items: [ - { - // output path - path: 'index.mdx', - // optional: set frontmatter - description: 'All available pages', +import fs from 'node:fs/promises'; +import { docsProfiles, DocsProfile, getDefaultDocsProfile, getDocsProfile } from './doc-profiles'; + +const requestedProfileId = process.argv[2] ?? process.env.DOCS_PROFILE; + +if (requestedProfileId === '--list') { + console.log(docsProfiles.map((profile) => profile.id).join('\n')); + process.exit(0); +} + +const runAllProfiles = requestedProfileId === '--all'; + +const selectedProfile = requestedProfileId + ? (runAllProfiles ? getDefaultDocsProfile() : getDocsProfile(requestedProfileId)) + : getDefaultDocsProfile(); + +if (!selectedProfile) { + console.error(`Unknown docs profile: ${requestedProfileId}`); + console.error(`Available profiles: ${docsProfiles.map((profile) => profile.id).join(', ')}`); + process.exit(1); +} + +type GeneratedLeafEntry = { + type: 'operation' | 'webhook'; + path: string; + info: { + title: string; + description?: string; + }; + item: { + method: string; + tags?: string[]; + }; + schemaId?: string; +}; + +type GeneratedGroupEntry = { + type: 'group'; + info?: { + title?: string; + description?: string; + }; + tag?: { + name?: string; + description?: string; + }; + path?: string; + schemaId?: string; + entries: GeneratedEntry[]; +}; + +type GeneratedEntry = GeneratedLeafEntry | GeneratedGroupEntry; + +type OpenAPISchema = { + type?: string; + format?: string; + description?: string; + required?: string[]; + properties?: Record; + additionalProperties?: boolean | Record; + enum?: unknown[]; + items?: unknown; +}; + +function escapeHtml(value: string): string { + return value + .replace(/&/g, '&') + .replace(//g, '>'); +} + +function renderAdditionalProperties(additionalProperties: OpenAPISchema['additionalProperties']): string { + if (additionalProperties === true) return 'yes'; + if (additionalProperties === false) return 'no'; + if (typeof additionalProperties === 'object') return 'schema-defined'; + return '-'; +} + +function renderPropertyRows(schema: OpenAPISchema): string { + const properties = schema.properties ?? {}; + const propertyEntries = Object.entries(properties); + + if (propertyEntries.length === 0) { + return '
  • Properties: -
  • '; + } + + const rows = propertyEntries.map(([name, value]) => { + const property = value as { type?: string; description?: string; format?: string }; + const type = property.type ?? 'object'; + const format = property.format ? ` (${property.format})` : ''; + const description = property.description ? ` - ${property.description}` : ''; + return `
  • ${escapeHtml(name)}: ${escapeHtml(type + format + description)}
  • `; + }); + + return `
  • Properties:
      ${rows.join('')}
  • `; +} + +const methodBadgeClass: Record = { + GET: 'text-emerald-600', + POST: 'text-blue-600', + PUT: 'text-amber-600', + PATCH: 'text-orange-600', + DELETE: 'text-red-600', +}; + +async function generateForProfile(profile: DocsProfile) { + const outputDir = profile.outputDir; + const baseUrl = profile.baseUrl; + const openapi = createDocsOpenAPI(profile.input); + const groupByTag = profile.groupByTag; + + console.log(`Generating docs for profile: ${profile.id}`); + + // Remove stale files from previous generation modes (flat vs grouped). + await fs.rm(outputDir, { recursive: true, force: true }); + + const schemas = await openapi.getSchemas(); + const primarySchema = Object.values(schemas)[0]; + const indexTitle = primarySchema?.dereferenced.info?.title ?? 'API'; + const indexDescription = primarySchema?.dereferenced.info?.description ?? 'All available pages'; + const schemaMap = (primarySchema?.dereferenced.components?.schemas ?? {}) as Record; + + await generateFiles({ + per: 'operation', + groupBy: groupByTag ? 'tag' : undefined, + meta: true, + index: { + // for generating `href` + url: { + baseUrl, + // paths produced by generateFiles are relative to `output` + contentDir: '.', }, - ], - }, - input: openapi, - output: 'content/docs/api', - includeDescription: true, -}); + items: (ctx) => { + const only = Object.values(ctx.generated) + .flat() + .map((file) => file.path); + + return [ + { + // output path + path: 'index.mdx', + // optional: set frontmatter + description: indexDescription, + only, + }, + ]; + }, + }, + input: openapi, + output: outputDir, + includeDescription: true, + beforeWrite(files) { + const indexFile = files.find((file) => file.path === 'index.mdx'); + if (!indexFile) return; + + const topEntries = Object.values(this.generatedEntries) + .flat() as GeneratedEntry[]; + + const collectLeafEntries = (entry: GeneratedEntry): GeneratedLeafEntry[] => { + if (entry.type === 'group') { + return entry.entries.flatMap((child) => collectLeafEntries(child)); + } + + return [entry]; + }; + + const renderCard = (entry: GeneratedLeafEntry): string => { + const method = entry.item.method.toUpperCase(); + const methodClass = methodBadgeClass[method] ?? 'text-fd-muted-foreground'; + const href = `${baseUrl}/${entry.path.replace(/\.mdx$/, '')}`; + const description = entry.info.description + ? `description={${JSON.stringify(entry.info.description)}}` + : ''; + + return `${entry.info.title} ${method}} ${description} />`; + }; + + const groupSections = topEntries.map((entry) => { + if (entry.type !== 'group') { + return ''; + } + + const groupTitle = entry.info?.title ?? entry.tag?.name ?? 'Untagged'; + const groupDescription = entry.info?.description + ? `\n\n${entry.info.description}` + : ''; + const cards = collectLeafEntries(entry).map(renderCard); + + return `\n### ${groupTitle}${groupDescription}\n\n\n${cards.join('\n')}\n`; + }).filter(Boolean); + + const ungroupedCards = topEntries + .filter((entry): entry is GeneratedLeafEntry => entry.type !== 'group') + .map(renderCard); + + const endpointSection = [ + groupByTag && groupSections.length > 0 ? `${groupSections.join('\n')}` : '', + !groupByTag && ungroupedCards.length > 0 + ? `\n${ungroupedCards.join('\n')}\n` + : '', + ungroupedCards.length > 0 + && groupByTag + ? `## Other Endpoints\n\n\n${ungroupedCards.join('\n')}\n` + : '', + ].filter(Boolean).join('\n\n'); + + const schemaBlocks = Object.entries(schemaMap).map(([name, schema]) => { + const description = (schema.description ?? '-') + .replace(/\r?\n/g, ' ') + .trim(); + const required = schema.required?.length ? schema.required.join(', ') : '-'; + const enumValues = schema.enum?.length ? schema.enum.map((item) => JSON.stringify(item)).join(', ') : '-'; + const type = schema.type ?? 'object'; + const format = schema.format ?? '-'; + const additionalProperties = renderAdditionalProperties(schema.additionalProperties); + const itemType = schema.items && typeof schema.items === 'object' + ? ((schema.items as { type?: string }).type ?? 'object') + : '-'; + + const summaryText = description !== '-' + ? `${escapeHtml(name)} - ${escapeHtml(description)}` + : `${escapeHtml(name)}`; + + return `
    \n${summaryText}\n
      \n
    • Type: ${escapeHtml(type)}
    • \n
    • Format: ${escapeHtml(format)}
    • \n
    • Required: ${escapeHtml(required)}
    • \n
    • Enum: ${escapeHtml(enumValues)}
    • \n
    • Array item type: ${escapeHtml(itemType)}
    • \n
    • Additional properties: ${escapeHtml(additionalProperties)}
    • \n${renderPropertyRows(schema)}\n
    \n
    `; + }); + + const schemaSection = schemaBlocks.length > 0 + ? `\n## Schemas\n\nClick a schema to expand details.\n\n${schemaBlocks.join('\n\n')}\n` + : ''; + + indexFile.content = `---\ntitle: ${indexTitle}\ndescription: ${indexDescription}\n---\n\n{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}\n\n${endpointSection}\n${schemaSection}`; + }, + }); +} + +void (async () => { + if (runAllProfiles) { + for (const profile of docsProfiles) { + await generateForProfile(profile); + } + return; + } + + await generateForProfile(selectedProfile); +})(); From 056585b98a30c8675bd8d75310a681dfa1b66fe9 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:44:04 +0200 Subject: [PATCH 09/21] Fix json file --- public/openapi/participant-api.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/openapi/participant-api.json b/public/openapi/participant-api.json index af4c7dd..92e1b67 100644 --- a/public/openapi/participant-api.json +++ b/public/openapi/participant-api.json @@ -4018,7 +4018,7 @@ "value", "type" ] - }, + } } }, "tags": [ From 1b4f8bb066da97242b681671998fcdc3b365f768 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Fri, 19 Jun 2026 07:53:56 +0200 Subject: [PATCH 10/21] Add endpoint openAPI files in yaml format --- openapi/management-api.yaml | 6297 ++++++++++++++++++++++++++++++++++ openapi/participant-api.yaml | 2779 +++++++++++++++ openapi/smtp-bridge.yaml | 162 + 3 files changed, 9238 insertions(+) create mode 100644 openapi/management-api.yaml create mode 100644 openapi/participant-api.yaml create mode 100644 openapi/smtp-bridge.yaml diff --git a/openapi/management-api.yaml b/openapi/management-api.yaml new file mode 100644 index 0000000..d9c3388 --- /dev/null +++ b/openapi/management-api.yaml @@ -0,0 +1,6297 @@ +--- +openapi: 3.1.0 +info: + title: Management API + version: 1.0.0 + description: Endpoints for management authentication, user management, study administration, + messaging, and participant administration. +tags: +- name: auth + description: Authentication & Session +- name: studies + description: Study management +- name: surveys + description: Survey management +- name: study-rules + description: Study rules +- name: study-variables + description: Study variables +- name: study-counters + description: Study counters +- name: study-permissions + description: Permissions for a study +- name: notifications + description: Notification subscriptions +- name: code-lists + description: Study code lists +- name: participants + description: Participant operations +- name: reports + description: Participant reports +- name: responses + description: Response exports & queries +- name: files + description: File management for studies +- name: messaging + description: Messaging templates & scheduled emails +- name: user-management + description: Management user accounts and permissions +- name: service-accounts + description: Service account management +- name: app-roles + description: App role templates & assignments +- name: actions + description: Run actions on participants +components: + securitySchemes: + BearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + responses: + Error400: + description: Bad Request + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + Error401: + description: Unauthorized + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + Error403: + description: Forbidden + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + Error404: + description: Not Found + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + Error429: + description: Too Many Requests + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + Error500: + description: Internal Server Error + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + schemas: + Message: + type: object + properties: + message: + type: string + additionalProperties: false + Error: + type: object + properties: + error: + type: string + additionalProperties: false + User: + type: object + properties: + id: + type: string + description: ObjectID + account: + "$ref": "#/components/schemas/Account" + timestamps: + "$ref": "#/components/schemas/Timestamps" + profiles: + type: array + items: + "$ref": "#/components/schemas/Profile" + contactPreferences: + "$ref": "#/components/schemas/ContactPreferences" + contactInfos: + type: array + items: + "$ref": "#/components/schemas/ContactInfo" + additionalProperties: false + Account: + type: object + properties: + type: + type: string + accountID: + type: string + additionalProperties: true + Timestamps: + type: object + properties: + lastTokenRefresh: + type: integer + lastLogin: + type: integer + createdAt: + type: integer + updatedAt: + type: integer + lastPasswordChange: + type: integer + reminderToConfirmSentAt: + type: integer + markedForDeletion: + type: integer + additionalProperties: false + Profile: + type: object + properties: + id: + type: string + createdAt: + type: integer + mainProfile: + type: boolean + additionalProperties: true + ContactPreferences: + type: object + properties: + subscribedToNewsletter: + type: boolean + sendNewsletterTo: + type: array + items: + type: string + subscribedToWeekly: + type: boolean + receiveWeeklyMessageDayOfWeek: + type: integer + additionalProperties: false + ContactInfo: + type: object + properties: + id: + type: string + type: + type: string + enum: + - email + - phone + confirmedAt: + type: integer + confirmationLinkSentAt: + type: integer + email: + type: string + phone: + type: string + additionalProperties: false + Study: + type: object + properties: + id: + type: string + description: ObjectID + example: 64b8f0f2e1b1c8a1d2e3f4g5 + key: + type: string + secretKey: + type: string + status: + type: string + props: + type: object + additionalProperties: true + configs: + type: object + additionalProperties: true + notificationSubscriptions: + type: array + items: + type: object + additionalProperties: true + stats: + type: object + additionalProperties: true + nextTimerEvent: + type: integer + rules: + type: array + items: + type: object + additionalProperties: true + additionalProperties: false + description: Study object + Survey: + type: object + properties: + id: + type: string + description: ObjectID + surveyKey: + type: string + props: + type: object + additionalProperties: true + prefillRules: + type: array + items: + type: object + additionalProperties: true + contextRules: + type: object + additionalProperties: true + maxItemsPerPage: + type: object + additionalProperties: true + availableFor: + type: string + requireLoginBeforeSubmission: + type: boolean + published: + type: integer + unpublished: + type: integer + surveyDefinition: + type: object + additionalProperties: true + versionId: + type: string + metadata: + type: object + additionalProperties: + type: string + additionalProperties: false + description: Survey object + StudyVariables: + type: object + properties: + id: + type: string + description: ObjectID + createdAt: + type: string + format: date-time + configUpdatedAt: + type: string + format: date-time + valueUpdatedAt: + type: string + format: date-time + studyKey: + type: string + key: + type: string + value: + oneOf: + - type: string + - type: integer + - type: number + - type: boolean + - type: string + format: date-time + - type: object + additionalProperties: true + - type: array + items: {} + - type: 'null' + type: + type: string + enum: + - string + - int + - float + - boolean + - date + label: + type: string + description: + type: string + uiType: + type: string + uiPriority: + type: integer + configs: + type: object + additionalProperties: true + additionalProperties: false + description: Study variable object + Permission: + type: object + properties: + id: + type: string + description: ObjectID + subjectId: + type: string + subjectType: + type: string + resourceType: + type: string + resourceKey: + type: string + action: + type: string + limiter: + type: object + additionalProperties: + type: string + additionalProperties: false + description: Permission object + AppRoleTemplate: + type: object + properties: + id: + type: string + description: ObjectID + appName: + type: string + role: + type: string + requiredPermissions: + type: array + items: + "$ref": "#/components/schemas/Permission" + createdAt: + type: string + format: date-time + updatedAt: + type: string + format: date-time + additionalProperties: false + description: App role template object + ServiceUser: + type: object + properties: + id: + type: string + description: ObjectID + label: + type: string + description: + type: string + createdAt: + type: string + format: date-time + additionalProperties: false + ServiceUserAPIKey: + type: object + properties: + id: + type: string + serviceUserID: + type: string + key: + type: string + expiresAt: + type: string + format: date-time + createdAt: + type: string + format: date-time + lastUsedAt: + type: string + format: date-time + additionalProperties: false + StudyRules: + type: object + properties: + id: + type: string + description: ObjectID + studyKey: + type: string + uploadedAt: + type: integer + uploadedBy: + type: string + rules: + type: array + items: + type: object + additionalProperties: true + serialisedRules: + type: string + additionalProperties: false + description: Study rules object + SurveyInfo: + type: object + properties: + key: + type: string + StudyCounter: + type: object + properties: + studyKey: + type: string + scope: + type: string + value: + type: integer + additionalProperties: false + description: Study counter object + NotificationSubscription: + type: object + properties: + messageType: + type: string + email: + type: string + additionalProperties: false + description: Notification Subscription object + PaginationInfos: + type: object + description: Pagination information + properties: + totalCount: + type: integer + currentPage: + type: integer + totalPages: + type: integer + pageSize: + type: integer + additionalProperties: false + StudyCodeListEntry: + type: object + properties: + id: + type: string + description: ObjectID + studyKey: + type: string + listKey: + type: string + code: + type: string + addedAt: + type: string + format: date-time + additionalProperties: false + description: Study Code List Entry object + EmailTemplate: + type: object + properties: + id: + type: string + description: ObjectID + messageType: + type: string + studyKey: + type: string + defaultLanguage: + type: string + headerOverrides: + type: object + additionalProperties: true + translations: + type: array + items: + type: object + additionalProperties: true + additionalProperties: false + description: Email Template object + SmsTemplate: + type: object + properties: + id: + type: string + description: ObjectID + userID: + type: string + messageType: + type: string + sentAt: + type: string + format: date-time + phoneNumber: + type: string + additionalProperties: false + description: SMS Template object + ScheduledEmail: + type: object + properties: + id: + type: string + description: ObjectID + template: + "$ref": "#/components/schemas/EmailTemplate" + type: + type: string + studyKey: + type: string + condition: + type: object + additionalProperties: true + nextTime: + type: integer + period: + type: integer + label: + type: string + until: + type: integer + additionalProperties: false + description: Scheduled Email object + Report: + type: object + properties: + id: + type: string + description: MongoDB ObjectID as hex string + key: + type: string + participantID: + type: string + responseID: + type: string + timestamp: + type: integer + description: Unix timestamp + modifiedAt: + type: string + format: date-time + data: + type: array + items: + "$ref": "#/components/schemas/ReportData" + additionalProperties: false + description: Report object + required: + - key + - participantID + - timestamp + ReportData: + type: object + properties: + key: + type: string + value: + type: string + dtype: + type: string + enum: + - date + - float + - int + - string + - rawMessage + - keyList + additionalProperties: false + Task: + type: object + properties: + id: + type: string + createdAt: + type: string + format: date-time + createdBy: + type: string + updatedAt: + type: string + format: date-time + status: + type: string + targetCount: + type: integer + processedCount: + type: integer + resultFile: + type: string + fileType: + type: string + error: + type: string + additionalProperties: true + FileInfo: + type: object + properties: + id: + type: string + description: ObjectID + participantID: + type: string + status: + type: string + uploadedBy: + type: string + path: + type: string + previewPath: + type: string + submittedAt: + type: integer + createdAt: + type: string + format: date-time + updatedAt: + type: string + format: date-time + fileType: + type: string + visibleToParticipant: + type: boolean + size: + type: integer + required: + - id + - participantID + - path + additionalProperties: false + description: File Info object + AppRole: + type: object + properties: + id: + type: string + description: ObjectID + subjectId: + type: string + subjectType: + type: string + appName: + type: string + role: + type: string + createdAt: + type: string + format: date-time + Participant: + type: object + description: Participant object + properties: + id: + type: string + description: ObjectID + participantId: + type: string + currentStudySession: + type: string + modifiedAt: + type: integer + enteredAt: + type: integer + studyStatus: + type: string + flags: + type: object + additionalProperties: + type: string + linkingCodes: + type: object + additionalProperties: + type: string + assignedSurveys: + type: array + items: + "$ref": "#/components/schemas/AssignedSurvey" + lastSubmissions: + type: object + additionalProperties: + type: integer + messages: + type: array + items: + type: object + additionalProperties: true + required: + - participantId + additionalProperties: false + AssignedSurvey: + type: object + description: Assigned survey object + properties: + studyKey: + type: string + surveyKey: + type: string + validFrom: + type: integer + validUntil: + type: integer + category: + type: string + profileID: + type: string + required: + - studyKey + - surveyKey + additionalProperties: false + SurveyResponse: + type: object + description: Survey response + properties: + id: + type: string + description: ObjectID + key: + type: string + participantId: + type: string + versionId: + type: string + openedAt: + type: integer + submittedAt: + type: integer + arrivedAt: + type: integer + responses: + type: array + items: + type: object + additionalProperties: true + context: + type: object + additionalProperties: + type: string + required: + - key + additionalProperties: false + ManagementUser: + type: object + properties: + id: + type: string + description: MongoDB ObjectID as hex string + sub: + type: string + email: + type: string + format: email + username: + type: string + provider: + type: string + imageUrl: + type: string + format: uri + isAdmin: + type: boolean + lastLoginAt: + type: string + format: date-time + createdAt: + type: string + format: date-time + additionalProperties: false + description: Management User object +paths: + "/v1/auth/signin-with-idp": + post: + tags: + - auth + operationId: auth_signinWithIdp + summary: Sign in with identity provider + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + sub: + type: string + description: IDP Subject (User ID) + roles: + type: array + items: + type: string + name: + type: string + provider: + type: string + email: + type: string + format: email + imageURL: + type: string + renewToken: + type: string + description: Token used to renew the session + instanceID: + type: string + required: + - sub + responses: + '200': + description: Signed in + content: + application/json: + schema: + type: object + properties: + accessToken: + type: string + sessionID: + type: string + expiresAt: + type: integer + description: Unix timestamp (seconds) + isAdmin: + type: boolean + required: + - accessToken + - sessionID + - expiresAt + - isAdmin + '400': + "$ref": "#/components/responses/Error400" + '403': + "$ref": "#/components/responses/Error403" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/extend-session": + post: + tags: + - auth + operationId: auth_extendSession + summary: Extend session + security: + - BearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + renewToken: + type: string + required: + - renewToken + responses: + '200': + description: Session extended + content: + application/json: + schema: + type: object + properties: + accessToken: + type: string + sessionID: + type: string + expiresAt: + type: integer + description: Unix timestamp (seconds) + isAdmin: + type: boolean + required: + - accessToken + - sessionID + - expiresAt + - isAdmin + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/renew-token/{sessionID}": + get: + tags: + - auth + operationId: auth_renewToken + summary: Get renew token + security: + - BearerAuth: [] + parameters: + - name: sessionID + in: path + required: true + schema: + type: string + responses: + '200': + description: Renew token + content: + application/json: + schema: + type: object + properties: + renewToken: + type: string + required: + - renewToken + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/permissions": + get: + tags: + - auth + operationId: auth_listPermissions + summary: List permissions and roles + security: + - BearerAuth: [] + responses: + '200': + description: Permissions + content: + application/json: + schema: + type: object + properties: + isAdmin: + type: boolean + permissions: + type: array + items: + "$ref": "#/components/schemas/Permission" + appRoles: + type: array + items: + "$ref": "#/components/schemas/AppRole" + required: + - isAdmin + - permissions + - appRoles + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/participants/virtual": + post: + tags: + - participants + operationId: participants_createVirtualParticipant + summary: Create virtual participant + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Virtual participant created + content: + application/json: + schema: + type: object + properties: + message: + type: string + participant: + "$ref": "#/components/schemas/Participant" + required: + - message + - participant + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/participants/{participantID}/responses": + get: + tags: + - participants + operationId: participants_listParticipantResponses + summary: List participant responses + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: participantID + in: path + required: true + schema: + type: string + - name: page + in: query + schema: + type: integer + minimum: 1 + - name: limit + in: query + schema: + type: integer + minimum: 1 + maximum: 100 + - name: filter + in: query + description: bson.M object to filter responses + schema: + type: object + additionalProperties: + type: object + - name: sort + in: query + description: bson.M object to sort responses + schema: + type: object + additionalProperties: + type: object + responses: + '200': + description: List participant responses + content: + application/json: + schema: + type: object + properties: + responses: + type: array + items: + "$ref": "#/components/schemas/SurveyResponse" + pagination: + "$ref": "#/components/schemas/PaginationInfos" + required: + - responses + - pagination + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - participants + operationId: participants_submitParticipantResponse + summary: Submit participant response + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: participantID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/SurveyResponse" + responses: + '200': + description: Submit participant response + content: + application/json: + schema: + type: object + properties: + message: + type: string + result: + type: array + items: + "$ref": "#/components/schemas/AssignedSurvey" + participant: + "$ref": "#/components/schemas/Participant" + required: + - message + - result + - participant + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/participants/{participantID}/events": + post: + tags: + - participants + operationId: participants_submitParticipantEvent + summary: Submit participant event + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: participantID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + eventKey: + type: string + payload: + type: object + additionalProperties: + type: string + required: + - eventKey + responses: + '200': + description: Submit participant event + content: + application/json: + schema: + type: object + properties: + message: + type: string + result: + type: array + items: + "$ref": "#/components/schemas/AssignedSurvey" + required: + - message + - result + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/participants/{participantID}/reports": + post: + tags: + - reports + operationId: participants_submitParticipantReport + summary: Submit participant report + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: participantID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/Report" + responses: + '200': + description: Submit participant report + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/participants/{participantID}/reports/{reportID}": + put: + tags: + - reports + operationId: participants_updateParticipantReport + summary: Update participant report + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: participantID + in: path + required: true + schema: + type: string + - name: reportID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + data: + "$ref": "#/components/schemas/ReportData" + mode: + type: object + additionalProperties: true + required: + - data + - mode + responses: + '200': + description: Update participant report + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/participants/merge": + post: + tags: + - participants + operationId: participants_mergeParticipants + summary: Merge participants + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + targetParticipantID: + type: string + withParticipantID: + type: string + required: + - targetParticipantID + - withParticipantID + responses: + '200': + description: Merge participants + content: + application/json: + schema: + type: object + properties: + participant: + "$ref": "#/components/schemas/Participant" + required: + - participant + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/participants/{participantID}": + put: + tags: + - participants + operationId: participants_editParticipant + summary: Edit participant + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: participantID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/Participant" + responses: + '200': + description: Edit participant + content: + application/json: + schema: + type: object + properties: + message: + type: string + participant: + "$ref": "#/components/schemas/Participant" + required: + - message + - participant + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/messaging/email-templates/global-templates": + get: + tags: + - messaging + operationId: messaging_listGlobalEmailTemplates + summary: List global email templates + security: + - BearerAuth: [] + responses: + '200': + description: List global templates + content: + application/json: + schema: + type: object + properties: + templates: + type: array + items: + "$ref": "#/components/schemas/EmailTemplate" + required: + - templates + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - messaging + operationId: messaging_saveGlobalEmailTemplate + summary: Save global email template + security: + - BearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/EmailTemplate" + responses: + '200': + description: Save global template + content: + application/json: + schema: + type: object + properties: + template: + "$ref": "#/components/schemas/EmailTemplate" + required: + - template + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/messaging/email-templates/global-templates/{messageType}": + get: + tags: + - messaging + operationId: messaging_getGlobalEmailTemplate + summary: Get global email template by type + security: + - BearerAuth: [] + parameters: + - name: messageType + in: path + required: true + schema: + type: string + responses: + '200': + description: Global template + content: + application/json: + schema: + type: object + properties: + template: + "$ref": "#/components/schemas/EmailTemplate" + required: + - template + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - messaging + operationId: messaging_deleteGlobalEmailTemplate + summary: Delete global email template + security: + - BearerAuth: [] + parameters: + - name: messageType + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/messaging/email-templates/study-templates": + get: + tags: + - messaging + operationId: messaging_listAllStudyEmailTemplates + summary: List all study email templates + security: + - BearerAuth: [] + responses: + '200': + description: List study templates (all studies) + content: + application/json: + schema: + type: object + properties: + templates: + type: array + items: + "$ref": "#/components/schemas/EmailTemplate" + required: + - templates + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/messaging/email-templates/study-templates/{studyKey}": + get: + tags: + - messaging + operationId: messaging_listStudyEmailTemplates + summary: List study email templates + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: List study templates + content: + application/json: + schema: + type: object + properties: + templates: + type: array + items: + "$ref": "#/components/schemas/EmailTemplate" + required: + - templates + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - messaging + operationId: messaging_saveStudyEmailTemplate + summary: Save study email template + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/EmailTemplate" + responses: + '200': + description: Save study template + content: + application/json: + schema: + type: object + properties: + template: + "$ref": "#/components/schemas/EmailTemplate" + required: + - template + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '404': + "$ref": "#/components/responses/Error404" + '500': + "$ref": "#/components/responses/Error500" + "/v1/messaging/email-templates/study-templates/{studyKey}/{messageType}": + get: + tags: + - messaging + operationId: messaging_getStudyEmailTemplate + summary: Get study email template by type + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: messageType + in: path + required: true + schema: + type: string + responses: + '200': + description: Study template + content: + application/json: + schema: + type: object + properties: + template: + "$ref": "#/components/schemas/EmailTemplate" + required: + - template + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - messaging + operationId: messaging_deleteStudyEmailTemplate + summary: Delete study email template + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: messageType + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/messaging/sms-templates/": + post: + tags: + - messaging + operationId: messaging_saveSmsTemplate + summary: Save SMS template + security: + - BearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/SmsTemplate" + responses: + '200': + description: Save SMS template + content: + application/json: + schema: + type: object + properties: + template: + "$ref": "#/components/schemas/SmsTemplate" + required: + - template + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/messaging/sms-templates/{messageType}": + get: + tags: + - messaging + operationId: messaging_getSmsTemplate + summary: Get SMS template by type + security: + - BearerAuth: [] + parameters: + - name: messageType + in: path + required: true + schema: + type: string + responses: + '200': + description: SMS template + content: + application/json: + schema: + type: object + properties: + template: + "$ref": "#/components/schemas/SmsTemplate" + required: + - template + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/messaging/scheduled-emails/": + get: + tags: + - messaging + operationId: messaging_listScheduledEmails + summary: List scheduled emails + security: + - BearerAuth: [] + responses: + '200': + description: List scheduled emails + content: + application/json: + schema: + type: object + properties: + schedules: + type: array + items: + "$ref": "#/components/schemas/ScheduledEmail" + required: + - schedules + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - messaging + operationId: messaging_createScheduledEmail + summary: Save scheduled email + security: + - BearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/ScheduledEmail" + responses: + '200': + description: Save scheduled email + content: + application/json: + schema: + type: object + properties: + schedule: + "$ref": "#/components/schemas/ScheduledEmail" + required: + - schedule + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/messaging/scheduled-emails/{id}": + get: + tags: + - messaging + operationId: messaging_getScheduledEmail + summary: Get scheduled email + security: + - BearerAuth: [] + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: Scheduled email + content: + application/json: + schema: + type: object + properties: + schedule: + "$ref": "#/components/schemas/ScheduledEmail" + required: + - schedule + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - messaging + operationId: messaging_deleteScheduledEmail + summary: Delete scheduled email + security: + - BearerAuth: [] + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/": + get: + tags: + - studies + operationId: studies_listStudies + security: + - BearerAuth: [] + summary: List all studies + responses: + '200': + description: List all studies + content: + application/json: + schema: + type: object + properties: + studies: + type: array + items: + "$ref": "#/components/schemas/Study" + required: + - studies + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - studies + operationId: studies_createStudy + security: + - BearerAuth: [] + summary: Create a new study + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + studyKey: + type: string + secretKey: + type: string + isSystemDefaultStudy: + type: boolean + required: + - studyKey + - secretKey + additionalProperties: false + responses: + '201': + description: Created study + content: + application/json: + schema: + type: object + properties: + study: + "$ref": "#/components/schemas/Study" + required: + - study + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/": + get: + tags: + - studies + operationId: studies_getStudy + security: + - BearerAuth: [] + summary: Get study configuration by key + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Study config + content: + application/json: + schema: + type: object + properties: + study: + "$ref": "#/components/schemas/Study" + required: + - study + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - studies + operationId: studies_deleteStudy + security: + - BearerAuth: [] + summary: Delete a study by key + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/export-config": + get: + tags: + - studies + operationId: studies_exportConfig + security: + - BearerAuth: [] + summary: Export study configuration, surveys, and rules + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: config + in: query + schema: + type: string + enum: + - 'true' + - 'false' + default: 'false' + - name: surveys + in: query + schema: + type: string + enum: + - 'true' + - 'false' + default: 'false' + - name: rules + in: query + schema: + type: string + enum: + - 'true' + - 'false' + default: 'false' + responses: + '200': + description: Export + content: + application/json: + schema: + type: object + properties: + exportedAt: + type: string + format: date-time + config: + "$ref": "#/components/schemas/Study" + rules: + "$ref": "#/components/schemas/StudyRules" + surveys: + type: array + items: + "$ref": "#/components/schemas/Survey" + additionalProperties: false + description: Stream Export Object + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/is-default": + put: + tags: + - studies + operationId: studies_updateIsDefault + security: + - BearerAuth: [] + summary: Update default status of a study + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + isDefault: + type: boolean + required: + - isDefault + additionalProperties: false + responses: + '200': + description: Updated + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/status": + put: + tags: + - studies + operationId: studies_updateStatus + security: + - BearerAuth: [] + summary: Update status of a study + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + status: + type: string + required: + - status + additionalProperties: false + responses: + '200': + description: Updated + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/display-props": + put: + tags: + - studies + operationId: studies_updateDisplayProps + security: + - BearerAuth: [] + summary: Update display properties of a study + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: array + items: + type: object + additionalProperties: true + description: + type: array + items: + type: object + additionalProperties: true + tags: + type: array + items: + type: object + additionalProperties: true + additionalProperties: false + responses: + '200': + description: Updated + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/file-upload-config": + put: + tags: + - studies + operationId: studies_updateFileUploadRule + security: + - BearerAuth: [] + summary: Update file upload configuration of a study + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + simplifiedAllowedUpload: + type: boolean + expression: + type: object + additionalProperties: true + responses: + '200': + description: Updated + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/surveys/": + get: + tags: + - surveys + operationId: surveys_listSurveyInfos + security: + - BearerAuth: [] + summary: List survey infos for a study + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: List survey infos + content: + application/json: + schema: + type: object + properties: + surveys: + type: array + items: + "$ref": "#/components/schemas/SurveyInfo" + required: + - surveys + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - surveys + operationId: surveys_createSurvey + security: + - BearerAuth: [] + summary: Create a new survey in a study + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/Survey" + responses: + '201': + description: Created survey + content: + application/json: + schema: + type: object + properties: + survey: + "$ref": "#/components/schemas/Survey" + required: + - survey + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/surveys/{surveyKey}": + get: + tags: + - surveys + operationId: surveys_getLatestSurvey + security: + - BearerAuth: [] + summary: Get latest survey by key + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: surveyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Latest survey + content: + application/json: + schema: + type: object + properties: + survey: + "$ref": "#/components/schemas/Survey" + required: + - survey + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - surveys + operationId: surveys_updateSurvey + security: + - BearerAuth: [] + summary: Update survey definition + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: surveyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + survey: + "$ref": "#/components/schemas/Survey" + required: + - survey + responses: + '200': + description: Updated survey + content: + application/json: + schema: + type: object + properties: + survey: + "$ref": "#/components/schemas/Survey" + required: + - survey + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/surveys/{surveyKey}/unpublish": + post: + tags: + - surveys + operationId: surveys_unpublishSurvey + security: + - BearerAuth: [] + summary: Unpublish a survey + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: surveyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Unpublished + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/surveys/{surveyKey}/versions": + get: + tags: + - surveys + operationId: surveys_listSurveyVersions + security: + - BearerAuth: [] + summary: List all survey versions + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: surveyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Versions + content: + application/json: + schema: + type: object + properties: + versions: + type: array + items: + "$ref": "#/components/schemas/Survey" + required: + - versions + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/surveys/{surveyKey}/versions/{versionID}": + get: + tags: + - surveys + operationId: surveys_getSurveyVersion + security: + - BearerAuth: [] + summary: Get a specific survey version + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: surveyKey + in: path + required: true + schema: + type: string + - name: versionID + in: path + required: true + schema: + type: string + responses: + '200': + description: Version + content: + application/json: + schema: + type: object + properties: + survey: + "$ref": "#/components/schemas/Survey" + required: + - survey + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - surveys + operationId: surveys_deleteSurveyVersion + security: + - BearerAuth: [] + summary: Delete a survey version + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: surveyKey + in: path + required: true + schema: + type: string + - name: versionID + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/permissions/": + get: + tags: + - study-permissions + operationId: studyPermissions_listPermissions + summary: List study permissions + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Permission list + content: + application/json: + schema: + type: object + properties: + permissions: + type: object + additionalProperties: + type: object + properties: + user: + type: object + additionalProperties: true + permissions: + type: array + items: + "$ref": "#/components/schemas/Permission" + required: + - permissions + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - study-permissions + operationId: studyPermissions_addPermission + summary: Add a study permission + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/Permission" + responses: + '200': + description: Created + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/permissions/{permissionID}": + delete: + tags: + - study-permissions + operationId: studyPermissions_removePermission + summary: Remove a study permission + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: permissionID + in: path + required: true + schema: + type: string + responses: + '200': + description: Removed + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/notification-subscriptions/": + get: + tags: + - notifications + operationId: notifications_getSubscriptions + summary: List notification subscriptions + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Subscriptions + content: + application/json: + schema: + type: object + properties: + subscriptions: + type: array + items: + "$ref": "#/components/schemas/NotificationSubscription" + required: + - subscriptions + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + put: + tags: + - notifications + operationId: notifications_updateSubscriptions + summary: Update notification subscriptions + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + subscriptions: + type: array + items: + "$ref": "#/components/schemas/NotificationSubscription" + required: + - subscriptions + additionalProperties: false + responses: + '200': + description: Updated + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/study-code-list/list-keys": + get: + tags: + - code-lists + operationId: codeLists_getListKeys + summary: List code list keys + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: List keys + content: + application/json: + schema: + type: object + properties: + listKeys: + type: array + items: + type: string + required: + - listKeys + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/study-code-list/codes": + get: + tags: + - code-lists + operationId: codeLists_getCodes + summary: List codes of a study code list + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: listKey + in: query + required: true + schema: + type: string + - name: page + in: query + description: page number (starting from 1) + schema: + type: integer + minimum: 1 + default: 1 + - name: limit + in: query + description: maximum number of codes per page + schema: + type: integer + minimum: 1 + default: 10 + responses: + '200': + description: Codes + content: + application/json: + schema: + type: object + properties: + codeList: + type: array + items: + "$ref": "#/components/schemas/StudyCodeListEntry" + pagination: + "$ref": "#/components/schemas/PaginationInfos" + required: + - codeList + - pagination + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - code-lists + operationId: codeLists_addCodes + summary: Add codes to a study code list + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + listKey: + type: string + codes: + type: array + items: + type: string + required: + - listKey + - codes + additionalProperties: false + responses: + '200': + description: Added + content: + application/json: + schema: + type: object + properties: + errors: + type: array + items: + type: string + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + delete: + tags: + - code-lists + operationId: codeLists_removeCode + summary: Remove a code from a study code list + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: listKey + in: query + required: true + schema: + type: string + - name: code + in: query + required: true + schema: + type: string + responses: + '200': + description: Removed + content: + application/json: + schema: + type: object + properties: + success: + type: boolean + required: + - success + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/study-counters/": + get: + tags: + - study-counters + operationId: studyCounters_listValues + security: + - BearerAuth: [] + summary: List all study counter values + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Counter values + content: + application/json: + schema: + type: object + properties: + values: + type: array + items: + "$ref": "#/components/schemas/StudyCounter" + required: + - values + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/study-counters/{scope}": + post: + tags: + - study-counters + operationId: studyCounters_saveValue + security: + - BearerAuth: [] + summary: Set a study counter value for scope + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: scope + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + value: + type: integer + required: + - value + additionalProperties: false + responses: + '200': + description: Saved + content: + application/json: + schema: + type: object + properties: + value: + type: integer + required: + - value + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + put: + tags: + - study-counters + operationId: studyCounters_incrementValue + security: + - BearerAuth: [] + summary: Increment a study counter value + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: scope + in: path + required: true + schema: + type: string + responses: + '200': + description: Incremented + content: + application/json: + schema: + type: object + properties: + value: + type: integer + required: + - value + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - study-counters + operationId: studyCounters_removeValue + security: + - BearerAuth: [] + summary: Remove a study counter value + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: scope + in: path + required: true + schema: + type: string + responses: + '200': + description: Removed + content: + application/json: + schema: + type: object + properties: + success: + type: boolean + required: + - success + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/variables/": + get: + tags: + - study-variables + operationId: studyVariables_listVariables + summary: List study variables + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Variable list + content: + application/json: + schema: + type: object + properties: + variables: + type: array + items: + "$ref": "#/components/schemas/StudyVariables" + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - study-variables + operationId: studyVariables_addVariable + summary: Create a new study variable + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + variableDef: + "$ref": "#/components/schemas/StudyVariables" + additionalProperties: false + responses: + '200': + description: Created variable + content: + application/json: + schema: + type: object + properties: + id: + type: string + additionalProperties: false + required: + - id + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/variables/{variableKey}": + get: + tags: + - study-variables + operationId: studyVariables_getVariable + summary: Get a study variable by key + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: variableKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Variable + content: + application/json: + schema: + type: object + properties: + variable: + "$ref": "#/components/schemas/StudyVariables" + additionalProperties: false + required: + - variable + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + put: + tags: + - study-variables + operationId: studyVariables_updateVariableDef + summary: Update study variable definition + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: variableKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + variableDef: + "$ref": "#/components/schemas/StudyVariables" + required: + - variableDef + additionalProperties: false + responses: + '200': + description: Updated + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - study-variables + operationId: studyVariables_deleteVariable + summary: Delete a study variable + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: variableKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + type: object + properties: + success: + type: boolean + required: + - success + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/variables/{variableKey}/value": + put: + tags: + - study-variables + operationId: studyVariables_updateVariableValue + summary: Update study variable value + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: variableKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + variable: + "$ref": "#/components/schemas/StudyVariables" + required: + - variable + additionalProperties: false + responses: + '200': + description: Value updated + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/rules/": + get: + tags: + - study-rules + operationId: studyRules_getCurrent + summary: Get current published study rules + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Current rules + content: + application/json: + schema: + type: object + properties: + studyRules: + "$ref": "#/components/schemas/StudyRules" + required: + - studyRules + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - study-rules + operationId: studyRules_publishNewVersion + summary: Publish a new version of study rules + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/StudyRules" + responses: + '200': + description: Published + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/rules/versions": + get: + tags: + - study-rules + operationId: studyRules_listVersions + summary: List all study rules versions + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Versions + content: + application/json: + schema: + type: object + properties: + versions: + type: array + items: + "$ref": "#/components/schemas/StudyRules" + required: + - versions + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/rules/versions/{id}": + get: + tags: + - study-rules + operationId: studyRules_getVersion + summary: Get a study rules version by ID + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: Version + content: + application/json: + schema: + type: object + properties: + studyRules: + "$ref": "#/components/schemas/StudyRules" + required: + - studyRules + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - study-rules + operationId: studyRules_deleteVersion + summary: Delete a study rules version + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/run-actions/participants/{participantID}": + post: + tags: + - actions + operationId: actions_runOnParticipant + summary: Run actions on a participant + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: participantID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + rules: + type: array + items: + type: object + additionalProperties: true + required: + - rules + additionalProperties: false + responses: + '200': + description: Task started + content: + application/json: + schema: + type: object + properties: + participantCount: + type: integer + duration: + type: integer + ruleResults: + type: array + items: + type: integer + required: + - participantCount + - duration + - ruleResults + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/run-actions/participants/": + post: + tags: + - actions + operationId: actions_runOnParticipants + summary: Run actions on multiple participants + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + rules: + type: array + items: + type: object + additionalProperties: true + required: + - rules + additionalProperties: false + responses: + '200': + description: Task started + content: + application/json: + schema: + type: object + properties: + task: + "$ref": "#/components/schemas/Task" + required: + - task + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/run-actions/participants/task/{taskID}": + get: + tags: + - actions + operationId: actions_getTaskStatus + summary: Get actions task status + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: taskID + in: path + required: true + schema: + type: string + responses: + '200': + description: Task status + content: + application/json: + schema: + type: object + properties: + task: + "$ref": "#/components/schemas/Task" + required: + - task + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/run-actions/participants/task/{taskID}/result": + get: + tags: + - actions + operationId: actions_getTaskResult + summary: Get actions task result + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: taskID + in: path + required: true + schema: + type: string + responses: + '200': + description: Result + content: + application/json: + schema: + type: object + properties: + result: + type: object + additionalProperties: + type: object + required: + - result + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '404': + "$ref": "#/components/responses/Error404" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/run-actions/previous-responses/{participantID}": + post: + tags: + - actions + operationId: actions_runPrevResponsesOnParticipant + summary: Run actions on previous responses for a participant + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: participantID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + surveyKeys: + type: array + items: + type: string + from: + type: integer + to: + type: integer + rules: + type: array + items: + type: object + additionalProperties: true + responses: + '200': + description: Task started + content: + application/json: + schema: + type: object + properties: + participantCount: + type: integer + duration: + type: integer + ruleResults: + type: array + items: + type: integer + required: + - participantCount + - duration + - ruleResults + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/run-actions/previous-responses/": + post: + tags: + - actions + operationId: actions_runPrevResponsesOnParticipants + summary: Run actions on previous responses for multiple participants + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + surveyKeys: + type: array + items: + type: string + from: + type: integer + to: + type: integer + rules: + type: array + items: + type: object + additionalProperties: true + responses: + '200': + description: Task started + content: + application/json: + schema: + type: object + properties: + task: + "$ref": "#/components/schemas/Task" + required: + - task + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/run-actions/previous-responses/task/{taskID}": + get: + tags: + - actions + operationId: actions_getPrevResponsesTaskStatus + summary: Get previous-responses actions task status + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: taskID + in: path + required: true + schema: + type: string + responses: + '200': + description: Task status + content: + application/json: + schema: + type: object + properties: + task: + "$ref": "#/components/schemas/Task" + required: + - task + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/run-actions/previous-responses/task/{taskID}/result": + get: + tags: + - actions + operationId: actions_getPrevResponsesTaskResult + summary: Get previous-responses actions task result + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: taskID + in: path + required: true + schema: + type: string + responses: + '200': + description: Result + content: + application/json: + schema: + type: object + properties: + result: + type: object + additionalProperties: + type: object + required: + - result + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '404': + "$ref": "#/components/responses/Error404" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/survey-info/": + get: + tags: + - responses + operationId: dataExporter_getSurveyInfo + summary: List survey info + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: surveyKey + in: query + schema: + type: string + responses: + '200': + description: File download (JSON or CSV) + headers: + Content-Disposition: + description: Indicates the filename the client should save. + schema: + type: string + content: + application/json: + schema: + type: string + format: binary + text/csv: + schema: + type: string + format: binary + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/responses/count": + get: + tags: + - responses + operationId: dataExporter_getResponsesCount + summary: Get responses count + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: surveyKey + in: query + schema: + type: string + - name: filter + in: query + description: bson.M object to filter files + schema: + type: object + additionalProperties: + type: object + responses: + '200': + description: Count + content: + application/json: + schema: + type: object + properties: + count: + type: integer + required: + - count + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/responses/": + post: + tags: + - responses + operationId: dataExporter_generateResponsesExport + summary: Start responses export task + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: surveyKey + in: query + schema: + type: string + - name: page + in: query + description: page number (starting from 1) + schema: + type: integer + minimum: 1 + default: 1 + - name: limit + in: query + description: maximum number of responses per page + schema: + type: integer + minimum: 1 + default: 10 + - name: filter + in: query + description: bson.M object to filter responses + schema: + type: object + additionalProperties: + type: object + - name: sort + in: query + description: bson.M object to sort responses + schema: + type: object + additionalProperties: + type: object + - name: shortKeys + in: query + description: return short keys for responses + schema: + type: boolean + default: false + - name: questionOptionSep + in: query + description: separator used in option keys + schema: + type: string + default: "-" + - name: format + in: query + description: response export format + schema: + type: string + default: wide + enum: + - wide + - long + - json + - name: extraContextColumns + in: query + description: comma-separated list of extra context columns + schema: + type: string + responses: + '200': + description: Export started + content: + application/json: + schema: + type: object + properties: + task: + "$ref": "#/components/schemas/Task" + required: + - task + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/responses/task/{taskID}": + get: + tags: + - responses + operationId: dataExporter_getResponsesTaskStatus + summary: Get responses export task status + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: taskID + in: path + required: true + schema: + type: string + responses: + '200': + description: Task status + content: + application/json: + type: object + properties: + task: + "$ref": "#/components/schemas/Task" + required: + - task + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/responses/task/{taskID}/result": + get: + tags: + - responses + operationId: dataExporter_getResponsesTaskResult + summary: Get responses export task result + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: taskID + in: path + required: true + schema: + type: string + responses: + '200': + description: File download + headers: + Content-Disposition: + description: Indicates the filename the client should save. + schema: + type: string + content: + "*/*": + schema: + type: string + format: binary + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '404': + "$ref": "#/components/responses/Error404" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/responses/daily-exports": + get: + tags: + - responses + operationId: dataExporter_listDailyResponseExports + summary: List daily response exports + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Exports + content: + application/json: + schema: + type: object + properties: + dailyExports: + type: array + items: + type: string + required: + - dailyExports + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/responses/daily-exports/{exportID}": + get: + tags: + - responses + operationId: dataExporter_getDailyResponseExport + summary: Get daily response export by ID + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: exportID + in: path + required: true + schema: + type: string + responses: + '200': + description: File download (JSON or CSV) + headers: + Content-Disposition: + description: Indicates the filename the client should save. + schema: + type: string + content: + application/json: + schema: + type: string + format: binary + text/csv: + schema: + type: string + format: binary + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '404': + "$ref": "#/components/responses/Error404" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/participants/count": + get: + tags: + - participants + operationId: dataExporter_getParticipantsCount + summary: Get participants count + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: filter + in: query + description: bson.M object to filter participants + schema: + type: object + additionalProperties: + type: object + responses: + '200': + description: Count + content: + application/json: + schema: + type: object + properties: + count: + type: integer + required: + - count + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/participants/": + post: + tags: + - participants + operationId: dataExporter_generateParticipantsExport + summary: Start participants export task + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: filter + in: query + description: bson.M object to filter participants + schema: + type: object + additionalProperties: + type: object + - name: sort + in: query + description: bson.M object to sort participants + schema: + type: object + additionalProperties: + type: object + responses: + '200': + description: Export started + content: + application/json: + schema: + type: object + properties: + task: + "$ref": "#/components/schemas/Task" + required: + - task + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/participants/task/{taskID}": + get: + tags: + - participants + operationId: dataExporter_getParticipantsTaskStatus + summary: Get participants export task status + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: taskID + in: path + required: true + schema: + type: string + responses: + '200': + description: Task status + content: + application/json: + schema: + type: object + properties: + task: + "$ref": "#/components/schemas/Task" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/participants/task/{taskID}/result": + get: + tags: + - participants + operationId: dataExporter_getParticipantsTaskResult + summary: Get participants export task result + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: taskID + in: path + required: true + schema: + type: string + responses: + '200': + description: File download + headers: + Content-Disposition: + description: Indicates the filename the client should save. + schema: + type: string + content: + "*/*": + schema: + type: string + format: binary + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '404': + "$ref": "#/components/responses/Error404" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/reports/count": + get: + tags: + - reports + operationId: dataExporter_getReportsCount + summary: Get report items count + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: reportKey + in: query + description: filter by report key + schema: + type: string + - name: pid + in: query + description: filter by participant ID + schema: + type: string + - name: from + in: query + description: filter by timestamp (greater than or equal to this value) + schema: + type: integer + - name: until + in: query + description: filter by timestamp (less than or equal to this value) + schema: + type: integer + responses: + '200': + description: Count + content: + application/json: + schema: + type: object + properties: + count: + type: integer + required: + - count + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/reports/": + post: + tags: + - reports + operationId: dataExporter_generateReportsExport + summary: Start report export task + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: reportKey + in: query + description: filter by report key + schema: + type: string + - name: pid + in: query + description: filter by participant ID + schema: + type: string + - name: from + in: query + description: filter by timestamp (greater than or equal to this value) + schema: + type: integer + - name: until + in: query + description: filter by timestamp (less than or equal to this value) + schema: + type: integer + - name: type + in: query + description: 'export type: ''csv'' to download as table, ''raw'' to export + as JSON' + schema: + type: string + enum: + - raw + - csv + default: raw + responses: + '200': + description: Export started + content: + application/json: + schema: + type: object + properties: + task: + "$ref": "#/components/schemas/Task" + required: + - task + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/reports/task/{taskID}": + get: + tags: + - reports + operationId: dataExporter_getReportsTaskStatus + summary: Get report export task status + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: taskID + in: path + required: true + schema: + type: string + responses: + '200': + description: Task status + content: + application/json: + schema: + type: object + properties: + task: + "$ref": "#/components/schemas/Task" + required: + - task + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/reports/task/{taskID}/result": + get: + tags: + - reports + operationId: dataExporter_getReportsTaskResult + summary: Get report export task result + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: taskID + in: path + required: true + schema: + type: string + responses: + '200': + description: File download + headers: + Content-Disposition: + description: Indicates the filename the client should save. + schema: + type: string + content: + "*/*": + schema: + type: string + format: binary + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/confidential-responses/": + post: + tags: + - responses + operationId: dataExporter_getConfidentialResponses + summary: Start confidential responses export task + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + participantIDs: + type: array + items: + type: string + keyFilter: + type: string + required: + - participantIDs + responses: + '200': + description: Export started + content: + application/json: + schema: + type: object + properties: + responses: + type: array + items: + type: object + additionalProperties: true + description: Confidential survey response export entry + required: + - responses + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + get: + tags: + - responses + operationId: dataExporter_listConfidentialResponseExports + summary: List confidential response exports + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + responses: + '200': + description: Exports + content: + application/json: + schema: + type: object + properties: + availableFiles: + type: array + items: + type: string + required: + - availableFiles + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-exporter/confidential-responses/{exportID}": + get: + tags: + - responses + operationId: dataExporter_getConfidentialResponseExport + summary: Get confidential response export by ID + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: exportID + in: path + required: true + schema: + type: string + responses: + '200': + description: File download (JSON or CSV) + headers: + Content-Disposition: + description: Indicates the filename the client should save. + schema: + type: string + content: + application/json: + schema: + type: string + format: binary + text/csv: + schema: + type: string + format: binary + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '404': + "$ref": "#/components/responses/Error404" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-explorer/responses/": + get: + tags: + - responses + operationId: dataExplorer_listResponses + summary: List survey responses + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: surveyKey + in: query + required: true + schema: + type: string + - name: shortKeys + in: query + description: whether to return short keys for responses + required: false + schema: + type: boolean + default: false + - name: questionOptionSep + in: query + description: character used to seperate question options in response + required: false + schema: + type: string + default: "-" + - name: format + in: query + description: format for survey responses + required: false + schema: + type: string + default: wide + enum: + - wide + - long + - json + - name: page + in: query + description: page number (starting from 1) + schema: + type: integer + minimum: 1 + default: 1 + - name: limit + in: query + description: maximum number of responses per page + schema: + type: integer + minimum: 1 + default: 10 + - name: filter + in: query + description: bson.M object to filter responses + schema: + type: object + additionalProperties: + type: object + - name: sort + in: query + description: bson.M object to sort responses + schema: + type: object + additionalProperties: + type: object + - name: extraContextColumns + in: query + description: comma-separated list of extra context columns to include in the + response + schema: + type: string + responses: + '200': + description: List responses + content: + application/json: + schema: + type: object + properties: + responses: + type: array + items: + type: object + description: Responses + additionalProperties: + type: object + pagination: + "$ref": "#/components/schemas/PaginationInfos" + required: + - responses + - pagination + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - responses + operationId: dataExplorer_deleteResponses + summary: Delete survey responses + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: surveyKey + in: query + schema: + type: string + - name: controlField + in: query + description: field used to control deletion (should be equal to studyKey) + schema: + type: string + - name: filter + in: query + description: bson.M object to filter responses to delete + schema: + type: object + additionalProperties: + type: object + responses: + '200': + description: Deleted summary + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-explorer/responses/{responseId}": + get: + tags: + - responses + operationId: dataExplorer_getResponse + summary: Get survey response by ID + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: responseId + in: path + required: true + schema: + type: string + - name: shortKeys + in: query + description: whether to return short keys for response + required: false + schema: + type: boolean + default: false + - name: questionOptionSep + in: query + description: character used to seperate question options in response + required: false + schema: + type: string + default: "-" + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + response: + type: object + description: Response + additionalProperties: + type: object + required: + - response + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - responses + operationId: dataExplorer_deleteResponse + summary: Delete survey response + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: responseId + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-explorer/participants/": + get: + tags: + - participants + operationId: dataExplorer_listParticipants + summary: List participants + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: page + in: query + description: page number (starting from 1) + schema: + type: integer + minimum: 1 + default: 1 + - name: limit + in: query + description: maximum number of participants per page + schema: + type: integer + minimum: 1 + default: 10 + - name: filter + in: query + description: bson.M object to filter participants + schema: + type: object + additionalProperties: + type: object + - name: sort + in: query + description: bson.M object to sort participants + schema: + type: object + additionalProperties: + type: object + responses: + '200': + description: Participants + content: + application/json: + schema: + type: object + properties: + participants: + type: array + items: + "$ref": "#/components/schemas/Participant" + pagination: + "$ref": "#/components/schemas/PaginationInfos" + required: + - participants + - pagination + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-explorer/participants/{participantID}": + get: + tags: + - participants + operationId: dataExplorer_getParticipant + summary: Get participant + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: participantID + in: path + required: true + schema: + type: string + responses: + '200': + description: Participant + content: + application/json: + schema: + type: object + properties: + participant: + "$ref": "#/components/schemas/Participant" + required: + - participant + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-explorer/reports/keys": + get: + tags: + - reports + operationId: dataExplorer_listReportKeys + summary: List available report keys + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: pid + in: query + description: filter by participant ID + schema: + type: string + - name: from + in: query + description: filter by timestamp (greater than or equal to this value) + schema: + type: integer + - name: until + in: query + description: filter by timestamp (less than or equal to this value) + schema: + type: integer + responses: + '200': + description: Report keys + content: + application/json: + schema: + type: object + properties: + reportKeys: + type: array + items: + type: string + required: + - reportKeys + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-explorer/reports/": + get: + tags: + - reports + operationId: dataExplorer_listReports + summary: List reports + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: reportKey + in: query + description: filter by report key + schema: + type: string + - name: pid + in: query + description: filter by participant ID + schema: + type: string + - name: from + in: query + description: filter by timestamp (greater than or equal to this value) + schema: + type: integer + - name: until + in: query + description: filter by timestamp (less than or equal to this value) + schema: + type: integer + - name: page + in: query + description: page number (starting from 1) + schema: + type: integer + minimum: 1 + default: 1 + - name: limit + in: query + description: maximum number of reports per page + schema: + type: integer + minimum: 1 + default: 10 + - name: filter + in: query + description: bson.M object to filter files + schema: + type: object + additionalProperties: + type: object + responses: + '200': + description: Reports + content: + application/json: + schema: + type: object + properties: + reports: + type: array + items: + "$ref": "#/components/schemas/Report" + pagination: + "$ref": "#/components/schemas/PaginationInfos" + required: + - reports + - pagination + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-explorer/reports/{reportID}": + get: + tags: + - reports + operationId: dataExplorer_getReport + summary: Get report by ID + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: reportID + in: path + required: true + schema: + type: string + responses: + '200': + description: Report + content: + application/json: + schema: + type: object + properties: + report: + "$ref": "#/components/schemas/Report" + required: + - report + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-explorer/files/": + get: + tags: + - files + operationId: dataExplorer_listFiles + summary: List files + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: page + in: query + description: page number (starting from 1) + schema: + type: integer + minimum: 1 + default: 1 + - name: limit + in: query + description: maximum number of files per page + schema: + type: integer + minimum: 1 + default: 10 + - name: filter + in: query + description: bson.M object to filter files + schema: + type: object + additionalProperties: + type: object + responses: + '200': + description: Files + content: + application/json: + schema: + type: object + properties: + files: + type: array + items: + "$ref": "#/components/schemas/FileInfo" + pagination: + "$ref": "#/components/schemas/PaginationInfos" + required: + - files + - pagination + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/data-explorer/files/{fileID}": + get: + tags: + - files + operationId: dataExplorer_getFile + summary: Get file by ID + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: fileID + in: path + required: true + schema: + type: string + responses: + '200': + description: File + content: + application/octet-stream: + schema: + type: string + format: binary + headers: + Content-Disposition: + description: The filename suggested for the download. + schema: + type: string + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '404': + "$ref": "#/components/responses/Error404" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - files + operationId: dataExplorer_deleteFile + summary: Delete file + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: fileID + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/management-users": + get: + tags: + - user-management + summary: List management users + security: + - BearerAuth: [] + operationId: userManagement_listManagementUsers + responses: + '200': + description: List management users + content: + application/json: + schema: + type: object + properties: + users: + type: array + items: + "$ref": "#/components/schemas/ManagementUser" + required: + - users + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/management-users/{userID}": + get: + tags: + - user-management + summary: Get management user + security: + - BearerAuth: [] + operationId: userManagement_getManagementUser + parameters: + - name: userID + in: path + required: true + schema: + type: string + responses: + '200': + description: Management user + content: + application/json: + schema: + type: object + properties: + user: + "$ref": "#/components/schemas/ManagementUser" + required: + - user + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - user-management + summary: Delete management user + security: + - BearerAuth: [] + operationId: userManagement_deleteManagementUser + parameters: + - name: userID + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted management user + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/management-users/{userID}/permissions": + get: + tags: + - user-management + summary: List user permissions + security: + - BearerAuth: [] + operationId: userManagement_listUserPermissions + parameters: + - name: userID + in: path + required: true + schema: + type: string + responses: + '200': + description: Permissions + content: + application/json: + schema: + type: object + properties: + permissions: + type: array + items: + "$ref": "#/components/schemas/Permission" + required: + - permissions + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - user-management + summary: Add permission to user + security: + - BearerAuth: [] + operationId: userManagement_addPermissionToUser + parameters: + - name: userID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/Permission" + responses: + '200': + description: Added permission + content: + application/json: + schema: + type: object + properties: + permission: + "$ref": "#/components/schemas/Permission" + required: + - permission + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/management-users/{userID}/permissions/{permissionID}": + delete: + tags: + - user-management + summary: Delete user permission + security: + - BearerAuth: [] + operationId: userManagement_deleteUserPermission + parameters: + - name: userID + in: path + required: true + schema: + type: string + - name: permissionID + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/management-users/{userID}/permissions/{permissionID}/limiter": + put: + tags: + - user-management + summary: Update permission limiter + security: + - BearerAuth: [] + operationId: userManagement_updatePermissionLimiter + parameters: + - name: userID + in: path + required: true + schema: + type: string + - name: permissionID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/Permission" + responses: + '200': + description: Updated limiter + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/management-users/{userID}/app-roles": + get: + tags: + - app-roles + summary: List app roles for user + security: + - BearerAuth: [] + operationId: userManagement_listUserAppRoles + parameters: + - name: userID + in: path + required: true + schema: + type: string + responses: + '200': + description: App roles + content: + application/json: + schema: + type: object + properties: + appRoles: + type: array + items: + "$ref": "#/components/schemas/AppRole" + required: + - appRoles + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/management-users/{userID}/app-roles/{appRoleTemplateID}": + post: + tags: + - app-roles + summary: Add app role to user + security: + - BearerAuth: [] + operationId: userManagement_addAppRoleToUser + parameters: + - name: userID + in: path + required: true + schema: + type: string + - name: appRoleTemplateID + in: path + required: true + schema: + type: string + responses: + '200': + description: Added app role + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/management-users/{userID}/app-roles/{appRoleID}": + delete: + tags: + - app-roles + summary: Remove app role from user + security: + - BearerAuth: [] + operationId: userManagement_removeUserAppRole + parameters: + - name: userID + in: path + required: true + schema: + type: string + - name: appRoleID + in: path + required: true + schema: + type: string + responses: + '200': + description: Removed role + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/app-roles/templates/": + get: + tags: + - app-roles + summary: List app role templates + security: + - BearerAuth: [] + operationId: userManagement_listAppRoleTemplates + responses: + '200': + description: Templates + content: + application/json: + schema: + type: object + properties: + appRoleTemplates: + type: array + items: + "$ref": "#/components/schemas/AppRoleTemplate" + required: + - appRoleTemplates + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - app-roles + summary: Create app role template + security: + - BearerAuth: [] + operationId: userManagement_createAppRoleTemplate + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + appName: + type: string + role: + type: string + requiredPermissions: + type: array + items: + "$ref": "#/components/schemas/Permission" + required: + - appName + - role + responses: + '200': + description: Created template + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/app-roles/templates/{appRoleTemplateID}": + get: + tags: + - app-roles + summary: Get app role template + security: + - BearerAuth: [] + operationId: userManagement_getAppRoleTemplate + parameters: + - name: appRoleTemplateID + in: path + required: true + schema: + type: string + responses: + '200': + description: Template + content: + application/json: + schema: + type: object + properties: + appRoleTemplate: + "$ref": "#/components/schemas/AppRoleTemplate" + required: + - appRoleTemplate + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + put: + tags: + - app-roles + summary: Update app role template + security: + - BearerAuth: [] + operationId: userManagement_updateAppRoleTemplate + parameters: + - name: appRoleTemplateID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + appName: + type: string + role: + type: string + requiredPermissions: + type: array + items: + "$ref": "#/components/schemas/Permission" + required: + - appName + - role + responses: + '200': + description: Updated template + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/app-roles/templates/delete/{appRoleTemplateID}": + delete: + tags: + - app-roles + summary: Delete app role template + security: + - BearerAuth: [] + operationId: userManagement_deleteAppRoleTemplate + parameters: + - name: appRoleTemplateID + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/app-roles/templates/delete-for-app/{appName}": + delete: + tags: + - app-roles + summary: Delete app role templates for app + security: + - BearerAuth: [] + operationId: userManagement_deleteAppRoleTemplatesForApp + parameters: + - name: appName + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted templates + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/app-roles/": + get: + tags: + - app-roles + summary: List app roles + security: + - BearerAuth: [] + operationId: userManagement_listAppRoles + responses: + '200': + description: App roles + content: + application/json: + schema: + type: object + properties: + appRoles: + type: array + items: + "$ref": "#/components/schemas/AppRole" + required: + - appRoles + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/app-roles/delete/{appName}": + delete: + tags: + - app-roles + summary: Delete app roles for app + security: + - BearerAuth: [] + operationId: userManagement_deleteAppRolesForApp + parameters: + - name: appName + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted app roles + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/participant-users/request-deletion": + post: + tags: + - user-management + summary: Request participant user deletion + security: + - BearerAuth: [] + operationId: userManagement_requestParticipantUserDeletion + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + email: + type: string + format: email + required: + - email + responses: + '200': + description: Deletion requested + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/service-accounts/": + get: + tags: + - service-accounts + summary: List service accounts + security: + - BearerAuth: [] + operationId: userManagement_listServiceAccounts + responses: + '200': + description: Service accounts + content: + application/json: + schema: + type: object + properties: + serviceAccounts: + type: array + items: + "$ref": "#/components/schemas/ServiceUser" + required: + - serviceAccounts + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - service-accounts + summary: Create service account + security: + - BearerAuth: [] + operationId: userManagement_createServiceAccount + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + label: + type: string + description: + type: string + additionalProperties: false + required: + - label + - description + responses: + '200': + description: Created service account + content: + application/json: + schema: + type: object + properties: + serviceAccount: + "$ref": "#/components/schemas/ServiceUser" + required: + - serviceAccount + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/service-accounts/{serviceAccountID}": + get: + tags: + - service-accounts + summary: Get service account + security: + - BearerAuth: [] + operationId: userManagement_getServiceAccount + parameters: + - name: serviceAccountID + in: path + required: true + schema: + type: string + responses: + '200': + description: Service account + content: + application/json: + schema: + type: object + properties: + serviceAccount: + "$ref": "#/components/schemas/ServiceUser" + required: + - serviceAccount + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + put: + tags: + - service-accounts + summary: Update service account + security: + - BearerAuth: [] + operationId: userManagement_updateServiceAccount + parameters: + - name: serviceAccountID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + label: + type: string + description: + type: string + additionalProperties: false + required: + - label + - description + responses: + '200': + description: Updated service account + content: + application/json: + schema: + type: object + properties: + serviceAccount: + "$ref": "#/components/schemas/ServiceUser" + required: + - serviceAccount + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - service-accounts + summary: Delete service account + operationId: userManagement_deleteServiceAccount + security: + - BearerAuth: [] + parameters: + - name: serviceAccountID + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted service account + content: + application/json: + schema: + type: object + properties: + success: + type: boolean + required: + - success + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/service-accounts/{serviceAccountID}/api-keys": + get: + tags: + - service-accounts + summary: List service account API keys + security: + - BearerAuth: [] + operationId: userManagement_listServiceAccountAPIKeys + parameters: + - name: serviceAccountID + in: path + required: true + schema: + type: string + responses: + '200': + description: API keys + content: + application/json: + schema: + type: object + properties: + apiKeys: + type: array + items: + "$ref": "#/components/schemas/ServiceUserAPIKey" + required: + - apiKeys + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - service-accounts + summary: Create service account API key + security: + - BearerAuth: [] + operationId: userManagement_createServiceAccountAPIKey + parameters: + - name: serviceAccountID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + expiresAt: + type: integer + additionalProperties: false + responses: + '200': + description: Created API key + content: + application/json: + schema: + type: object + properties: + success: + type: boolean + required: + - success + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/service-accounts/{serviceAccountID}/api-keys/{apiKeyID}": + delete: + tags: + - service-accounts + summary: Delete service account API key + security: + - BearerAuth: [] + operationId: userManagement_deleteServiceAccountAPIKey + parameters: + - name: serviceAccountID + in: path + required: true + schema: + type: string + - name: apiKeyID + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted API key + content: + application/json: + schema: + type: object + properties: + success: + type: boolean + required: + - success + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/service-accounts/{serviceAccountID}/permissions": + get: + tags: + - service-accounts + summary: List service account permissions + security: + - BearerAuth: [] + operationId: userManagement_listServiceAccountPermissions + parameters: + - name: serviceAccountID + in: path + required: true + schema: + type: string + responses: + '200': + description: Permissions + content: + application/json: + schema: + type: object + properties: + permissions: + type: array + items: + "$ref": "#/components/schemas/Permission" + required: + - permissions + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - service-accounts + summary: Add permission to service account + security: + - BearerAuth: [] + operationId: userManagement_addPermissionToServiceAccount + parameters: + - name: serviceAccountID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/Permission" + responses: + '200': + description: Added permission + content: + application/json: + schema: + type: object + properties: + permission: + "$ref": "#/components/schemas/Permission" + required: + - permission + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/service-accounts/{serviceAccountID}/permissions/{permissionID}": + delete: + tags: + - service-accounts + summary: Delete service account permission + security: + - BearerAuth: [] + operationId: userManagement_deleteServiceAccountPermission + parameters: + - name: serviceAccountID + in: path + required: true + schema: + type: string + - name: permissionID + in: path + required: true + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user-management/service-accounts/{serviceAccountID}/permissions/{permissionID}/limiter": + put: + tags: + - service-accounts + summary: Update service account permission limiter + operationId: userManagement_updateServiceAccountPermissionLimiter + security: + - BearerAuth: [] + parameters: + - name: serviceAccountID + in: path + required: true + schema: + type: string + - name: permissionID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/Permission" + responses: + '200': + description: Updated permission limiter + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" diff --git a/openapi/participant-api.yaml b/openapi/participant-api.yaml new file mode 100644 index 0000000..885734c --- /dev/null +++ b/openapi/participant-api.yaml @@ -0,0 +1,2779 @@ +--- +openapi: 3.1.0 +info: + title: Participant API + version: 1.0.0 + description: Endpoints for participant authentication, user management, and study + interactions. +paths: + "/": + get: + summary: Health check + operationId: getHealth + tags: + - misc + responses: + '200': + description: Service is healthy + content: + application/json: + schema: + "$ref": "#/components/schemas/HealthStatus" + examples: + ok: + value: + status: ok + "/v1/auth/login": + post: + tags: + - auth + summary: Login with email and password + operationId: loginWithEmail + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + email: + type: string + format: email + password: + type: string + instanceId: + type: string + required: + - email + - password + - instanceId + additionalProperties: false + responses: + '200': + description: Access and refresh tokens with user + content: + application/json: + schema: + type: object + properties: + token: + "$ref": "#/components/schemas/TokenEnvelope" + user: + "$ref": "#/components/schemas/User" + required: + - token + - user + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/signup": + post: + tags: + - auth + summary: Sign up with email + operationId: signupWithEmail + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + email: + type: string + format: email + password: + type: string + instanceId: + type: string + infoCheck: + type: string + preferredLanguage: + type: string + withAttributes: + type: object + properties: + type: + type: string + attributes: + type: object + additionalProperties: true + required: + - email + - password + - instanceId + additionalProperties: false + responses: + '200': + description: Access and refresh tokens with user + content: + application/json: + schema: + type: object + properties: + token: + "$ref": "#/components/schemas/TokenEnvelope" + user: + "$ref": "#/components/schemas/User" + required: + - token + - user + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '429': + "$ref": "#/components/responses/Error429" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/login-with-temptoken": + post: + tags: + - auth + summary: Login using a temporary token (optionally with password or access token) + operationId: loginWithTempToken + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + tempToken: + type: string + accessToken: + type: string + password: + type: string + required: + - tempToken + additionalProperties: false + description: Provide either accessToken or password along with tempToken. + responses: + '200': + description: Access and refresh tokens with user + content: + application/json: + schema: + type: object + properties: + token: + "$ref": "#/components/schemas/TokenEnvelopeWithLastOTP" + user: + "$ref": "#/components/schemas/User" + required: + - token + - user + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/temptoken-info": + post: + tags: + - auth + summary: Get info for a temporary token + operationId: getTempTokenInfo + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + instanceId: + type: string + tempToken: + type: string + required: + - instanceId + - tempToken + additionalProperties: false + responses: + '200': + description: Info returned + content: + application/json: + schema: + type: object + properties: + userID: + type: string + email: + type: string + format: email + required: + - userID + - email + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/token/renew": + post: + tags: + - auth + summary: Renew access token + security: + - BearerAuth: [] + operationId: renewToken + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + refreshToken: + type: string + required: + - refreshToken + additionalProperties: false + responses: + '200': + description: Access and refresh tokens with user + content: + application/json: + schema: + type: object + properties: + token: + "$ref": "#/components/schemas/TokenEnvelopeWithLastOTP" + user: + "$ref": "#/components/schemas/User" + required: + - token + - user + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/token/validate": + get: + tags: + - auth + summary: Validate access token + security: + - BearerAuth: [] + operationId: validateToken + responses: + '200': + description: Token valid + content: + application/json: + schema: + type: object + properties: + tokenInfos: + type: object + description: Decoded participant user JWT claims + additionalProperties: true + required: + - tokenInfos + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + "/v1/auth/token/revoke": + get: + tags: + - auth + summary: Revoke refresh tokens for user + security: + - BearerAuth: [] + operationId: revokeTokens + responses: + '200': + description: Revoked + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/resend-email-verification": + post: + tags: + - auth + summary: Resend email verification + security: + - BearerAuth: [] + operationId: resendEmailVerification + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + email: + type: string + format: email + required: + - email + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '429': + "$ref": "#/components/responses/Error429" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/verify-email": + post: + tags: + - auth + summary: Verify email by token + operationId: verifyEmail + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + token: + type: string + required: + - token + responses: + '200': + description: User returned + content: + application/json: + schema: + type: object + properties: + user: + "$ref": "#/components/schemas/User" + required: + - user + '400': + "$ref": "#/components/responses/Error400" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/logout": + post: + tags: + - auth + summary: Logout user (invalidate current session) + security: + - BearerAuth: [] + operationId: logout + responses: + '200': + description: User logged out + content: + application/json: + schema: + type: object + properties: + message: + type: string + tokensRevoked: + type: integer + required: + - message + - tokensRevoked + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/otp": + get: + tags: + - auth + summary: Request OTP (email by default) + security: + - BearerAuth: [] + operationId: requestOTP + parameters: + - name: type + in: query + schema: + type: string + enum: + - email + - sms + default: email + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/auth/otp/verify": + post: + tags: + - auth + summary: Verify OTP code + security: + - BearerAuth: [] + operationId: verifyOTP + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + code: + type: string + required: + - code + additionalProperties: false + responses: + '200': + description: Access and refresh tokens with user + content: + application/json: + schema: + type: object + properties: + token: + "$ref": "#/components/schemas/TokenEnvelopeWithLastOTP" + user: + "$ref": "#/components/schemas/User" + required: + - token + - user + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/password-reset/initiate": + post: + tags: + - password + summary: Initiate password reset + operationId: initiatePasswordReset + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + email: + type: string + format: email + instanceID: + type: string + required: + - email + - instanceID + additionalProperties: false + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '429': + "$ref": "#/components/responses/Error429" + '500': + "$ref": "#/components/responses/Error500" + "/v1/password-reset/get-infos": + post: + tags: + - password + summary: Get info for a password reset token + operationId: getPasswordResetInfos + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + token: + type: string + required: + - token + responses: + '200': + description: Account ID returned + content: + application/json: + schema: + type: object + properties: + accountId: + type: string + required: + - accountId + '400': + "$ref": "#/components/responses/Error400" + '500': + "$ref": "#/components/responses/Error500" + "/v1/password-reset/reset": + post: + tags: + - password + summary: Reset password + operationId: resetPassword + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + token: + type: string + newPassword: + type: string + required: + - token + - newPassword + additionalProperties: false + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/studies/": + get: + tags: + - studies + summary: List studies by status + operationId: getStudiesByStatus + parameters: + - name: instanceID + in: query + required: true + schema: + type: string + - name: status + in: query + required: false + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + studies: + type: array + items: + type: object + properties: + key: + type: string + status: + type: string + props: + type: object + additionalProperties: true + stats: + type: object + additionalProperties: true + required: + - key + - status + - props + - stats + required: + - studies + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/studies/{studyKey}": + get: + tags: + - studies + summary: Get study by key + operationId: getStudy + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: instanceID + in: query + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + study: + type: object + properties: + key: + type: string + status: + type: string + props: + type: object + additionalProperties: true + stats: + type: object + additionalProperties: true + required: + - key + - status + - props + - stats + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/studies/{studyKey}/code-lists/has-code": + get: + tags: + - studies + summary: Check if a code exists in a code list + operationId: studyHasCodeListCode + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: instanceID + in: query + required: true + schema: + type: string + - name: listKey + in: query + required: true + schema: + type: string + - name: code + in: query + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + exists: + type: boolean + required: + - exists + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/studies/{studyKey}/code-lists/available-count": + get: + tags: + - studies + summary: Count available codes in a code list + operationId: getStudyCodeListAvailableCount + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: listKey + in: query + required: true + schema: + type: string + - name: instanceID + in: query + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + availableCount: + type: integer + required: + - availableCount + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/studies/{studyKey}/variables": + get: + tags: + - studies + summary: List variables for a study + operationId: getStudyVariables + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: instanceID + in: query + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + variables: + type: array + items: + "$ref": "#/components/schemas/StudyVariables" + required: + - variables + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/studies/{studyKey}/variables/{variableKey}": + get: + tags: + - studies + summary: Get a study variable + operationId: getStudyVariable + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: variableKey + in: path + required: true + schema: + type: string + - name: instanceID + in: query + required: true + schema: + type: string + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + variable: + "$ref": "#/components/schemas/StudyVariables" + required: + - variable + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/studies/participating": + get: + tags: + - studies + summary: List studies the user participates in + security: + - BearerAuth: [] + operationId: getParticipatingStudies + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + studies: + type: array + items: + "$ref": "#/components/schemas/StudyInfo" + required: + - studies + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/events/{studyKey}/enter": + post: + tags: + - events + summary: Enter a study + security: + - BearerAuth: [] + operationId: enterStudy + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + profileID: + type: string + required: + - profileID + responses: + '200': + description: Assigned surveys returned + content: + application/json: + schema: + type: object + properties: + assignedSurveys: + type: array + items: + "$ref": "#/components/schemas/AssignedSurvey" + required: + - assignedSurveys + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/events/{studyKey}/custom": + post: + tags: + - events + summary: Trigger a custom study event + security: + - BearerAuth: [] + operationId: customStudyEvent + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + eventKey: + type: string + profileID: + type: string + payload: + type: object + additionalProperties: true + required: + - eventKey + - profileID + responses: + '200': + description: Assigned surveys returned + content: + application/json: + schema: + type: object + properties: + assignedSurveys: + type: array + items: + "$ref": "#/components/schemas/AssignedSurvey" + required: + - assignedSurveys + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/events/{studyKey}/submit": + post: + tags: + - events + summary: Submit survey response + security: + - BearerAuth: [] + operationId: submitSurveyEvent + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + profileID: + type: string + response: + type: object + description: SurveyResponse + additionalProperties: true + required: + - profileID + - response + responses: + '200': + description: Assigned surveys returned + content: + application/json: + schema: + type: object + properties: + assignedSurveys: + type: array + items: + "$ref": "#/components/schemas/AssignedSurvey" + required: + - assignedSurveys + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/events/{studyKey}/leave": + post: + tags: + - events + summary: Leave a study + security: + - BearerAuth: [] + operationId: leaveStudyEvent + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + profileID: + type: string + required: + - profileID + responses: + '200': + description: Assigned surveys returned + content: + application/json: + schema: + type: object + properties: + assignedSurveys: + type: array + items: + "$ref": "#/components/schemas/AssignedSurvey" + required: + - assignedSurveys + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/events/{studyKey}/merge-temporary-participant": + post: + tags: + - events + summary: Merge temporary participant into user profile + security: + - BearerAuth: [] + operationId: mergeTempParticipant + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + profileID: + type: string + temporaryParticipantID: + type: string + required: + - profileID + - temporaryParticipantID + responses: + '200': + description: Assigned surveys of participant returned + content: + application/json: + schema: + type: object + properties: + assignedSurveys: + type: array + items: + "$ref": "#/components/schemas/AssignedSurvey" + required: + - assignedSurveys + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/events/{studyKey}/merge-virtual-participant": + post: + tags: + - events + summary: Merge a virtual participant into user profile by linking code + security: + - BearerAuth: [] + operationId: mergeVirtualParticipant + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + profileID: + type: string + virtualParticipantID: + type: string + linkingCodeKey: + type: string + linkingCodeValue: + type: string + required: + - profileID + - virtualParticipantID + - linkingCodeKey + - linkingCodeValue + additionalProperties: false + responses: + '200': + description: Assigned surveys of merged participant returned + content: + application/json: + schema: + type: object + properties: + assignedSurveys: + type: array + items: + "$ref": "#/components/schemas/AssignedSurvey" + required: + - assignedSurveys + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/participant-data/{studyKey}/surveys": + get: + tags: + - participant-data + summary: Get assigned surveys for profiles + security: + - BearerAuth: [] + operationId: getAssignedSurveys + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: pids + in: query + required: true + description: Comma-separated profile IDs + schema: + type: string + responses: + '200': + description: Assigned surveys with survey infos returned + content: + application/json: + schema: + "$ref": "#/components/schemas/AssignedSurveysWithInfos" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/participant-data/{studyKey}/survey/{surveyKey}": + get: + tags: + - participant-data + summary: Get a specific survey with context + security: + - BearerAuth: [] + operationId: getSurveyWithContext + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: surveyKey + in: path + required: true + schema: + type: string + - name: pid + in: query + required: true + description: Profile ID + schema: + type: string + responses: + '200': + description: Survey with context returned + content: + application/json: + schema: + type: object + properties: + surveyWithContext: + "$ref": "#/components/schemas/AssignedSurveyWithContext" + required: + - surveyWithContext + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/participant-data/{studyKey}/participant-state": + get: + tags: + - participant-data + summary: Get participant state + security: + - BearerAuth: [] + operationId: getParticipantState + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: pid + in: query + required: true + description: Profile ID + schema: + type: string + responses: + '200': + description: Participant state returned + content: + application/json: + schema: + type: object + properties: + participant: + "$ref": "#/components/schemas/Participant" + required: + - participant + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/participant-data/{studyKey}/linking-code": + get: + tags: + - participant-data + summary: Get a linking code by key + security: + - BearerAuth: [] + operationId: getLinkingCode + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: pid + in: query + required: true + description: Profile ID + schema: + type: string + - name: key + in: query + required: true + description: Key for linking code + schema: + type: string + responses: + '200': + description: Linking code returned + content: + application/json: + schema: + type: object + properties: + linkingCode: + type: string + required: + - linkingCode + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/participant-data/{studyKey}/responses": + get: + tags: + - participant-data + summary: Get survey responses for a profile + security: + - BearerAuth: [] + operationId: getStudyResponsesForProfile + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: pid + in: query + required: false + description: Profile ID + schema: + type: string + - name: surveyKey + in: query + required: false + schema: + type: string + - name: page + in: query + description: page number (starting from 1) + schema: + type: integer + minimum: 1 + default: 1 + - name: limit + in: query + description: maximum number of responses per page + schema: + type: integer + minimum: 1 + default: 10 + - name: filter + in: query + description: bson.M object to filter responses + schema: + type: object + additionalProperties: + type: object + - name: sort + in: query + description: bson.M object to sort responses + schema: + type: object + additionalProperties: + type: object + - name: shortKeys + in: query + description: whether to return short keys for responses + schema: + type: boolean + default: false + - name: questionOptionSep + in: query + description: character used to seperate slot keys in response + schema: + type: string + default: "-" + - name: format + in: query + description: format for survey responses + schema: + type: string + default: wide + enum: + - wide + - long + - json + - name: extraContextColumns + in: query + description: comma-separated list of extra context columns to include in the + response + schema: + type: string + responses: + '200': + description: Responses returned + content: + application/json: + schema: + type: object + properties: + responses: + type: array + items: + type: object + description: Responses + additionalProperties: + type: object + pagination: + "$ref": "#/components/schemas/PaginationInfos" + required: + - responses + - pagination + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/participant-data/{studyKey}/confidential-response": + get: + tags: + - participant-data + summary: Get confidential responses by key + security: + - BearerAuth: [] + operationId: getConfidentialResponse + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: pid + in: query + required: true + description: Profile ID + schema: + type: string + - name: key + in: query + required: true + description: Key for confidential responses + schema: + type: string + responses: + '200': + description: Confidential responses returned + content: + application/json: + schema: + type: object + properties: + confidentialResponse: + type: array + items: + type: object + description: Confidential survey response export entry + additionalProperties: true + required: + - confidentialResponse + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/participant-data/{studyKey}/submission-history": + get: + tags: + - participant-data + summary: Get submission history for profiles + security: + - BearerAuth: [] + operationId: getSubmissionHistory + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: pids + in: query + required: true + description: Comma-separated profile IDs + schema: + type: string + - name: limit + in: query + required: false + description: Maximum number of submissions per page + schema: + type: integer + default: 100 + minimum: 1 + responses: + '200': + description: Submission history returned + content: + application/json: + schema: + type: object + properties: + submissionHistory: + "$ref": "#/components/schemas/SubmissionHistory" + required: + - submissionHistory + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/participant-data/{studyKey}/reports": + get: + tags: + - participant-data + summary: Get reports for a profile + security: + - BearerAuth: [] + operationId: getReports + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: pid + in: query + required: true + description: Profile ID + schema: + type: string + - name: page + in: query + description: page number (starting from 1) + schema: + type: integer + minimum: 1 + default: 1 + - name: limit + in: query + description: maximum number of reports per page + schema: + type: integer + minimum: 1 + default: 10 + - name: filter + in: query + description: bson.M object to filter reports + schema: + type: object + additionalProperties: + type: object + responses: + '200': + description: Reports returned + content: + application/json: + schema: + type: object + properties: + reports: + type: array + items: + "$ref": "#/components/schemas/Report" + pagination: + "$ref": "#/components/schemas/PaginationInfos" + required: + - reports + - pagination + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/temp-participant/register": + post: + tags: + - events + summary: Register a temporary participant + operationId: registerTempParticipant + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + instanceId: + type: string + studyKey: + type: string + required: + - instanceId + - studyKey + responses: + '200': + description: Temporary participant returned + content: + application/json: + schema: + type: object + properties: + participant: + "$ref": "#/components/schemas/Participant" + required: + - participant + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/temp-participant/surveys": + get: + tags: + - participant-data + summary: Get assigned surveys for a temporary participant + operationId: getTempParticipantSurveys + parameters: + - name: instanceID + in: query + required: true + schema: + type: string + - name: studyKey + in: query + required: true + schema: + type: string + - name: pid + in: query + required: true + description: Profile ID + schema: + type: string + responses: + '200': + description: Assigned surveys with survey infos returned + content: + application/json: + schema: + "$ref": "#/components/schemas/AssignedSurveysWithInfos" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/temp-participant/survey": + get: + tags: + - participant-data + summary: Get a survey with context for a temporary participant + operationId: getTempParticipantSurveyWithContext + parameters: + - name: instanceID + in: query + required: true + schema: + type: string + - name: studyKey + in: query + required: true + schema: + type: string + - name: surveyKey + in: query + required: true + schema: + type: string + - name: pid + in: query + required: false + description: Profile ID + schema: + type: string + responses: + '200': + description: Survey with context returned + content: + application/json: + schema: + type: object + properties: + surveyWithContext: + "$ref": "#/components/schemas/AssignedSurveyWithContext" + required: + - surveyWithContext + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/temp-participant/submit-response": + post: + tags: + - events + summary: Submit a survey response for a temporary participant + operationId: submitTempParticipantResponse + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + instanceId: + type: string + studyKey: + type: string + pid: + type: string + response: + type: object + additionalProperties: true + required: + - instanceId + - studyKey + - pid + - response + responses: + '200': + description: Assigned surveys returned + content: + application/json: + schema: + type: object + properties: + assignedSurveys: + type: array + items: + "$ref": "#/components/schemas/AssignedSurvey" + required: + - assignedSurveys + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/virtual-participants/{studyKey}/": + get: + tags: + - participant-data + summary: Get virtual participants by linking code + security: + - BearerAuth: [] + operationId: getVirtualParticipantsByLinkingCode + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: key + in: query + required: true + description: Linking code key + schema: + type: string + - name: value + in: query + required: true + description: Linking code value + schema: + type: string + responses: + '200': + description: Participants returned + content: + application/json: + schema: + type: object + properties: + participants: + type: array + items: + "$ref": "#/components/schemas/Participant" + required: + - participants + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/participant-data/{studyKey}/files": + post: + tags: + - participant-data + summary: Upload participant file + security: + - BearerAuth: [] + operationId: uploadParticipantFile + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + multipart/form-data: + schema: + type: object + properties: + profileID: + type: string + description: ID of the profile + file: + type: string + format: binary + description: File to upload. Only 'image/jpeg' and 'image/png' are + allowed. + required: + - profileID + - file + responses: + '200': + description: File uploaded + content: + application/json: + schema: + type: object + properties: + id: + type: string + description: object ID of the uploaded file + path: + type: string + status: + type: string + const: ready + required: + - id + - path + - status + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '403': + "$ref": "#/components/responses/Error403" + '500': + "$ref": "#/components/responses/Error500" + get: + tags: + - participant-data + summary: List participant files + security: + - BearerAuth: [] + operationId: listParticipantFiles + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: pid + in: query + required: true + description: Profile ID + schema: + type: string + - name: page + in: query + description: page number (starting from 1) + schema: + type: integer + minimum: 1 + default: 1 + - name: limit + in: query + description: maximum number of files per page + schema: + type: integer + minimum: 1 + default: 10 + responses: + '200': + description: Files returned + content: + application/json: + schema: + type: object + properties: + fileInfos: + type: array + items: + "$ref": "#/components/schemas/FileInfo" + pagination: + "$ref": "#/components/schemas/PaginationInfos" + required: + - fileInfos + - pagination + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/study-service/participant-data/{studyKey}/files/{fileID}": + get: + tags: + - participant-data + summary: Download participant file + security: + - BearerAuth: [] + operationId: getParticipantFile + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: fileID + in: path + required: true + schema: + type: string + - name: pid + in: query + required: true + description: Profile ID + schema: + type: string + responses: + '200': + description: File + content: + application/octet-stream: + schema: + type: string + format: binary + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '404': + "$ref": "#/components/responses/Error404" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - participant-data + summary: Delete participant file + security: + - BearerAuth: [] + operationId: deleteParticipantFile + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: fileID + in: path + required: true + schema: + type: string + - name: pid + in: query + required: true + description: Profile ID + schema: + type: string + responses: + '200': + description: Deleted + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '404': + "$ref": "#/components/responses/Error404" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user/": + get: + tags: + - user + summary: Get current user + security: + - BearerAuth: [] + operationId: getUser + responses: + '200': + description: User returned + content: + application/json: + schema: + type: object + properties: + user: + "$ref": "#/components/schemas/User" + required: + - user + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + delete: + tags: + - user + summary: Delete current user + security: + - BearerAuth: [] + operationId: deleteUser + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + exitSurveyResponse: + type: object + additionalProperties: true + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user/preferred-language": + put: + summary: Update the account's preferred language + tags: + - user + security: + - BearerAuth: [] + operationId: updatePreferredLanguage + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + newLocale: + type: string + description: language code, e.g., en, de-DE + required: + - newLocale + additionalProperties: false + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user/profiles": + post: + tags: + - user + summary: Add new profile + security: + - BearerAuth: [] + operationId: addProfile + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + profile: + "$ref": "#/components/schemas/Profile" + required: + - profile + responses: + '200': + description: Profile added + content: + application/json: + schema: + type: object + properties: + profile: + "$ref": "#/components/schemas/Profile" + required: + - profile + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + put: + tags: + - user + summary: Update profile + security: + - BearerAuth: [] + operationId: updateProfile + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + profile: + "$ref": "#/components/schemas/Profile" + required: + - profile + responses: + '200': + description: Profile updated + content: + application/json: + schema: + type: object + properties: + profile: + "$ref": "#/components/schemas/Profile" + required: + - profile + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user/profiles/remove": + post: + tags: + - user + summary: Remove a profile + security: + - BearerAuth: [] + operationId: removeProfile + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + profileId: + type: string + exitSurveyResponse: + type: object + additionalProperties: true + required: + - profileId + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user/password": + post: + tags: + - user + summary: Change password + security: + - BearerAuth: [] + operationId: changePassword + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + oldPassword: + type: string + newPassword: + type: string + required: + - oldPassword + - newPassword + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user/change-account-email": + post: + tags: + - user + summary: Change account email + security: + - BearerAuth: [] + operationId: changeAccountEmail + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + email: + type: string + format: email + password: + type: string + required: + - email + - password + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user/change-phone-number": + post: + tags: + - user + summary: Change phone number + security: + - BearerAuth: [] + operationId: changePhoneNumber + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + newPhoneNumber: + type: string + password: + type: string + required: + - newPhoneNumber + - password + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '429': + "$ref": "#/components/responses/Error429" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user/request-phone-number-verification": + get: + tags: + - user + summary: Request phone number verification code via SMS + security: + - BearerAuth: [] + operationId: requestPhoneNumberVerification + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '429': + "$ref": "#/components/responses/Error429" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user/attributes": + get: + tags: + - user + summary: Get user attributes + security: + - BearerAuth: [] + operationId: getUserAttributes + responses: + '200': + description: Attributes returned + content: + application/json: + schema: + type: object + properties: + attributes: + type: array + items: + "$ref": "#/components/schemas/UserAttributes" + required: + - attributes + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + post: + tags: + - user + summary: Create or update a user attribute + security: + - BearerAuth: [] + operationId: setUserAttribute + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + type: + type: string + attributes: + type: object + additionalProperties: true + required: + - type + - attributes + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user/attributes/{attributeID}": + delete: + tags: + - user + summary: Delete a user attribute + security: + - BearerAuth: [] + operationId: deleteUserAttribute + parameters: + - name: attributeID + in: path + required: true + schema: + type: string + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/user/contact-preferences": + put: + tags: + - user + summary: Update contact preferences + description: Update the user's newsletter and weekly subscription preferences. + security: + - BearerAuth: [] + operationId: updateContactPreferences + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + subscribedToNewsletter: + type: boolean + toggleWeeklySubscription: + type: boolean + required: + - subscribedToNewsletter + - toggleWeeklySubscription + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" + "/v1/unsubscribe-newsletter": + post: + tags: + - misc + summary: Unsubscribe user from newsletter (via token) + operationId: unsubscribeNewsletter + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + token: + type: string + required: + - token + responses: + '200': + "$ref": "#/components/responses/MessageOk" + '400': + "$ref": "#/components/responses/Error400" + '500': + "$ref": "#/components/responses/Error500" +components: + securitySchemes: + BearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + responses: + MessageOk: + description: Generic OK message + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + Error400: + description: Bad request + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + Error401: + description: Unauthorized + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + Error403: + description: Forbidden + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + Error404: + description: Not Found + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + Error429: + description: Too many requests + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + Error500: + description: Internal Server Error + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + schemas: + HealthStatus: + type: object + properties: + status: + type: string + required: + - status + additionalProperties: false + Message: + type: object + properties: + message: + type: string + required: + - message + additionalProperties: false + Error: + type: object + properties: + error: + type: string + required: + - error + additionalProperties: false + TokenEnvelope: + type: object + properties: + accessToken: + type: string + refreshToken: + type: string + expiresIn: + type: number + selectedProfile: + type: string + required: + - accessToken + - refreshToken + - expiresIn + - selectedProfile + additionalProperties: false + TokenEnvelopeWithLastOTP: + type: object + properties: + accessToken: + type: string + refreshToken: + type: string + expiresIn: + type: number + selectedProfile: + type: string + lastOTP: + type: object + additionalProperties: + type: integer + required: + - accessToken + - refreshToken + - expiresIn + - selectedProfile + - lastOTP + additionalProperties: false + AssignedSurvey: + type: object + description: Assigned survey object + additionalProperties: true + AssignedSurveysWithInfos: + type: object + description: Assigned surveys object with survey infos + properties: + surveys: + type: array + items: + type: object + additionalProperties: true + surveyInfos: + type: array + items: + type: object + additionalProperties: true + required: + - surveys + - surveyInfos + additionalProperties: false + AssignedSurveyWithContext: + type: object + description: Assigned survey object with optional context and prefill survey + response + properties: + survey: + type: object + additionalProperties: true + context: + type: object + additionalProperties: true + prefill: + type: object + additionalProperties: true + required: + - survey + additionalProperties: false + FileInfo: + type: object + properties: + id: + type: string + description: ObjectID + participantID: + type: string + status: + type: string + uploadedBy: + type: string + path: + type: string + previewPath: + type: string + submittedAt: + type: integer + createdAt: + type: string + format: date-time + updatedAt: + type: string + format: date-time + fileType: + type: string + visibleToParticipant: + type: boolean + size: + type: integer + required: + - id + - participantID + - path + additionalProperties: false + description: File Info object + PaginationInfos: + type: object + description: Pagination information + properties: + totalCount: + type: integer + currentPage: + type: integer + totalPages: + type: integer + pageSize: + type: integer + additionalProperties: false + SubmissionHistory: + type: object + description: Submission history + additionalProperties: true + Report: + type: object + description: Report object + properties: + id: + type: string + description: MongoDB ObjectID as hex string + key: + type: string + participantID: + type: string + responseID: + type: string + timestamp: + type: integer + description: Unix timestamp + modifiedAt: + type: string + format: date-time + data: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + dtype: + type: string + enum: + - date + - float + - int + - string + - rawMessage + - keyList + additionalProperties: false + required: + - key + - participantID + - timestamp + additionalProperties: false + Participant: + type: object + description: Participant defines the datamodel for current state of the participant + in a study as stored in the database + additionalProperties: true + User: + type: object + description: User object + additionalProperties: true + Profile: + type: object + description: User profile object + additionalProperties: true + UserAttributes: + type: object + description: User attributes object + additionalProperties: true + StudyInfo: + type: object + properties: + key: + type: string + status: + type: string + props: + type: object + additionalProperties: true + stats: + type: object + additionalProperties: true + profileIds: + type: array + items: + type: string + description: ProfileIDs only required in study info objects related to participants + required: + - key + - status + - props + - stats + - profileIds + additionalProperties: false + StudyVariables: + type: object + properties: + id: + type: string + description: MongoDB ObjectID + example: 64e4b2f2c2a4e2b1a1c2d3e4 + createdAt: + type: string + format: date-time + configUpdatedAt: + type: string + format: date-time + valueUpdatedAt: + type: string + format: date-time + studyKey: + type: string + key: + type: string + value: + description: Value of the study variable, type depends on 'type' + oneOf: + - type: string + - type: integer + - type: number + format: float + - type: boolean + - type: string + format: date-time + type: + type: string + enum: + - string + - int + - float + - boolean + - date + label: + type: string + description: + type: string + uiType: + type: string + uiPriority: + type: integer + configs: + type: object + additionalProperties: true + required: + - createdAt + - configUpdatedAt + - valueUpdatedAt + - studyKey + - key + - value + - type +tags: +- name: auth + description: Authentication endpoints +- name: password + description: Password endpoints +- name: events + description: Study service events endpoints +- name: participant-data + description: Endpoints getting participant data in study service +- name: studies + description: Endpoints getting study data in study service +- name: user + description: User endpoints +- name: misc + description: Miscellaneous diff --git a/openapi/smtp-bridge.yaml b/openapi/smtp-bridge.yaml new file mode 100644 index 0000000..861dc97 --- /dev/null +++ b/openapi/smtp-bridge.yaml @@ -0,0 +1,162 @@ +--- +openapi: 3.1.0 +info: + title: SMTP Bridge API + version: 1.0.0 + description: Simple bridge for sending emails via configured SMTP servers. +tags: +- name: default + description: Default operations for SMTP Bridge API +paths: + "/": + get: + tags: + - default + summary: Health check + operationId: getHealth + responses: + '200': + description: Service is healthy + content: + application/json: + schema: + "$ref": "#/components/schemas/HealthStatus" + examples: + ok: + value: + status: ok + "/send-email": + post: + tags: + - default + summary: Send an email + operationId: sendEmail + security: + - BearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + "$ref": "#/components/schemas/SendEmailRequest" + examples: + basic: + value: + to: + - user@example.com + subject: Hello + content: "

    Hi there

    " + highPrio: false + withHeaderOverrides: + value: + to: + - user@example.com + subject: Important + content: Text body + highPrio: true + headerOverrides: + from: '"System Notifications" ' + sender: system@example.com + replyTo: + - support@example.com + noReplyTo: false + responses: + '200': + description: Email accepted for sending + content: + application/json: + schema: + "$ref": "#/components/schemas/SuccessMessage" + examples: + sent: + value: + message: email sent + '400': + description: Bad request + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + examples: + missingApiKey: + value: + error: A valid API key missing + missingTo: + value: + error: missing 'to' field + '500': + description: Failed to send after retries + content: + application/json: + schema: + "$ref": "#/components/schemas/Error" + examples: + sendFailed: + value: + error: failed to send email +components: + securitySchemes: + BearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + schemas: + HealthStatus: + type: object + properties: + status: + type: string + required: + - status + additionalProperties: false + SuccessMessage: + type: object + properties: + message: + type: string + required: + - message + additionalProperties: false + Error: + type: object + properties: + error: + type: string + required: + - error + additionalProperties: false + HeaderOverrides: + type: object + properties: + from: + type: string + sender: + type: string + replyTo: + type: array + items: + type: string + format: email + noReplyTo: + type: boolean + additionalProperties: false + SendEmailRequest: + type: object + properties: + to: + type: array + items: + type: string + format: email + minItems: 1 + subject: + type: string + content: + type: string + highPrio: + type: boolean + headerOverrides: + "$ref": "#/components/schemas/HeaderOverrides" + required: + - to + additionalProperties: false From b395b8643005045af86590e50af3327373a677e8 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Fri, 19 Jun 2026 08:16:45 +0200 Subject: [PATCH 11/21] Restructure survey und study rules editor sections: remove subfolder basics --- app/(home)/page.tsx | 4 ++-- .../docs/study-rules-editor/basics/meta.json | 6 ----- .../{basics => }/editor-overview.mdx | 12 +++++----- .../guide/entry-handler.mdx | 2 +- content/docs/study-rules-editor/meta.json | 7 +++++- .../{basics => }/study-rules.mdx | 0 content/docs/survey-editor/basics/meta.json | 7 ------ .../survey-editor/{basics => }/conditions.mdx | 0 .../{basics => }/editor-overview.mdx | 22 +++++++++---------- .../guides/add-conditional-question.mdx | 4 ++-- .../guides/add-date-constraints.mdx | 4 ++-- .../guides/add-single-choice.mdx | 6 ++--- .../docs/survey-editor/guides/edit-survey.mdx | 2 +- .../survey-editor/guides/setup-survey.mdx | 4 ++-- .../{basics => }/item-structure.mdx | 6 ++--- content/docs/survey-editor/meta.json | 8 ++++++- 16 files changed, 46 insertions(+), 48 deletions(-) delete mode 100644 content/docs/study-rules-editor/basics/meta.json rename content/docs/study-rules-editor/{basics => }/editor-overview.mdx (95%) rename content/docs/study-rules-editor/{basics => }/study-rules.mdx (100%) delete mode 100644 content/docs/survey-editor/basics/meta.json rename content/docs/survey-editor/{basics => }/conditions.mdx (100%) rename content/docs/survey-editor/{basics => }/editor-overview.mdx (87%) rename content/docs/survey-editor/{basics => }/item-structure.mdx (94%) diff --git a/app/(home)/page.tsx b/app/(home)/page.tsx index 75b78f1..2381577 100644 --- a/app/(home)/page.tsx +++ b/app/(home)/page.tsx @@ -19,7 +19,7 @@ export default function HomePage() {

    User Guides

    } @@ -33,7 +33,7 @@ export default function HomePage() { className="[&_div:has(svg)]:shadow" /> } diff --git a/content/docs/study-rules-editor/basics/meta.json b/content/docs/study-rules-editor/basics/meta.json deleted file mode 100644 index e289380..0000000 --- a/content/docs/study-rules-editor/basics/meta.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "pages": [ - "editor-overview", - "study-rules" - ] -} \ No newline at end of file diff --git a/content/docs/study-rules-editor/basics/editor-overview.mdx b/content/docs/study-rules-editor/editor-overview.mdx similarity index 95% rename from content/docs/study-rules-editor/basics/editor-overview.mdx rename to content/docs/study-rules-editor/editor-overview.mdx index 747493e..26d319a 100644 --- a/content/docs/study-rules-editor/basics/editor-overview.mdx +++ b/content/docs/study-rules-editor/editor-overview.mdx @@ -1,6 +1,6 @@ --- -title: Study Rules Editor -description: Overview of the study rules editor interface +title: Editor Overview +description: Main areas, navigation, and workflow for configuring study rules --- ## Introduction @@ -15,14 +15,14 @@ description: Overview of the study rules editor interface The **Study Rules Editor** is a graphical interface that allows you to create and manage these rules. It provides tools to define event handlers, configure contexts, and automate study workflows and participant management. -![Overview of study rules dashboard](../images/dashboardOverview.png) +![Overview of study rules dashboard](./images/dashboardOverview.png) ### Top Navigation Bar - **"Project"**: Click here to open an existing project, save your project or export the study rules. - **"Context"**: The editor context provides access to study and message keys, participant flags, reports and external event handlers that can be referenced in your rules. -You can import a context from a recent session or [create a new one](/docs/study-rules-editor/basics/editor-overview#context-editor) via the **"Open Context Editor"** button. +You can import a context from a recent session or [create a new one](/docs/study-rules-editor/editor-overview#context-editor) via the **"Open Context Editor"** button. ### General @@ -102,7 +102,7 @@ Rules defined here are applied **when a participant leaves the study** (e.g., wh The **Context Editor** is a configuration interface within the **Study Rules Editor**. It allows you to define the keys and identifiers that are used in **event handlers**, **conditions**, and **actions** throughout your study logic. These definitions ensure that all references to surveys, messages, flags, and other elements are valid and consistent. -![Overview of context editor](../images/contextEditor.png) +![Overview of context editor](./images/contextEditor.png) ### How to Access the Context Editor @@ -179,4 +179,4 @@ Send data to external systems or trigger external workflows. --- -For a complete list of available expressions and actions you can use in your study rules, see the [Methods of the study engine](/docs/study-rules-editor/basics/study-rules). +For a complete list of available expressions and actions you can use in your study rules, see the [Methods of the study engine](/docs/study-rules-editor/study-rules). diff --git a/content/docs/study-rules-editor/guide/entry-handler.mdx b/content/docs/study-rules-editor/guide/entry-handler.mdx index 2b536e8..626a69a 100644 --- a/content/docs/study-rules-editor/guide/entry-handler.mdx +++ b/content/docs/study-rules-editor/guide/entry-handler.mdx @@ -8,7 +8,7 @@ This example shows how to configure actions that are executed automatically when We’ll use the case where a **welcome message** is sent, the **intake survey** is assigned, and a **reminder message** for submitting the intake survey is scheduled. ## Prerequisite -Before you can configure ENTRY actions, make sure the Survey keys and Message keys are already defined in the [Survey context](/docs/study-rules-editor/basics/editor-overview#context-editor). +Before you can configure ENTRY actions, make sure the Survey keys and Message keys are already defined in the [Survey context](/docs/study-rules-editor/editor-overview#context-editor). Needed for this example: - Survey keys: `intake` diff --git a/content/docs/study-rules-editor/meta.json b/content/docs/study-rules-editor/meta.json index f368952..a3982ee 100644 --- a/content/docs/study-rules-editor/meta.json +++ b/content/docs/study-rules-editor/meta.json @@ -2,5 +2,10 @@ "title": "Study Rules Editor", "description": "Documentation for using the graphical study rules editor", "root": true, - "icon": "GitFork" + "icon": "GitFork", + "pages": [ + "editor-overview", + "study-rules", + "guide" + ] } \ No newline at end of file diff --git a/content/docs/study-rules-editor/basics/study-rules.mdx b/content/docs/study-rules-editor/study-rules.mdx similarity index 100% rename from content/docs/study-rules-editor/basics/study-rules.mdx rename to content/docs/study-rules-editor/study-rules.mdx diff --git a/content/docs/survey-editor/basics/meta.json b/content/docs/survey-editor/basics/meta.json deleted file mode 100644 index 9fd6c82..0000000 --- a/content/docs/survey-editor/basics/meta.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "pages": [ - "editor-overview", - "item-structure", - "conditions" - ] -} \ No newline at end of file diff --git a/content/docs/survey-editor/basics/conditions.mdx b/content/docs/survey-editor/conditions.mdx similarity index 100% rename from content/docs/survey-editor/basics/conditions.mdx rename to content/docs/survey-editor/conditions.mdx diff --git a/content/docs/survey-editor/basics/editor-overview.mdx b/content/docs/survey-editor/editor-overview.mdx similarity index 87% rename from content/docs/survey-editor/basics/editor-overview.mdx rename to content/docs/survey-editor/editor-overview.mdx index 03489ae..df111eb 100644 --- a/content/docs/survey-editor/basics/editor-overview.mdx +++ b/content/docs/survey-editor/editor-overview.mdx @@ -1,18 +1,18 @@ --- -title: Survey Editor Overview -description: Overview of the survey editor interface +title: Editor Overview +description: Main areas, navigation, and workflow for building surveys --- ## Survey Editor Dashboard -![Screenshot of survey editor dashboard](../images/dashboardEditor.png) +![Screenshot of survey editor dashboard](./images/dashboardEditor.png) This dashboard shows you the key content and structure of your survey. ### Top Navigation Bar - **Survey Editor**: displays the currently open editor. - **File**: Click here to generate a new survey, open an existing survey, save survey to disk or exit survey editor. -- **View**: Click here to go to [Survey Properties](/docs/survey-editor/basics/editor-overview#survey-properties-workspace) section or Survey Simulator. +- **View**: Click here to go to [Survey Properties](/docs/survey-editor/editor-overview#survey-properties-workspace) section or Survey Simulator. - **Survey Name:** Top left shows the unique key name of the current survey. Click on it to change its root key name. - **Survey label**: Top center displays the survey label. You can rename the survey label by clicking on it. - **Color Selector**: Click here to change the theme color of the survey. @@ -24,18 +24,18 @@ This dashboard shows you the key content and structure of your survey. ### Survey Item List -- **Items**: This section lists all the [items](/docs/survey-editor/basics/item-structure#survey-items) of the survey. Each item has: +- **Items**: This section lists all the [items](/docs/survey-editor/item-structure#survey-items) of the survey. Each item has: - an icon symbolizing the type of question (e.g. checkmark in circle for single choice question) - an unique **Item Key** (e.g., `SCG1`). - an optional **Label** text (e.g., `Single Choice Question`). -- Open the [item interface](/docs/survey-editor/basics/item-structure#item-interface) by clicking on the item or its icon shown in the left bar. +- Open the [item interface](/docs/survey-editor/item-structure#item-interface) by clicking on the item or its icon shown in the left bar. - New items can be added by - Click on **+ Add new item** at the bottom of the item list - Click on **+** in the left sidebar. - Items can be ordered by - drag and drop them in the item list or left sidebar or - toggle the switch `Use random ordering` in the **Item ordering** section to random order items when the survey runs. -- **Condition tab**: Switch to this tab to define [conditional logic](/docs/survey-editor/basics/conditions#conditions-and-expressions) that controls when items should be shown based on participant responses. +- **Condition tab**: Switch to this tab to define [conditional logic](/docs/survey-editor/conditions#conditions-and-expressions) that controls when items should be shown based on participant responses. --- @@ -44,7 +44,7 @@ This dashboard shows you the key content and structure of your survey. The **Survey Properties** workspace allows you to define and manage overall configuration and behavior of your survey. Click on **View** dropdown menu and select **Survey Properties** to open this section (shortcut **⌘ Cmd + 1**). -![Screenshot of survey properties workspace basic information](../images/surveyPropertiesBasic.png) +![Screenshot of survey properties workspace basic information](./images/surveyPropertiesBasic.png) ### Overview of Functions @@ -62,7 +62,7 @@ Click on **View** dropdown menu and select **Survey Properties** to open this se Use the language toggle to view and edit content in different languages. This helps manage multilingual surveys efficiently. -![Screenshot of survey properties workspace access conditions](../images/surveyPropertiesAccess.png) +![Screenshot of survey properties workspace access conditions](./images/surveyPropertiesAccess.png) - **Access Conditions** Configure who is allowed to access and complete the survey. @@ -75,7 +75,7 @@ Click on **View** dropdown menu and select **Survey Properties** to open this se - **Submission requires Login** Enable this toggle if participants must be logged in to submit their responses. If disabled, anyone with access to the survey can submit a response. -![Screenshot of survey properties workspace max items per page](../images/surveyPropertiesMaxItems.png) +![Screenshot of survey properties workspace max items per page](./images/surveyPropertiesMaxItems.png) - **Max Items per Page** Set the maximum number of question or content items that should appear on a single survey page for small and large screens. @@ -90,7 +90,7 @@ The simulator allows you to preview and test your survey questions under differe Below are the key components visible in the interface: -![Screenshot of survey simulator](../images/surveySimulator.png) +![Screenshot of survey simulator](./images/surveySimulator.png) ### Survey Items diff --git a/content/docs/survey-editor/guides/add-conditional-question.mdx b/content/docs/survey-editor/guides/add-conditional-question.mdx index 44e65c5..1091283 100644 --- a/content/docs/survey-editor/guides/add-conditional-question.mdx +++ b/content/docs/survey-editor/guides/add-conditional-question.mdx @@ -22,7 +22,7 @@ Select the option **"Question or Info item"**. Select the option **"Consent"**. The consent item is now shown in your item list. Click on the item to see the content item interface. -Select the component you would like to edit by clicking on it (Read more about [item components](/docs/survey-editor/basics/item-structure#survey-items)). +Select the component you would like to edit by clicking on it (Read more about [item components](/docs/survey-editor/item-structure#survey-items)). Write your title text e.g. *"Consent to Data Storage"* in the text field of the title component. Go back to consent item interface. @@ -126,6 +126,6 @@ In the dropdown menu, scroll to the Templates section and select **“Consent qu ![Condition interface with consent condition template](../images/addContact3.png) - A response slot key is not required. Use the survey [simulator](/docs/survey-editor/basics/editor-overview#simulator) to verify that the conditional logic works as expected. + A response slot key is not required. Use the survey [simulator](/docs/survey-editor/editor-overview#simulator) to verify that the conditional logic works as expected. diff --git a/content/docs/survey-editor/guides/add-date-constraints.mdx b/content/docs/survey-editor/guides/add-date-constraints.mdx index a64c5ee..b968b94 100644 --- a/content/docs/survey-editor/guides/add-date-constraints.mdx +++ b/content/docs/survey-editor/guides/add-date-constraints.mdx @@ -17,7 +17,7 @@ Create a date question by clicking the plus icon in the left toolbar or the **"A Select the option **"Date Input"**. The date item is now shown in your item list. Click on the item to see its interface. -Select the component you would like to edit by clicking on it (Read more about [item components](/docs/survey-editor/basics/item-structure#survey-items)). +Select the component you would like to edit by clicking on it (Read more about [item components](/docs/survey-editor/item-structure#survey-items)). Write your title text. In our example, the title text is: *"What is your child’s date of birth?"*. @@ -60,7 +60,7 @@ In the **Latest** section, click **+ add value**. Select **"Get timestamp"**. Leave the **Offset** at *0 days*. This restricts the latest possible vaccination date to *today*. -Use the survey [simulator](/docs/survey-editor/basics/editor-overview#simulator) to verify that your constraints are as expected. +Use the survey [simulator](/docs/survey-editor/editor-overview#simulator) to verify that your constraints are as expected. diff --git a/content/docs/survey-editor/guides/add-single-choice.mdx b/content/docs/survey-editor/guides/add-single-choice.mdx index 89f7845..b0860bb 100644 --- a/content/docs/survey-editor/guides/add-single-choice.mdx +++ b/content/docs/survey-editor/guides/add-single-choice.mdx @@ -18,7 +18,7 @@ Select the option **"Single choice"**. The single choice item is now shown in yo -Select the component you would like to edit by clicking on it (Read more about [item components](/docs/survey-editor/basics/item-structure#survey-items)). +Select the component you would like to edit by clicking on it (Read more about [item components](/docs/survey-editor/item-structure#survey-items)). Write your question in the text field of the title component. Add additional information in the text field of the subtitle. Write optional text before or after response options in top and bottom content components. @@ -44,10 +44,10 @@ Select **"With formatted label"** to use rich text (bold, italic, etc.) in label Enter label text of options for different languages by switching the language tabs above the options list. This ensures participants see the options in their selected language. -Define optional [conditions](/docs/survey-editor/basics/conditions) to control whether an option is shown or disabled. Select the option row and click on **"Show more settings"**. Use the **Display** condition to show the option only under certain criteria, and the **Disabled** condition to keep it visible but prevent selection. +Define optional [conditions](/docs/survey-editor/conditions) to control whether an option is shown or disabled. Select the option row and click on **"Show more settings"**. Use the **Display** condition to show the option only under certain criteria, and the **Disabled** condition to keep it visible but prevent selection. -Use the tabs to set optional [conditions](/docs/survey-editor/basics/conditions), validations or advanced settings. +Use the tabs to set optional [conditions](/docs/survey-editor/conditions), validations or advanced settings. View this question in the Survey Simulator by clicking on **"View"** in the top bar and selecting **"Simulator"**. diff --git a/content/docs/survey-editor/guides/edit-survey.mdx b/content/docs/survey-editor/guides/edit-survey.mdx index ca9ed3f..8e3133b 100644 --- a/content/docs/survey-editor/guides/edit-survey.mdx +++ b/content/docs/survey-editor/guides/edit-survey.mdx @@ -29,5 +29,5 @@ A dialog appears where you can either upload a survey file from your computer or ![Screenshot of survey editor welcome menu](../images/welcomeEditor.png) -You are now ready to edit your survey! Learn how to [configure the editor interface](/docs/survey-editor/basics/editor-overview#survey-editor-dashboard) or [save your changes](/docs/survey-editor/guides/save-survey). +You are now ready to edit your survey! Learn how to [configure the editor interface](/docs/survey-editor/editor-overview#survey-editor-dashboard) or [save your changes](/docs/survey-editor/guides/save-survey). diff --git a/content/docs/survey-editor/guides/setup-survey.mdx b/content/docs/survey-editor/guides/setup-survey.mdx index 0a6001d..96a9439 100644 --- a/content/docs/survey-editor/guides/setup-survey.mdx +++ b/content/docs/survey-editor/guides/setup-survey.mdx @@ -28,11 +28,11 @@ Click the **"Create new survey"** button and enter a **survey key**. ![Screenshot of survey editor welcome menu](../images/welcomeEditor.png) -You are now ready to edit your new survey! Learn more about how to configure the editor interface [here](/docs/survey-editor/basics/editor-overview#survey-editor-dashboard). +You are now ready to edit your new survey! Learn more about how to configure the editor interface [here](/docs/survey-editor/editor-overview#survey-editor-dashboard). ![Screenshot of survey editor dashboard](../images/dashboardEditor.png) -4. Click **"View"** and choose **"Survey Properties"** to define your [survey properties](/docs/survey-editor/basics/editor-overview#survey-properties-workspace) e.g. title, language or access conditions. +4. Click **"View"** and choose **"Survey Properties"** to define your [survey properties](/docs/survey-editor/editor-overview#survey-properties-workspace) e.g. title, language or access conditions. diff --git a/content/docs/survey-editor/basics/item-structure.mdx b/content/docs/survey-editor/item-structure.mdx similarity index 94% rename from content/docs/survey-editor/basics/item-structure.mdx rename to content/docs/survey-editor/item-structure.mdx index e838f02..760692a 100644 --- a/content/docs/survey-editor/basics/item-structure.mdx +++ b/content/docs/survey-editor/item-structure.mdx @@ -5,7 +5,7 @@ description: Understanding the structure of survey items ## Survey Items -A survey consists of items. An item can belong to either a question type or a non-question type category. (Read more about [item types](/docs/survey-editor/basics/item-structure#item-types)). +A survey consists of items. An item can belong to either a question type or a non-question type category. (Read more about [item types](/docs/survey-editor/item-structure#item-types)). A question item is structured by the following **components**: @@ -30,7 +30,7 @@ Main content that surrounds the response options: The item editor is displayed when you select an item or its icon in the left sidebar of the main editor. -![Overview of single choice item content](../images/overviewSinglechoice.png) +![Overview of single choice item content](./images/overviewSinglechoice.png) ### Top Navigation Bar @@ -51,7 +51,7 @@ The item editor is displayed when you select an item or its icon in the left sid ### Content Section (Left Side) -All item components described [above](/docs/survey-editor/basics/item-structure#survey-items) are listed here. Select any component by clicking on it to view and edit its settings. +All item components described [above](/docs/survey-editor/item-structure#survey-items) are listed here. Select any component by clicking on it to view and edit its settings. ### Preview Section (Right Side) diff --git a/content/docs/survey-editor/meta.json b/content/docs/survey-editor/meta.json index df098f7..3793f25 100644 --- a/content/docs/survey-editor/meta.json +++ b/content/docs/survey-editor/meta.json @@ -2,5 +2,11 @@ "title": "Survey Editor", "description": "Documentation for using the graphical survey editor", "root": true, - "icon": "PencilRuler" + "icon": "PencilRuler", + "pages": [ + "editor-overview", + "item-structure", + "conditions", + "guides" + ] } \ No newline at end of file From be797a83acc1a536a28ce9a2e91bf2f227587fb4 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Fri, 19 Jun 2026 10:30:42 +0200 Subject: [PATCH 12/21] Remove schemas in index overview, sort endpoint grouping by oder of tag list --- scripts/generate-docs.ts | 129 +++++++++++++++++---------------------- 1 file changed, 55 insertions(+), 74 deletions(-) diff --git a/scripts/generate-docs.ts b/scripts/generate-docs.ts index 7b95702..1138715 100644 --- a/scripts/generate-docs.ts +++ b/scripts/generate-docs.ts @@ -53,50 +53,6 @@ type GeneratedGroupEntry = { type GeneratedEntry = GeneratedLeafEntry | GeneratedGroupEntry; -type OpenAPISchema = { - type?: string; - format?: string; - description?: string; - required?: string[]; - properties?: Record; - additionalProperties?: boolean | Record; - enum?: unknown[]; - items?: unknown; -}; - -function escapeHtml(value: string): string { - return value - .replace(/&/g, '&') - .replace(//g, '>'); -} - -function renderAdditionalProperties(additionalProperties: OpenAPISchema['additionalProperties']): string { - if (additionalProperties === true) return 'yes'; - if (additionalProperties === false) return 'no'; - if (typeof additionalProperties === 'object') return 'schema-defined'; - return '-'; -} - -function renderPropertyRows(schema: OpenAPISchema): string { - const properties = schema.properties ?? {}; - const propertyEntries = Object.entries(properties); - - if (propertyEntries.length === 0) { - return '
  • Properties: -
  • '; - } - - const rows = propertyEntries.map(([name, value]) => { - const property = value as { type?: string; description?: string; format?: string }; - const type = property.type ?? 'object'; - const format = property.format ? ` (${property.format})` : ''; - const description = property.description ? ` - ${property.description}` : ''; - return `
  • ${escapeHtml(name)}: ${escapeHtml(type + format + description)}
  • `; - }); - - return `
  • Properties:
      ${rows.join('')}
  • `; -} - const methodBadgeClass: Record = { GET: 'text-emerald-600', POST: 'text-blue-600', @@ -120,7 +76,16 @@ async function generateForProfile(profile: DocsProfile) { const primarySchema = Object.values(schemas)[0]; const indexTitle = primarySchema?.dereferenced.info?.title ?? 'API'; const indexDescription = primarySchema?.dereferenced.info?.description ?? 'All available pages'; - const schemaMap = (primarySchema?.dereferenced.components?.schemas ?? {}) as Record; + const declaredTags = Array.isArray(primarySchema?.dereferenced.tags) + ? primarySchema.dereferenced.tags + : []; + const tagOrderMap = new Map(); + + declaredTags.forEach((tag, index) => { + if (tag && typeof tag === 'object' && 'name' in tag && typeof (tag as { name?: unknown }).name === 'string') { + tagOrderMap.set((tag as { name: string }).name, index); + } + }); await generateFiles({ per: 'operation', @@ -178,11 +143,27 @@ async function generateForProfile(profile: DocsProfile) { return `${entry.info.title} ${method}} ${description} />`; }; - const groupSections = topEntries.map((entry) => { - if (entry.type !== 'group') { - return ''; - } + const groupedEntries = topEntries + .filter((entry): entry is GeneratedGroupEntry => entry.type === 'group') + .sort((left, right) => { + const leftTag = left.tag?.name ?? ''; + const rightTag = right.tag?.name ?? ''; + const leftOrder = tagOrderMap.get(leftTag); + const rightOrder = tagOrderMap.get(rightTag); + if (leftOrder !== undefined && rightOrder !== undefined) { + return leftOrder - rightOrder; + } + + if (leftOrder !== undefined) return -1; + if (rightOrder !== undefined) return 1; + + const leftTitle = left.info?.title ?? left.tag?.name ?? 'Untagged'; + const rightTitle = right.info?.title ?? right.tag?.name ?? 'Untagged'; + return leftTitle.localeCompare(rightTitle); + }); + + const groupSections = groupedEntries.map((entry) => { const groupTitle = entry.info?.title ?? entry.tag?.name ?? 'Untagged'; const groupDescription = entry.info?.description ? `\n\n${entry.info.description}` @@ -192,6 +173,30 @@ async function generateForProfile(profile: DocsProfile) { return `\n### ${groupTitle}${groupDescription}\n\n\n${cards.join('\n')}\n`; }).filter(Boolean); + const orderedGroupPageIds = groupedEntries + .map((entry) => entry.path ?? entry.tag?.name) + .filter((value): value is string => Boolean(value)); + + const topLevelMetaFile = files.find((file) => file.path === 'meta.json'); + if (topLevelMetaFile) { + try { + const parsed = JSON.parse(topLevelMetaFile.content) as { pages?: unknown }; + const existingPages = Array.isArray(parsed.pages) + ? parsed.pages.filter((value): value is string => typeof value === 'string') + : []; + + const orderedPages = [ + ...orderedGroupPageIds.filter((page) => existingPages.includes(page)), + ...existingPages.filter((page) => !orderedGroupPageIds.includes(page)), + ]; + + parsed.pages = orderedPages; + topLevelMetaFile.content = `${JSON.stringify(parsed, null, 2)}\n`; + } catch { + // keep generated meta as-is when unexpected content shape is encountered + } + } + const ungroupedCards = topEntries .filter((entry): entry is GeneratedLeafEntry => entry.type !== 'group') .map(renderCard); @@ -207,31 +212,7 @@ async function generateForProfile(profile: DocsProfile) { : '', ].filter(Boolean).join('\n\n'); - const schemaBlocks = Object.entries(schemaMap).map(([name, schema]) => { - const description = (schema.description ?? '-') - .replace(/\r?\n/g, ' ') - .trim(); - const required = schema.required?.length ? schema.required.join(', ') : '-'; - const enumValues = schema.enum?.length ? schema.enum.map((item) => JSON.stringify(item)).join(', ') : '-'; - const type = schema.type ?? 'object'; - const format = schema.format ?? '-'; - const additionalProperties = renderAdditionalProperties(schema.additionalProperties); - const itemType = schema.items && typeof schema.items === 'object' - ? ((schema.items as { type?: string }).type ?? 'object') - : '-'; - - const summaryText = description !== '-' - ? `${escapeHtml(name)} - ${escapeHtml(description)}` - : `${escapeHtml(name)}`; - - return `
    \n${summaryText}\n
      \n
    • Type: ${escapeHtml(type)}
    • \n
    • Format: ${escapeHtml(format)}
    • \n
    • Required: ${escapeHtml(required)}
    • \n
    • Enum: ${escapeHtml(enumValues)}
    • \n
    • Array item type: ${escapeHtml(itemType)}
    • \n
    • Additional properties: ${escapeHtml(additionalProperties)}
    • \n${renderPropertyRows(schema)}\n
    \n
    `; - }); - - const schemaSection = schemaBlocks.length > 0 - ? `\n## Schemas\n\nClick a schema to expand details.\n\n${schemaBlocks.join('\n\n')}\n` - : ''; - - indexFile.content = `---\ntitle: ${indexTitle}\ndescription: ${indexDescription}\n---\n\n{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}\n\n${endpointSection}\n${schemaSection}`; + indexFile.content = `---\ntitle: ${indexTitle}\ndescription: ${indexDescription}\n---\n\n{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}\n\n${endpointSection}`; }, }); } From bbf84a5f66020096f5e5040c907a404e88b4374a Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Mon, 22 Jun 2026 09:11:07 +0200 Subject: [PATCH 13/21] Update README with new OpenAPI handling --- README.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 61 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b3dd638..dd92cf1 100644 --- a/README.md +++ b/README.md @@ -36,17 +36,71 @@ Read the [Introduction](https://fumadocs.dev/docs/mdx) for further details. ## For API Documentation -Include the openapi spec file in the `public/openapi` directory. +OpenAPI docs are generated from profiles defined in `scripts/doc-profiles.ts`. -Add a new page with the name `api.mdx` in the `content/tech-docs/[api-name]` directory with the following content: +### 1. Add the OpenAPI spec -```mdx ---- -title: My API -description: My API Description ---- +Place your spec file in the `openapi` directory, for example: + +- `openapi/my-api.yaml` + +### 2. Add or update a docs profile + +In `scripts/doc-profiles.ts`, add a new profile entry: + +```ts +{ + id: 'my-api', + input: './openapi/my-api.yaml', + outputDir: 'content/tech-docs/my-api/api', + baseUrl: '/tech-docs/my-api/api', + groupByTag: true, +} ``` +`groupByTag: true` groups endpoints by OpenAPI tags in the generated docs. + +Current profiles: + +- `management-api` (`openapi/management-api.yaml`, `groupByTag: true`) +- `participant-api` (`openapi/participant-api.yaml`, `groupByTag: true`) +- `smtp-bridge` (`openapi/smtp-bridge.yaml`, `groupByTag: false`) + +### 3. Add the Tech Docs section (only for a new API) + +Create `content/tech-docs/my-api` with: + +- `overview.mdx` (landing page) +- `meta.json` with `"pages": ["overview", "api"]` + +Then add `my-api` to `content/tech-docs/meta.json` so the section appears in the sidebar. + +### 4. Generate the API docs + +List available profiles: + +```bash +pnpm exec tsx --no-cache scripts/generate-docs.ts --list +``` + +Generate one profile: + +```bash +pnpm exec tsx --no-cache scripts/generate-docs.ts my-api +``` + +Generate all profiles: + +```bash +pnpm exec tsx --no-cache scripts/generate-docs.ts --all +``` + +### 5. Result + +Generated API pages are written to `content/tech-docs//api` (including `index.mdx` and `meta.json`). + +Note: these files are generated and should not be edited manually. Re-run the generator after spec changes. + ## Learn More To learn more about Next.js and Fumadocs, take a look at the following From e59e8413b7287a20bba4819996d8d6f4df3fca08 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Thu, 25 Jun 2026 15:03:46 +0200 Subject: [PATCH 14/21] Generate OpenAPI tech-docs --- content/tech-docs/management-api/api.mdx | 4 - .../actions_getPrevResponsesTaskResult.mdx | 15 + .../actions_getPrevResponsesTaskStatus.mdx | 15 + .../api/actions/actions_getTaskResult.mdx | 15 + .../api/actions/actions_getTaskStatus.mdx | 15 + .../api/actions/actions_runOnParticipant.mdx | 15 + .../api/actions/actions_runOnParticipants.mdx | 15 + .../actions_runPrevResponsesOnParticipant.mdx | 15 + ...actions_runPrevResponsesOnParticipants.mdx | 15 + .../management-api/api/actions/meta.json | 14 + .../management-api/api/app-roles/meta.json | 17 ++ .../userManagement_addAppRoleToUser.mdx | 15 + .../userManagement_createAppRoleTemplate.mdx | 15 + .../userManagement_deleteAppRoleTemplate.mdx | 15 + ...anagement_deleteAppRoleTemplatesForApp.mdx | 15 + .../userManagement_deleteAppRolesForApp.mdx | 15 + .../userManagement_getAppRoleTemplate.mdx | 15 + .../userManagement_listAppRoleTemplates.mdx | 15 + .../app-roles/userManagement_listAppRoles.mdx | 15 + .../userManagement_listUserAppRoles.mdx | 15 + .../userManagement_removeUserAppRole.mdx | 15 + .../userManagement_updateAppRoleTemplate.mdx | 15 + .../api/auth/auth_extendSession.mdx | 15 + .../api/auth/auth_listPermissions.mdx | 15 + .../api/auth/auth_renewToken.mdx | 15 + .../api/auth/auth_signinWithIdp.mdx | 15 + .../management-api/api/auth/meta.json | 10 + .../api/code-lists/codeLists_addCodes.mdx | 15 + .../api/code-lists/codeLists_getCodes.mdx | 15 + .../api/code-lists/codeLists_getListKeys.mdx | 15 + .../api/code-lists/codeLists_removeCode.mdx | 15 + .../management-api/api/code-lists/meta.json | 10 + .../api/files/dataExplorer_deleteFile.mdx | 15 + .../api/files/dataExplorer_getFile.mdx | 15 + .../api/files/dataExplorer_listFiles.mdx | 15 + .../management-api/api/files/meta.json | 9 + .../tech-docs/management-api/api/index.mdx | 270 ++++++++++++++++++ .../messaging_createScheduledEmail.mdx | 15 + .../messaging_deleteGlobalEmailTemplate.mdx | 15 + .../messaging_deleteScheduledEmail.mdx | 15 + .../messaging_deleteStudyEmailTemplate.mdx | 15 + .../messaging_getGlobalEmailTemplate.mdx | 15 + .../messaging/messaging_getScheduledEmail.mdx | 15 + .../messaging/messaging_getSmsTemplate.mdx | 15 + .../messaging_getStudyEmailTemplate.mdx | 15 + .../messaging_listAllStudyEmailTemplates.mdx | 15 + .../messaging_listGlobalEmailTemplates.mdx | 15 + .../messaging_listScheduledEmails.mdx | 15 + .../messaging_listStudyEmailTemplates.mdx | 15 + .../messaging_saveGlobalEmailTemplate.mdx | 15 + .../messaging/messaging_saveSmsTemplate.mdx | 15 + .../messaging_saveStudyEmailTemplate.mdx | 15 + .../management-api/api/messaging/meta.json | 21 ++ .../tech-docs/management-api/api/meta.json | 22 ++ .../api/notifications/meta.json | 8 + .../notifications_getSubscriptions.mdx | 15 + .../notifications_updateSubscriptions.mdx | 15 + .../dataExplorer_getParticipant.mdx | 15 + .../dataExplorer_listParticipants.mdx | 15 + ...ataExporter_generateParticipantsExport.mdx | 15 + .../dataExporter_getParticipantsCount.mdx | 15 + ...dataExporter_getParticipantsTaskResult.mdx | 15 + ...dataExporter_getParticipantsTaskStatus.mdx | 15 + .../management-api/api/participants/meta.json | 18 ++ .../participants_createVirtualParticipant.mdx | 15 + .../participants_editParticipant.mdx | 15 + .../participants_listParticipantResponses.mdx | 15 + .../participants_mergeParticipants.mdx | 15 + .../participants_submitParticipantEvent.mdx | 15 + ...participants_submitParticipantResponse.mdx | 15 + .../api/reports/dataExplorer_getReport.mdx | 15 + .../reports/dataExplorer_listReportKeys.mdx | 15 + .../api/reports/dataExplorer_listReports.mdx | 15 + .../dataExporter_generateReportsExport.mdx | 15 + .../reports/dataExporter_getReportsCount.mdx | 15 + .../dataExporter_getReportsTaskResult.mdx | 15 + .../dataExporter_getReportsTaskStatus.mdx | 15 + .../management-api/api/reports/meta.json | 15 + .../participants_submitParticipantReport.mdx | 15 + .../participants_updateParticipantReport.mdx | 15 + .../responses/dataExplorer_deleteResponse.mdx | 15 + .../dataExplorer_deleteResponses.mdx | 15 + .../responses/dataExplorer_getResponse.mdx | 15 + .../responses/dataExplorer_listResponses.mdx | 15 + .../dataExporter_generateResponsesExport.mdx | 15 + ...Exporter_getConfidentialResponseExport.mdx | 15 + .../dataExporter_getConfidentialResponses.mdx | 15 + .../dataExporter_getDailyResponseExport.mdx | 15 + .../dataExporter_getResponsesCount.mdx | 15 + .../dataExporter_getResponsesTaskResult.mdx | 15 + .../dataExporter_getResponsesTaskStatus.mdx | 15 + .../responses/dataExporter_getSurveyInfo.mdx | 15 + ...porter_listConfidentialResponseExports.mdx | 15 + .../dataExporter_listDailyResponseExports.mdx | 15 + .../management-api/api/responses/meta.json | 20 ++ .../api/service-accounts/meta.json | 18 ++ ...nagement_addPermissionToServiceAccount.mdx | 15 + .../userManagement_createServiceAccount.mdx | 15 + ...rManagement_createServiceAccountAPIKey.mdx | 15 + .../userManagement_deleteServiceAccount.mdx | 15 + ...rManagement_deleteServiceAccountAPIKey.mdx | 15 + ...agement_deleteServiceAccountPermission.mdx | 15 + .../userManagement_getServiceAccount.mdx | 15 + ...erManagement_listServiceAccountAPIKeys.mdx | 15 + ...nagement_listServiceAccountPermissions.mdx | 15 + .../userManagement_listServiceAccounts.mdx | 15 + .../userManagement_updateServiceAccount.mdx | 15 + ..._updateServiceAccountPermissionLimiter.mdx | 15 + .../management-api/api/studies/meta.json | 15 + .../api/studies/studies_createStudy.mdx | 15 + .../api/studies/studies_deleteStudy.mdx | 15 + .../api/studies/studies_exportConfig.mdx | 15 + .../api/studies/studies_getStudy.mdx | 15 + .../api/studies/studies_listStudies.mdx | 15 + .../studies/studies_updateDisplayProps.mdx | 15 + .../studies/studies_updateFileUploadRule.mdx | 15 + .../api/studies/studies_updateIsDefault.mdx | 15 + .../api/studies/studies_updateStatus.mdx | 15 + .../api/study-counters/meta.json | 10 + .../studyCounters_incrementValue.mdx | 15 + .../studyCounters_listValues.mdx | 15 + .../studyCounters_removeValue.mdx | 15 + .../studyCounters_saveValue.mdx | 15 + .../api/study-permissions/meta.json | 9 + .../studyPermissions_addPermission.mdx | 15 + .../studyPermissions_listPermissions.mdx | 15 + .../studyPermissions_removePermission.mdx | 15 + .../management-api/api/study-rules/meta.json | 11 + .../study-rules/studyRules_deleteVersion.mdx | 15 + .../api/study-rules/studyRules_getCurrent.mdx | 15 + .../api/study-rules/studyRules_getVersion.mdx | 15 + .../study-rules/studyRules_listVersions.mdx | 15 + .../studyRules_publishNewVersion.mdx | 15 + .../api/study-variables/meta.json | 12 + .../studyVariables_addVariable.mdx | 15 + .../studyVariables_deleteVariable.mdx | 15 + .../studyVariables_getVariable.mdx | 15 + .../studyVariables_listVariables.mdx | 15 + .../studyVariables_updateVariableDef.mdx | 15 + .../studyVariables_updateVariableValue.mdx | 15 + .../management-api/api/surveys/meta.json | 14 + .../api/surveys/surveys_createSurvey.mdx | 15 + .../surveys/surveys_deleteSurveyVersion.mdx | 15 + .../api/surveys/surveys_getLatestSurvey.mdx | 15 + .../api/surveys/surveys_getSurveyVersion.mdx | 15 + .../api/surveys/surveys_listSurveyInfos.mdx | 15 + .../surveys/surveys_listSurveyVersions.mdx | 15 + .../api/surveys/surveys_unpublishSurvey.mdx | 15 + .../api/surveys/surveys_updateSurvey.mdx | 15 + .../api/user-management/meta.json | 14 + .../userManagement_addPermissionToUser.mdx | 15 + .../userManagement_deleteManagementUser.mdx | 15 + .../userManagement_deleteUserPermission.mdx | 15 + .../userManagement_getManagementUser.mdx | 15 + .../userManagement_listManagementUsers.mdx | 15 + .../userManagement_listUserPermissions.mdx | 15 + ...agement_requestParticipantUserDeletion.mdx | 15 + ...userManagement_updatePermissionLimiter.mdx | 15 + content/tech-docs/participant-api/api.mdx | 4 - .../api/auth/getTempTokenInfo.mdx | 15 + .../api/auth/loginWithEmail.mdx | 15 + .../api/auth/loginWithTempToken.mdx | 15 + .../participant-api/api/auth/logout.mdx | 15 + .../participant-api/api/auth/meta.json | 18 ++ .../participant-api/api/auth/renewToken.mdx | 15 + .../participant-api/api/auth/requestOTP.mdx | 15 + .../api/auth/resendEmailVerification.mdx | 15 + .../participant-api/api/auth/revokeTokens.mdx | 15 + .../api/auth/signupWithEmail.mdx | 15 + .../api/auth/validateToken.mdx | 15 + .../participant-api/api/auth/verifyEmail.mdx | 15 + .../participant-api/api/auth/verifyOTP.mdx | 15 + .../api/events/customStudyEvent.mdx | 15 + .../participant-api/api/events/enterStudy.mdx | 15 + .../api/events/leaveStudyEvent.mdx | 15 + .../api/events/mergeTempParticipant.mdx | 15 + .../api/events/mergeVirtualParticipant.mdx | 15 + .../participant-api/api/events/meta.json | 14 + .../api/events/registerTempParticipant.mdx | 15 + .../api/events/submitSurveyEvent.mdx | 15 + .../events/submitTempParticipantResponse.mdx | 15 + .../tech-docs/participant-api/api/index.mdx | 117 ++++++++ .../tech-docs/participant-api/api/meta.json | 11 + .../participant-api/api/misc/getHealth.mdx | 15 + .../participant-api/api/misc/meta.json | 8 + .../api/misc/unsubscribeNewsletter.mdx | 15 + .../deleteParticipantFile.mdx | 15 + .../participant-data/getAssignedSurveys.mdx | 15 + .../getConfidentialResponse.mdx | 15 + .../api/participant-data/getLinkingCode.mdx | 15 + .../participant-data/getParticipantFile.mdx | 15 + .../participant-data/getParticipantState.mdx | 15 + .../api/participant-data/getReports.mdx | 15 + .../getStudyResponsesForProfile.mdx | 15 + .../participant-data/getSubmissionHistory.mdx | 15 + .../participant-data/getSurveyWithContext.mdx | 15 + .../getTempParticipantSurveyWithContext.mdx | 15 + .../getTempParticipantSurveys.mdx | 15 + .../getVirtualParticipantsByLinkingCode.mdx | 15 + .../participant-data/listParticipantFiles.mdx | 15 + .../api/participant-data/meta.json | 21 ++ .../uploadParticipantFile.mdx | 15 + .../api/password/getPasswordResetInfos.mdx | 15 + .../api/password/initiatePasswordReset.mdx | 15 + .../participant-api/api/password/meta.json | 9 + .../api/password/resetPassword.mdx | 15 + .../api/studies/getParticipatingStudies.mdx | 15 + .../api/studies/getStudiesByStatus.mdx | 15 + .../participant-api/api/studies/getStudy.mdx | 15 + .../getStudyCodeListAvailableCount.mdx | 15 + .../api/studies/getStudyVariable.mdx | 15 + .../api/studies/getStudyVariables.mdx | 15 + .../participant-api/api/studies/meta.json | 13 + .../api/studies/studyHasCodeListCode.mdx | 15 + .../participant-api/api/user/addProfile.mdx | 15 + .../api/user/changeAccountEmail.mdx | 15 + .../api/user/changePassword.mdx | 15 + .../api/user/changePhoneNumber.mdx | 15 + .../participant-api/api/user/deleteUser.mdx | 15 + .../api/user/deleteUserAttribute.mdx | 15 + .../participant-api/api/user/getUser.mdx | 15 + .../api/user/getUserAttributes.mdx | 15 + .../participant-api/api/user/meta.json | 20 ++ .../api/user/removeProfile.mdx | 15 + .../user/requestPhoneNumberVerification.mdx | 15 + .../api/user/setUserAttribute.mdx | 15 + .../api/user/updateContactPreferences.mdx | 16 ++ .../api/user/updatePreferredLanguage.mdx | 15 + .../api/user/updateProfile.mdx | 15 + content/tech-docs/participant-api/meta.json | 2 +- content/tech-docs/smtp-bridge/api.mdx | 4 - .../tech-docs/smtp-bridge/api/getHealth.mdx | 15 + content/tech-docs/smtp-bridge/api/index.mdx | 11 + content/tech-docs/smtp-bridge/api/meta.json | 6 + .../tech-docs/smtp-bridge/api/sendEmail.mdx | 15 + content/tech-docs/smtp-bridge/meta.json | 2 +- 236 files changed, 3788 insertions(+), 14 deletions(-) delete mode 100644 content/tech-docs/management-api/api.mdx create mode 100644 content/tech-docs/management-api/api/actions/actions_getPrevResponsesTaskResult.mdx create mode 100644 content/tech-docs/management-api/api/actions/actions_getPrevResponsesTaskStatus.mdx create mode 100644 content/tech-docs/management-api/api/actions/actions_getTaskResult.mdx create mode 100644 content/tech-docs/management-api/api/actions/actions_getTaskStatus.mdx create mode 100644 content/tech-docs/management-api/api/actions/actions_runOnParticipant.mdx create mode 100644 content/tech-docs/management-api/api/actions/actions_runOnParticipants.mdx create mode 100644 content/tech-docs/management-api/api/actions/actions_runPrevResponsesOnParticipant.mdx create mode 100644 content/tech-docs/management-api/api/actions/actions_runPrevResponsesOnParticipants.mdx create mode 100644 content/tech-docs/management-api/api/actions/meta.json create mode 100644 content/tech-docs/management-api/api/app-roles/meta.json create mode 100644 content/tech-docs/management-api/api/app-roles/userManagement_addAppRoleToUser.mdx create mode 100644 content/tech-docs/management-api/api/app-roles/userManagement_createAppRoleTemplate.mdx create mode 100644 content/tech-docs/management-api/api/app-roles/userManagement_deleteAppRoleTemplate.mdx create mode 100644 content/tech-docs/management-api/api/app-roles/userManagement_deleteAppRoleTemplatesForApp.mdx create mode 100644 content/tech-docs/management-api/api/app-roles/userManagement_deleteAppRolesForApp.mdx create mode 100644 content/tech-docs/management-api/api/app-roles/userManagement_getAppRoleTemplate.mdx create mode 100644 content/tech-docs/management-api/api/app-roles/userManagement_listAppRoleTemplates.mdx create mode 100644 content/tech-docs/management-api/api/app-roles/userManagement_listAppRoles.mdx create mode 100644 content/tech-docs/management-api/api/app-roles/userManagement_listUserAppRoles.mdx create mode 100644 content/tech-docs/management-api/api/app-roles/userManagement_removeUserAppRole.mdx create mode 100644 content/tech-docs/management-api/api/app-roles/userManagement_updateAppRoleTemplate.mdx create mode 100644 content/tech-docs/management-api/api/auth/auth_extendSession.mdx create mode 100644 content/tech-docs/management-api/api/auth/auth_listPermissions.mdx create mode 100644 content/tech-docs/management-api/api/auth/auth_renewToken.mdx create mode 100644 content/tech-docs/management-api/api/auth/auth_signinWithIdp.mdx create mode 100644 content/tech-docs/management-api/api/auth/meta.json create mode 100644 content/tech-docs/management-api/api/code-lists/codeLists_addCodes.mdx create mode 100644 content/tech-docs/management-api/api/code-lists/codeLists_getCodes.mdx create mode 100644 content/tech-docs/management-api/api/code-lists/codeLists_getListKeys.mdx create mode 100644 content/tech-docs/management-api/api/code-lists/codeLists_removeCode.mdx create mode 100644 content/tech-docs/management-api/api/code-lists/meta.json create mode 100644 content/tech-docs/management-api/api/files/dataExplorer_deleteFile.mdx create mode 100644 content/tech-docs/management-api/api/files/dataExplorer_getFile.mdx create mode 100644 content/tech-docs/management-api/api/files/dataExplorer_listFiles.mdx create mode 100644 content/tech-docs/management-api/api/files/meta.json create mode 100644 content/tech-docs/management-api/api/index.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_createScheduledEmail.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_deleteGlobalEmailTemplate.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_deleteScheduledEmail.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_deleteStudyEmailTemplate.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_getGlobalEmailTemplate.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_getScheduledEmail.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_getSmsTemplate.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_getStudyEmailTemplate.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_listAllStudyEmailTemplates.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_listGlobalEmailTemplates.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_listScheduledEmails.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_listStudyEmailTemplates.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_saveGlobalEmailTemplate.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_saveSmsTemplate.mdx create mode 100644 content/tech-docs/management-api/api/messaging/messaging_saveStudyEmailTemplate.mdx create mode 100644 content/tech-docs/management-api/api/messaging/meta.json create mode 100644 content/tech-docs/management-api/api/meta.json create mode 100644 content/tech-docs/management-api/api/notifications/meta.json create mode 100644 content/tech-docs/management-api/api/notifications/notifications_getSubscriptions.mdx create mode 100644 content/tech-docs/management-api/api/notifications/notifications_updateSubscriptions.mdx create mode 100644 content/tech-docs/management-api/api/participants/dataExplorer_getParticipant.mdx create mode 100644 content/tech-docs/management-api/api/participants/dataExplorer_listParticipants.mdx create mode 100644 content/tech-docs/management-api/api/participants/dataExporter_generateParticipantsExport.mdx create mode 100644 content/tech-docs/management-api/api/participants/dataExporter_getParticipantsCount.mdx create mode 100644 content/tech-docs/management-api/api/participants/dataExporter_getParticipantsTaskResult.mdx create mode 100644 content/tech-docs/management-api/api/participants/dataExporter_getParticipantsTaskStatus.mdx create mode 100644 content/tech-docs/management-api/api/participants/meta.json create mode 100644 content/tech-docs/management-api/api/participants/participants_createVirtualParticipant.mdx create mode 100644 content/tech-docs/management-api/api/participants/participants_editParticipant.mdx create mode 100644 content/tech-docs/management-api/api/participants/participants_listParticipantResponses.mdx create mode 100644 content/tech-docs/management-api/api/participants/participants_mergeParticipants.mdx create mode 100644 content/tech-docs/management-api/api/participants/participants_submitParticipantEvent.mdx create mode 100644 content/tech-docs/management-api/api/participants/participants_submitParticipantResponse.mdx create mode 100644 content/tech-docs/management-api/api/reports/dataExplorer_getReport.mdx create mode 100644 content/tech-docs/management-api/api/reports/dataExplorer_listReportKeys.mdx create mode 100644 content/tech-docs/management-api/api/reports/dataExplorer_listReports.mdx create mode 100644 content/tech-docs/management-api/api/reports/dataExporter_generateReportsExport.mdx create mode 100644 content/tech-docs/management-api/api/reports/dataExporter_getReportsCount.mdx create mode 100644 content/tech-docs/management-api/api/reports/dataExporter_getReportsTaskResult.mdx create mode 100644 content/tech-docs/management-api/api/reports/dataExporter_getReportsTaskStatus.mdx create mode 100644 content/tech-docs/management-api/api/reports/meta.json create mode 100644 content/tech-docs/management-api/api/reports/participants_submitParticipantReport.mdx create mode 100644 content/tech-docs/management-api/api/reports/participants_updateParticipantReport.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExplorer_deleteResponse.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExplorer_deleteResponses.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExplorer_getResponse.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExplorer_listResponses.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExporter_generateResponsesExport.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExporter_getConfidentialResponseExport.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExporter_getConfidentialResponses.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExporter_getDailyResponseExport.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExporter_getResponsesCount.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExporter_getResponsesTaskResult.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExporter_getResponsesTaskStatus.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExporter_getSurveyInfo.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExporter_listConfidentialResponseExports.mdx create mode 100644 content/tech-docs/management-api/api/responses/dataExporter_listDailyResponseExports.mdx create mode 100644 content/tech-docs/management-api/api/responses/meta.json create mode 100644 content/tech-docs/management-api/api/service-accounts/meta.json create mode 100644 content/tech-docs/management-api/api/service-accounts/userManagement_addPermissionToServiceAccount.mdx create mode 100644 content/tech-docs/management-api/api/service-accounts/userManagement_createServiceAccount.mdx create mode 100644 content/tech-docs/management-api/api/service-accounts/userManagement_createServiceAccountAPIKey.mdx create mode 100644 content/tech-docs/management-api/api/service-accounts/userManagement_deleteServiceAccount.mdx create mode 100644 content/tech-docs/management-api/api/service-accounts/userManagement_deleteServiceAccountAPIKey.mdx create mode 100644 content/tech-docs/management-api/api/service-accounts/userManagement_deleteServiceAccountPermission.mdx create mode 100644 content/tech-docs/management-api/api/service-accounts/userManagement_getServiceAccount.mdx create mode 100644 content/tech-docs/management-api/api/service-accounts/userManagement_listServiceAccountAPIKeys.mdx create mode 100644 content/tech-docs/management-api/api/service-accounts/userManagement_listServiceAccountPermissions.mdx create mode 100644 content/tech-docs/management-api/api/service-accounts/userManagement_listServiceAccounts.mdx create mode 100644 content/tech-docs/management-api/api/service-accounts/userManagement_updateServiceAccount.mdx create mode 100644 content/tech-docs/management-api/api/service-accounts/userManagement_updateServiceAccountPermissionLimiter.mdx create mode 100644 content/tech-docs/management-api/api/studies/meta.json create mode 100644 content/tech-docs/management-api/api/studies/studies_createStudy.mdx create mode 100644 content/tech-docs/management-api/api/studies/studies_deleteStudy.mdx create mode 100644 content/tech-docs/management-api/api/studies/studies_exportConfig.mdx create mode 100644 content/tech-docs/management-api/api/studies/studies_getStudy.mdx create mode 100644 content/tech-docs/management-api/api/studies/studies_listStudies.mdx create mode 100644 content/tech-docs/management-api/api/studies/studies_updateDisplayProps.mdx create mode 100644 content/tech-docs/management-api/api/studies/studies_updateFileUploadRule.mdx create mode 100644 content/tech-docs/management-api/api/studies/studies_updateIsDefault.mdx create mode 100644 content/tech-docs/management-api/api/studies/studies_updateStatus.mdx create mode 100644 content/tech-docs/management-api/api/study-counters/meta.json create mode 100644 content/tech-docs/management-api/api/study-counters/studyCounters_incrementValue.mdx create mode 100644 content/tech-docs/management-api/api/study-counters/studyCounters_listValues.mdx create mode 100644 content/tech-docs/management-api/api/study-counters/studyCounters_removeValue.mdx create mode 100644 content/tech-docs/management-api/api/study-counters/studyCounters_saveValue.mdx create mode 100644 content/tech-docs/management-api/api/study-permissions/meta.json create mode 100644 content/tech-docs/management-api/api/study-permissions/studyPermissions_addPermission.mdx create mode 100644 content/tech-docs/management-api/api/study-permissions/studyPermissions_listPermissions.mdx create mode 100644 content/tech-docs/management-api/api/study-permissions/studyPermissions_removePermission.mdx create mode 100644 content/tech-docs/management-api/api/study-rules/meta.json create mode 100644 content/tech-docs/management-api/api/study-rules/studyRules_deleteVersion.mdx create mode 100644 content/tech-docs/management-api/api/study-rules/studyRules_getCurrent.mdx create mode 100644 content/tech-docs/management-api/api/study-rules/studyRules_getVersion.mdx create mode 100644 content/tech-docs/management-api/api/study-rules/studyRules_listVersions.mdx create mode 100644 content/tech-docs/management-api/api/study-rules/studyRules_publishNewVersion.mdx create mode 100644 content/tech-docs/management-api/api/study-variables/meta.json create mode 100644 content/tech-docs/management-api/api/study-variables/studyVariables_addVariable.mdx create mode 100644 content/tech-docs/management-api/api/study-variables/studyVariables_deleteVariable.mdx create mode 100644 content/tech-docs/management-api/api/study-variables/studyVariables_getVariable.mdx create mode 100644 content/tech-docs/management-api/api/study-variables/studyVariables_listVariables.mdx create mode 100644 content/tech-docs/management-api/api/study-variables/studyVariables_updateVariableDef.mdx create mode 100644 content/tech-docs/management-api/api/study-variables/studyVariables_updateVariableValue.mdx create mode 100644 content/tech-docs/management-api/api/surveys/meta.json create mode 100644 content/tech-docs/management-api/api/surveys/surveys_createSurvey.mdx create mode 100644 content/tech-docs/management-api/api/surveys/surveys_deleteSurveyVersion.mdx create mode 100644 content/tech-docs/management-api/api/surveys/surveys_getLatestSurvey.mdx create mode 100644 content/tech-docs/management-api/api/surveys/surveys_getSurveyVersion.mdx create mode 100644 content/tech-docs/management-api/api/surveys/surveys_listSurveyInfos.mdx create mode 100644 content/tech-docs/management-api/api/surveys/surveys_listSurveyVersions.mdx create mode 100644 content/tech-docs/management-api/api/surveys/surveys_unpublishSurvey.mdx create mode 100644 content/tech-docs/management-api/api/surveys/surveys_updateSurvey.mdx create mode 100644 content/tech-docs/management-api/api/user-management/meta.json create mode 100644 content/tech-docs/management-api/api/user-management/userManagement_addPermissionToUser.mdx create mode 100644 content/tech-docs/management-api/api/user-management/userManagement_deleteManagementUser.mdx create mode 100644 content/tech-docs/management-api/api/user-management/userManagement_deleteUserPermission.mdx create mode 100644 content/tech-docs/management-api/api/user-management/userManagement_getManagementUser.mdx create mode 100644 content/tech-docs/management-api/api/user-management/userManagement_listManagementUsers.mdx create mode 100644 content/tech-docs/management-api/api/user-management/userManagement_listUserPermissions.mdx create mode 100644 content/tech-docs/management-api/api/user-management/userManagement_requestParticipantUserDeletion.mdx create mode 100644 content/tech-docs/management-api/api/user-management/userManagement_updatePermissionLimiter.mdx delete mode 100644 content/tech-docs/participant-api/api.mdx create mode 100644 content/tech-docs/participant-api/api/auth/getTempTokenInfo.mdx create mode 100644 content/tech-docs/participant-api/api/auth/loginWithEmail.mdx create mode 100644 content/tech-docs/participant-api/api/auth/loginWithTempToken.mdx create mode 100644 content/tech-docs/participant-api/api/auth/logout.mdx create mode 100644 content/tech-docs/participant-api/api/auth/meta.json create mode 100644 content/tech-docs/participant-api/api/auth/renewToken.mdx create mode 100644 content/tech-docs/participant-api/api/auth/requestOTP.mdx create mode 100644 content/tech-docs/participant-api/api/auth/resendEmailVerification.mdx create mode 100644 content/tech-docs/participant-api/api/auth/revokeTokens.mdx create mode 100644 content/tech-docs/participant-api/api/auth/signupWithEmail.mdx create mode 100644 content/tech-docs/participant-api/api/auth/validateToken.mdx create mode 100644 content/tech-docs/participant-api/api/auth/verifyEmail.mdx create mode 100644 content/tech-docs/participant-api/api/auth/verifyOTP.mdx create mode 100644 content/tech-docs/participant-api/api/events/customStudyEvent.mdx create mode 100644 content/tech-docs/participant-api/api/events/enterStudy.mdx create mode 100644 content/tech-docs/participant-api/api/events/leaveStudyEvent.mdx create mode 100644 content/tech-docs/participant-api/api/events/mergeTempParticipant.mdx create mode 100644 content/tech-docs/participant-api/api/events/mergeVirtualParticipant.mdx create mode 100644 content/tech-docs/participant-api/api/events/meta.json create mode 100644 content/tech-docs/participant-api/api/events/registerTempParticipant.mdx create mode 100644 content/tech-docs/participant-api/api/events/submitSurveyEvent.mdx create mode 100644 content/tech-docs/participant-api/api/events/submitTempParticipantResponse.mdx create mode 100644 content/tech-docs/participant-api/api/index.mdx create mode 100644 content/tech-docs/participant-api/api/meta.json create mode 100644 content/tech-docs/participant-api/api/misc/getHealth.mdx create mode 100644 content/tech-docs/participant-api/api/misc/meta.json create mode 100644 content/tech-docs/participant-api/api/misc/unsubscribeNewsletter.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/deleteParticipantFile.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/getAssignedSurveys.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/getConfidentialResponse.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/getLinkingCode.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/getParticipantFile.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/getParticipantState.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/getReports.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/getStudyResponsesForProfile.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/getSubmissionHistory.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/getSurveyWithContext.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/getTempParticipantSurveyWithContext.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/getTempParticipantSurveys.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/getVirtualParticipantsByLinkingCode.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/listParticipantFiles.mdx create mode 100644 content/tech-docs/participant-api/api/participant-data/meta.json create mode 100644 content/tech-docs/participant-api/api/participant-data/uploadParticipantFile.mdx create mode 100644 content/tech-docs/participant-api/api/password/getPasswordResetInfos.mdx create mode 100644 content/tech-docs/participant-api/api/password/initiatePasswordReset.mdx create mode 100644 content/tech-docs/participant-api/api/password/meta.json create mode 100644 content/tech-docs/participant-api/api/password/resetPassword.mdx create mode 100644 content/tech-docs/participant-api/api/studies/getParticipatingStudies.mdx create mode 100644 content/tech-docs/participant-api/api/studies/getStudiesByStatus.mdx create mode 100644 content/tech-docs/participant-api/api/studies/getStudy.mdx create mode 100644 content/tech-docs/participant-api/api/studies/getStudyCodeListAvailableCount.mdx create mode 100644 content/tech-docs/participant-api/api/studies/getStudyVariable.mdx create mode 100644 content/tech-docs/participant-api/api/studies/getStudyVariables.mdx create mode 100644 content/tech-docs/participant-api/api/studies/meta.json create mode 100644 content/tech-docs/participant-api/api/studies/studyHasCodeListCode.mdx create mode 100644 content/tech-docs/participant-api/api/user/addProfile.mdx create mode 100644 content/tech-docs/participant-api/api/user/changeAccountEmail.mdx create mode 100644 content/tech-docs/participant-api/api/user/changePassword.mdx create mode 100644 content/tech-docs/participant-api/api/user/changePhoneNumber.mdx create mode 100644 content/tech-docs/participant-api/api/user/deleteUser.mdx create mode 100644 content/tech-docs/participant-api/api/user/deleteUserAttribute.mdx create mode 100644 content/tech-docs/participant-api/api/user/getUser.mdx create mode 100644 content/tech-docs/participant-api/api/user/getUserAttributes.mdx create mode 100644 content/tech-docs/participant-api/api/user/meta.json create mode 100644 content/tech-docs/participant-api/api/user/removeProfile.mdx create mode 100644 content/tech-docs/participant-api/api/user/requestPhoneNumberVerification.mdx create mode 100644 content/tech-docs/participant-api/api/user/setUserAttribute.mdx create mode 100644 content/tech-docs/participant-api/api/user/updateContactPreferences.mdx create mode 100644 content/tech-docs/participant-api/api/user/updatePreferredLanguage.mdx create mode 100644 content/tech-docs/participant-api/api/user/updateProfile.mdx delete mode 100644 content/tech-docs/smtp-bridge/api.mdx create mode 100644 content/tech-docs/smtp-bridge/api/getHealth.mdx create mode 100644 content/tech-docs/smtp-bridge/api/index.mdx create mode 100644 content/tech-docs/smtp-bridge/api/meta.json create mode 100644 content/tech-docs/smtp-bridge/api/sendEmail.mdx diff --git a/content/tech-docs/management-api/api.mdx b/content/tech-docs/management-api/api.mdx deleted file mode 100644 index e051759..0000000 --- a/content/tech-docs/management-api/api.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: API -description: Management API ---- diff --git a/content/tech-docs/management-api/api/actions/actions_getPrevResponsesTaskResult.mdx b/content/tech-docs/management-api/api/actions/actions_getPrevResponsesTaskResult.mdx new file mode 100644 index 0000000..f10412c --- /dev/null +++ b/content/tech-docs/management-api/api/actions/actions_getPrevResponsesTaskResult.mdx @@ -0,0 +1,15 @@ +--- +title: Get previous-responses actions task result +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/actions/actions_getPrevResponsesTaskStatus.mdx b/content/tech-docs/management-api/api/actions/actions_getPrevResponsesTaskStatus.mdx new file mode 100644 index 0000000..7d12947 --- /dev/null +++ b/content/tech-docs/management-api/api/actions/actions_getPrevResponsesTaskStatus.mdx @@ -0,0 +1,15 @@ +--- +title: Get previous-responses actions task status +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/actions/actions_getTaskResult.mdx b/content/tech-docs/management-api/api/actions/actions_getTaskResult.mdx new file mode 100644 index 0000000..7495f5e --- /dev/null +++ b/content/tech-docs/management-api/api/actions/actions_getTaskResult.mdx @@ -0,0 +1,15 @@ +--- +title: Get actions task result +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/actions/actions_getTaskStatus.mdx b/content/tech-docs/management-api/api/actions/actions_getTaskStatus.mdx new file mode 100644 index 0000000..5c90b9d --- /dev/null +++ b/content/tech-docs/management-api/api/actions/actions_getTaskStatus.mdx @@ -0,0 +1,15 @@ +--- +title: Get actions task status +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/actions/actions_runOnParticipant.mdx b/content/tech-docs/management-api/api/actions/actions_runOnParticipant.mdx new file mode 100644 index 0000000..2ce526e --- /dev/null +++ b/content/tech-docs/management-api/api/actions/actions_runOnParticipant.mdx @@ -0,0 +1,15 @@ +--- +title: Run actions on a participant +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/actions/actions_runOnParticipants.mdx b/content/tech-docs/management-api/api/actions/actions_runOnParticipants.mdx new file mode 100644 index 0000000..d8e7009 --- /dev/null +++ b/content/tech-docs/management-api/api/actions/actions_runOnParticipants.mdx @@ -0,0 +1,15 @@ +--- +title: Run actions on multiple participants +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/actions/actions_runPrevResponsesOnParticipant.mdx b/content/tech-docs/management-api/api/actions/actions_runPrevResponsesOnParticipant.mdx new file mode 100644 index 0000000..1748c6e --- /dev/null +++ b/content/tech-docs/management-api/api/actions/actions_runPrevResponsesOnParticipant.mdx @@ -0,0 +1,15 @@ +--- +title: Run actions on previous responses for a participant +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/actions/actions_runPrevResponsesOnParticipants.mdx b/content/tech-docs/management-api/api/actions/actions_runPrevResponsesOnParticipants.mdx new file mode 100644 index 0000000..6dde1d8 --- /dev/null +++ b/content/tech-docs/management-api/api/actions/actions_runPrevResponsesOnParticipants.mdx @@ -0,0 +1,15 @@ +--- +title: Run actions on previous responses for multiple participants +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/actions/meta.json b/content/tech-docs/management-api/api/actions/meta.json new file mode 100644 index 0000000..164980c --- /dev/null +++ b/content/tech-docs/management-api/api/actions/meta.json @@ -0,0 +1,14 @@ +{ + "title": "Actions", + "description": "Run actions on participants", + "pages": [ + "actions_runOnParticipant", + "actions_runOnParticipants", + "actions_getTaskStatus", + "actions_getTaskResult", + "actions_runPrevResponsesOnParticipant", + "actions_runPrevResponsesOnParticipants", + "actions_getPrevResponsesTaskStatus", + "actions_getPrevResponsesTaskResult" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/app-roles/meta.json b/content/tech-docs/management-api/api/app-roles/meta.json new file mode 100644 index 0000000..e341b31 --- /dev/null +++ b/content/tech-docs/management-api/api/app-roles/meta.json @@ -0,0 +1,17 @@ +{ + "title": "App roles", + "description": "App role templates & assignments", + "pages": [ + "userManagement_listUserAppRoles", + "userManagement_addAppRoleToUser", + "userManagement_removeUserAppRole", + "userManagement_listAppRoleTemplates", + "userManagement_createAppRoleTemplate", + "userManagement_getAppRoleTemplate", + "userManagement_updateAppRoleTemplate", + "userManagement_deleteAppRoleTemplate", + "userManagement_deleteAppRoleTemplatesForApp", + "userManagement_listAppRoles", + "userManagement_deleteAppRolesForApp" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/app-roles/userManagement_addAppRoleToUser.mdx b/content/tech-docs/management-api/api/app-roles/userManagement_addAppRoleToUser.mdx new file mode 100644 index 0000000..80dd345 --- /dev/null +++ b/content/tech-docs/management-api/api/app-roles/userManagement_addAppRoleToUser.mdx @@ -0,0 +1,15 @@ +--- +title: Add app role to user +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/app-roles/userManagement_createAppRoleTemplate.mdx b/content/tech-docs/management-api/api/app-roles/userManagement_createAppRoleTemplate.mdx new file mode 100644 index 0000000..d7b80e9 --- /dev/null +++ b/content/tech-docs/management-api/api/app-roles/userManagement_createAppRoleTemplate.mdx @@ -0,0 +1,15 @@ +--- +title: Create app role template +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/app-roles/userManagement_deleteAppRoleTemplate.mdx b/content/tech-docs/management-api/api/app-roles/userManagement_deleteAppRoleTemplate.mdx new file mode 100644 index 0000000..ca80216 --- /dev/null +++ b/content/tech-docs/management-api/api/app-roles/userManagement_deleteAppRoleTemplate.mdx @@ -0,0 +1,15 @@ +--- +title: Delete app role template +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/app-roles/userManagement_deleteAppRoleTemplatesForApp.mdx b/content/tech-docs/management-api/api/app-roles/userManagement_deleteAppRoleTemplatesForApp.mdx new file mode 100644 index 0000000..89cbd10 --- /dev/null +++ b/content/tech-docs/management-api/api/app-roles/userManagement_deleteAppRoleTemplatesForApp.mdx @@ -0,0 +1,15 @@ +--- +title: Delete app role templates for app +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/app-roles/userManagement_deleteAppRolesForApp.mdx b/content/tech-docs/management-api/api/app-roles/userManagement_deleteAppRolesForApp.mdx new file mode 100644 index 0000000..1590719 --- /dev/null +++ b/content/tech-docs/management-api/api/app-roles/userManagement_deleteAppRolesForApp.mdx @@ -0,0 +1,15 @@ +--- +title: Delete app roles for app +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/app-roles/userManagement_getAppRoleTemplate.mdx b/content/tech-docs/management-api/api/app-roles/userManagement_getAppRoleTemplate.mdx new file mode 100644 index 0000000..ab40f4c --- /dev/null +++ b/content/tech-docs/management-api/api/app-roles/userManagement_getAppRoleTemplate.mdx @@ -0,0 +1,15 @@ +--- +title: Get app role template +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/app-roles/userManagement_listAppRoleTemplates.mdx b/content/tech-docs/management-api/api/app-roles/userManagement_listAppRoleTemplates.mdx new file mode 100644 index 0000000..3d6de59 --- /dev/null +++ b/content/tech-docs/management-api/api/app-roles/userManagement_listAppRoleTemplates.mdx @@ -0,0 +1,15 @@ +--- +title: List app role templates +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/app-roles/userManagement_listAppRoles.mdx b/content/tech-docs/management-api/api/app-roles/userManagement_listAppRoles.mdx new file mode 100644 index 0000000..d4a7ad8 --- /dev/null +++ b/content/tech-docs/management-api/api/app-roles/userManagement_listAppRoles.mdx @@ -0,0 +1,15 @@ +--- +title: List app roles +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/app-roles/userManagement_listUserAppRoles.mdx b/content/tech-docs/management-api/api/app-roles/userManagement_listUserAppRoles.mdx new file mode 100644 index 0000000..c490722 --- /dev/null +++ b/content/tech-docs/management-api/api/app-roles/userManagement_listUserAppRoles.mdx @@ -0,0 +1,15 @@ +--- +title: List app roles for user +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/app-roles/userManagement_removeUserAppRole.mdx b/content/tech-docs/management-api/api/app-roles/userManagement_removeUserAppRole.mdx new file mode 100644 index 0000000..6edf917 --- /dev/null +++ b/content/tech-docs/management-api/api/app-roles/userManagement_removeUserAppRole.mdx @@ -0,0 +1,15 @@ +--- +title: Remove app role from user +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/app-roles/userManagement_updateAppRoleTemplate.mdx b/content/tech-docs/management-api/api/app-roles/userManagement_updateAppRoleTemplate.mdx new file mode 100644 index 0000000..a0d1744 --- /dev/null +++ b/content/tech-docs/management-api/api/app-roles/userManagement_updateAppRoleTemplate.mdx @@ -0,0 +1,15 @@ +--- +title: Update app role template +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/auth/auth_extendSession.mdx b/content/tech-docs/management-api/api/auth/auth_extendSession.mdx new file mode 100644 index 0000000..602f2ee --- /dev/null +++ b/content/tech-docs/management-api/api/auth/auth_extendSession.mdx @@ -0,0 +1,15 @@ +--- +title: Extend session +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/auth/auth_listPermissions.mdx b/content/tech-docs/management-api/api/auth/auth_listPermissions.mdx new file mode 100644 index 0000000..e40db4e --- /dev/null +++ b/content/tech-docs/management-api/api/auth/auth_listPermissions.mdx @@ -0,0 +1,15 @@ +--- +title: List permissions and roles +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/auth/auth_renewToken.mdx b/content/tech-docs/management-api/api/auth/auth_renewToken.mdx new file mode 100644 index 0000000..9c1b3ce --- /dev/null +++ b/content/tech-docs/management-api/api/auth/auth_renewToken.mdx @@ -0,0 +1,15 @@ +--- +title: Get renew token +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/auth/auth_signinWithIdp.mdx b/content/tech-docs/management-api/api/auth/auth_signinWithIdp.mdx new file mode 100644 index 0000000..a207f14 --- /dev/null +++ b/content/tech-docs/management-api/api/auth/auth_signinWithIdp.mdx @@ -0,0 +1,15 @@ +--- +title: Sign in with identity provider +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/auth/meta.json b/content/tech-docs/management-api/api/auth/meta.json new file mode 100644 index 0000000..bbc3dd6 --- /dev/null +++ b/content/tech-docs/management-api/api/auth/meta.json @@ -0,0 +1,10 @@ +{ + "title": "Auth", + "description": "Authentication & Session", + "pages": [ + "auth_signinWithIdp", + "auth_extendSession", + "auth_renewToken", + "auth_listPermissions" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/code-lists/codeLists_addCodes.mdx b/content/tech-docs/management-api/api/code-lists/codeLists_addCodes.mdx new file mode 100644 index 0000000..00312a4 --- /dev/null +++ b/content/tech-docs/management-api/api/code-lists/codeLists_addCodes.mdx @@ -0,0 +1,15 @@ +--- +title: Add codes to a study code list +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/code-lists/codeLists_getCodes.mdx b/content/tech-docs/management-api/api/code-lists/codeLists_getCodes.mdx new file mode 100644 index 0000000..f3cb6d5 --- /dev/null +++ b/content/tech-docs/management-api/api/code-lists/codeLists_getCodes.mdx @@ -0,0 +1,15 @@ +--- +title: List codes of a study code list +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/code-lists/codeLists_getListKeys.mdx b/content/tech-docs/management-api/api/code-lists/codeLists_getListKeys.mdx new file mode 100644 index 0000000..feac440 --- /dev/null +++ b/content/tech-docs/management-api/api/code-lists/codeLists_getListKeys.mdx @@ -0,0 +1,15 @@ +--- +title: List code list keys +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/code-lists/codeLists_removeCode.mdx b/content/tech-docs/management-api/api/code-lists/codeLists_removeCode.mdx new file mode 100644 index 0000000..61b75c4 --- /dev/null +++ b/content/tech-docs/management-api/api/code-lists/codeLists_removeCode.mdx @@ -0,0 +1,15 @@ +--- +title: Remove a code from a study code list +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/code-lists/meta.json b/content/tech-docs/management-api/api/code-lists/meta.json new file mode 100644 index 0000000..dc8dd92 --- /dev/null +++ b/content/tech-docs/management-api/api/code-lists/meta.json @@ -0,0 +1,10 @@ +{ + "title": "Code lists", + "description": "Study code lists", + "pages": [ + "codeLists_getListKeys", + "codeLists_getCodes", + "codeLists_addCodes", + "codeLists_removeCode" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/files/dataExplorer_deleteFile.mdx b/content/tech-docs/management-api/api/files/dataExplorer_deleteFile.mdx new file mode 100644 index 0000000..33a8be7 --- /dev/null +++ b/content/tech-docs/management-api/api/files/dataExplorer_deleteFile.mdx @@ -0,0 +1,15 @@ +--- +title: Delete file +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/files/dataExplorer_getFile.mdx b/content/tech-docs/management-api/api/files/dataExplorer_getFile.mdx new file mode 100644 index 0000000..a8b00bb --- /dev/null +++ b/content/tech-docs/management-api/api/files/dataExplorer_getFile.mdx @@ -0,0 +1,15 @@ +--- +title: Get file by ID +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/files/dataExplorer_listFiles.mdx b/content/tech-docs/management-api/api/files/dataExplorer_listFiles.mdx new file mode 100644 index 0000000..5165422 --- /dev/null +++ b/content/tech-docs/management-api/api/files/dataExplorer_listFiles.mdx @@ -0,0 +1,15 @@ +--- +title: List files +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/files/meta.json b/content/tech-docs/management-api/api/files/meta.json new file mode 100644 index 0000000..489cf89 --- /dev/null +++ b/content/tech-docs/management-api/api/files/meta.json @@ -0,0 +1,9 @@ +{ + "title": "Files", + "description": "File management for studies", + "pages": [ + "dataExplorer_listFiles", + "dataExplorer_getFile", + "dataExplorer_deleteFile" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/index.mdx b/content/tech-docs/management-api/api/index.mdx new file mode 100644 index 0000000..d823d13 --- /dev/null +++ b/content/tech-docs/management-api/api/index.mdx @@ -0,0 +1,270 @@ +--- +title: Management API +description: Endpoints for management authentication, user management, study administration, messaging, and participant administration. +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + +### Auth + +Authentication & Session + + +Sign in with identity provider POST} /> +Extend session POST} /> +Get renew token GET} /> +List permissions and roles GET} /> + + +### Studies + +Study management + + +List all studies GET} /> +Create a new study POST} /> +Get study configuration by key GET} /> +Delete a study by key DELETE} /> +Export study configuration, surveys, and rules GET} /> +Update default status of a study PUT} /> +Update status of a study PUT} /> +Update display properties of a study PUT} /> +Update file upload configuration of a study PUT} /> + + +### Surveys + +Survey management + + +List survey infos for a study GET} /> +Create a new survey in a study POST} /> +Get latest survey by key GET} /> +Update survey definition POST} /> +Unpublish a survey POST} /> +List all survey versions GET} /> +Get a specific survey version GET} /> +Delete a survey version DELETE} /> + + +### Study rules + +Study rules + + +Get current published study rules GET} /> +Publish a new version of study rules POST} /> +List all study rules versions GET} /> +Get a study rules version by ID GET} /> +Delete a study rules version DELETE} /> + + +### Study variables + +Study variables + + +List study variables GET} /> +Create a new study variable POST} /> +Get a study variable by key GET} /> +Delete a study variable DELETE} /> +Update study variable definition PUT} /> +Update study variable value PUT} /> + + +### Study counters + +Study counters + + +List all study counter values GET} /> +Set a study counter value for scope POST} /> +Remove a study counter value DELETE} /> +Increment a study counter value PUT} /> + + +### Study permissions + +Permissions for a study + + +List study permissions GET} /> +Add a study permission POST} /> +Remove a study permission DELETE} /> + + +### Notifications + +Notification subscriptions + + +List notification subscriptions GET} /> +Update notification subscriptions PUT} /> + + +### Code lists + +Study code lists + + +List code list keys GET} /> +List codes of a study code list GET} /> +Add codes to a study code list POST} /> +Remove a code from a study code list DELETE} /> + + +### Participants + +Participant operations + + +Create virtual participant POST} /> +List participant responses GET} /> +Submit participant response POST} /> +Submit participant event POST} /> +Merge participants POST} /> +Edit participant PUT} /> +Get participants count GET} /> +Start participants export task POST} /> +Get participants export task status GET} /> +Get participants export task result GET} /> +List participants GET} /> +Get participant GET} /> + + +### Reports + +Participant reports + + +Submit participant report POST} /> +Update participant report PUT} /> +Get report items count GET} /> +Start report export task POST} /> +Get report export task status GET} /> +Get report export task result GET} /> +List available report keys GET} /> +List reports GET} /> +Get report by ID GET} /> + + +### Responses + +Response exports & queries + + +List survey info GET} /> +Get responses count GET} /> +Start responses export task POST} /> +Get responses export task status GET} /> +Get responses export task result GET} /> +List daily response exports GET} /> +Get daily response export by ID GET} /> +List confidential response exports GET} /> +Start confidential responses export task POST} /> +Get confidential response export by ID GET} /> +List survey responses GET} /> +Delete survey responses DELETE} /> +Get survey response by ID GET} /> +Delete survey response DELETE} /> + + +### Files + +File management for studies + + +List files GET} /> +Get file by ID GET} /> +Delete file DELETE} /> + + +### Messaging + +Messaging templates & scheduled emails + + +List global email templates GET} /> +Save global email template POST} /> +Get global email template by type GET} /> +Delete global email template DELETE} /> +List all study email templates GET} /> +List study email templates GET} /> +Save study email template POST} /> +Get study email template by type GET} /> +Delete study email template DELETE} /> +Save SMS template POST} /> +Get SMS template by type GET} /> +List scheduled emails GET} /> +Save scheduled email POST} /> +Get scheduled email GET} /> +Delete scheduled email DELETE} /> + + +### User management + +Management user accounts and permissions + + +List management users GET} /> +Get management user GET} /> +Delete management user DELETE} /> +List user permissions GET} /> +Add permission to user POST} /> +Delete user permission DELETE} /> +Update permission limiter PUT} /> +Request participant user deletion POST} /> + + +### Service accounts + +Service account management + + +List service accounts GET} /> +Create service account POST} /> +Get service account GET} /> +Delete service account DELETE} /> +Update service account PUT} /> +List service account API keys GET} /> +Create service account API key POST} /> +Delete service account API key DELETE} /> +List service account permissions GET} /> +Add permission to service account POST} /> +Delete service account permission DELETE} /> +Update service account permission limiter PUT} /> + + +### App roles + +App role templates & assignments + + +List app roles for user GET} /> +Add app role to user POST} /> +Remove app role from user DELETE} /> +List app role templates GET} /> +Create app role template POST} /> +Get app role template GET} /> +Update app role template PUT} /> +Delete app role template DELETE} /> +Delete app role templates for app DELETE} /> +List app roles GET} /> +Delete app roles for app DELETE} /> + + +### Actions + +Run actions on participants + + +Run actions on a participant POST} /> +Run actions on multiple participants POST} /> +Get actions task status GET} /> +Get actions task result GET} /> +Run actions on previous responses for a participant POST} /> +Run actions on previous responses for multiple participants POST} /> +Get previous-responses actions task status GET} /> +Get previous-responses actions task result GET} /> + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_createScheduledEmail.mdx b/content/tech-docs/management-api/api/messaging/messaging_createScheduledEmail.mdx new file mode 100644 index 0000000..fe37179 --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_createScheduledEmail.mdx @@ -0,0 +1,15 @@ +--- +title: Save scheduled email +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_deleteGlobalEmailTemplate.mdx b/content/tech-docs/management-api/api/messaging/messaging_deleteGlobalEmailTemplate.mdx new file mode 100644 index 0000000..e85e98d --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_deleteGlobalEmailTemplate.mdx @@ -0,0 +1,15 @@ +--- +title: Delete global email template +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_deleteScheduledEmail.mdx b/content/tech-docs/management-api/api/messaging/messaging_deleteScheduledEmail.mdx new file mode 100644 index 0000000..fdba593 --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_deleteScheduledEmail.mdx @@ -0,0 +1,15 @@ +--- +title: Delete scheduled email +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_deleteStudyEmailTemplate.mdx b/content/tech-docs/management-api/api/messaging/messaging_deleteStudyEmailTemplate.mdx new file mode 100644 index 0000000..21ae082 --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_deleteStudyEmailTemplate.mdx @@ -0,0 +1,15 @@ +--- +title: Delete study email template +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_getGlobalEmailTemplate.mdx b/content/tech-docs/management-api/api/messaging/messaging_getGlobalEmailTemplate.mdx new file mode 100644 index 0000000..9c2bfb6 --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_getGlobalEmailTemplate.mdx @@ -0,0 +1,15 @@ +--- +title: Get global email template by type +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_getScheduledEmail.mdx b/content/tech-docs/management-api/api/messaging/messaging_getScheduledEmail.mdx new file mode 100644 index 0000000..a9787e6 --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_getScheduledEmail.mdx @@ -0,0 +1,15 @@ +--- +title: Get scheduled email +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_getSmsTemplate.mdx b/content/tech-docs/management-api/api/messaging/messaging_getSmsTemplate.mdx new file mode 100644 index 0000000..10613ba --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_getSmsTemplate.mdx @@ -0,0 +1,15 @@ +--- +title: Get SMS template by type +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_getStudyEmailTemplate.mdx b/content/tech-docs/management-api/api/messaging/messaging_getStudyEmailTemplate.mdx new file mode 100644 index 0000000..045af9d --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_getStudyEmailTemplate.mdx @@ -0,0 +1,15 @@ +--- +title: Get study email template by type +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_listAllStudyEmailTemplates.mdx b/content/tech-docs/management-api/api/messaging/messaging_listAllStudyEmailTemplates.mdx new file mode 100644 index 0000000..33af81b --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_listAllStudyEmailTemplates.mdx @@ -0,0 +1,15 @@ +--- +title: List all study email templates +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_listGlobalEmailTemplates.mdx b/content/tech-docs/management-api/api/messaging/messaging_listGlobalEmailTemplates.mdx new file mode 100644 index 0000000..08e2ced --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_listGlobalEmailTemplates.mdx @@ -0,0 +1,15 @@ +--- +title: List global email templates +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_listScheduledEmails.mdx b/content/tech-docs/management-api/api/messaging/messaging_listScheduledEmails.mdx new file mode 100644 index 0000000..4183235 --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_listScheduledEmails.mdx @@ -0,0 +1,15 @@ +--- +title: List scheduled emails +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_listStudyEmailTemplates.mdx b/content/tech-docs/management-api/api/messaging/messaging_listStudyEmailTemplates.mdx new file mode 100644 index 0000000..585e565 --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_listStudyEmailTemplates.mdx @@ -0,0 +1,15 @@ +--- +title: List study email templates +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_saveGlobalEmailTemplate.mdx b/content/tech-docs/management-api/api/messaging/messaging_saveGlobalEmailTemplate.mdx new file mode 100644 index 0000000..86f8667 --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_saveGlobalEmailTemplate.mdx @@ -0,0 +1,15 @@ +--- +title: Save global email template +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_saveSmsTemplate.mdx b/content/tech-docs/management-api/api/messaging/messaging_saveSmsTemplate.mdx new file mode 100644 index 0000000..fc42cad --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_saveSmsTemplate.mdx @@ -0,0 +1,15 @@ +--- +title: Save SMS template +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/messaging_saveStudyEmailTemplate.mdx b/content/tech-docs/management-api/api/messaging/messaging_saveStudyEmailTemplate.mdx new file mode 100644 index 0000000..4a750db --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/messaging_saveStudyEmailTemplate.mdx @@ -0,0 +1,15 @@ +--- +title: Save study email template +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/messaging/meta.json b/content/tech-docs/management-api/api/messaging/meta.json new file mode 100644 index 0000000..cc37da8 --- /dev/null +++ b/content/tech-docs/management-api/api/messaging/meta.json @@ -0,0 +1,21 @@ +{ + "title": "Messaging", + "description": "Messaging templates & scheduled emails", + "pages": [ + "messaging_listGlobalEmailTemplates", + "messaging_saveGlobalEmailTemplate", + "messaging_getGlobalEmailTemplate", + "messaging_deleteGlobalEmailTemplate", + "messaging_listAllStudyEmailTemplates", + "messaging_listStudyEmailTemplates", + "messaging_saveStudyEmailTemplate", + "messaging_getStudyEmailTemplate", + "messaging_deleteStudyEmailTemplate", + "messaging_saveSmsTemplate", + "messaging_getSmsTemplate", + "messaging_listScheduledEmails", + "messaging_createScheduledEmail", + "messaging_getScheduledEmail", + "messaging_deleteScheduledEmail" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/meta.json b/content/tech-docs/management-api/api/meta.json new file mode 100644 index 0000000..871d473 --- /dev/null +++ b/content/tech-docs/management-api/api/meta.json @@ -0,0 +1,22 @@ +{ + "pages": [ + "auth", + "studies", + "surveys", + "study-rules", + "study-variables", + "study-counters", + "study-permissions", + "notifications", + "code-lists", + "participants", + "reports", + "responses", + "files", + "messaging", + "user-management", + "service-accounts", + "app-roles", + "actions" + ] +} diff --git a/content/tech-docs/management-api/api/notifications/meta.json b/content/tech-docs/management-api/api/notifications/meta.json new file mode 100644 index 0000000..d3757b7 --- /dev/null +++ b/content/tech-docs/management-api/api/notifications/meta.json @@ -0,0 +1,8 @@ +{ + "title": "Notifications", + "description": "Notification subscriptions", + "pages": [ + "notifications_getSubscriptions", + "notifications_updateSubscriptions" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/notifications/notifications_getSubscriptions.mdx b/content/tech-docs/management-api/api/notifications/notifications_getSubscriptions.mdx new file mode 100644 index 0000000..94d3f08 --- /dev/null +++ b/content/tech-docs/management-api/api/notifications/notifications_getSubscriptions.mdx @@ -0,0 +1,15 @@ +--- +title: List notification subscriptions +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/notifications/notifications_updateSubscriptions.mdx b/content/tech-docs/management-api/api/notifications/notifications_updateSubscriptions.mdx new file mode 100644 index 0000000..6e202a3 --- /dev/null +++ b/content/tech-docs/management-api/api/notifications/notifications_updateSubscriptions.mdx @@ -0,0 +1,15 @@ +--- +title: Update notification subscriptions +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/dataExplorer_getParticipant.mdx b/content/tech-docs/management-api/api/participants/dataExplorer_getParticipant.mdx new file mode 100644 index 0000000..4cdf299 --- /dev/null +++ b/content/tech-docs/management-api/api/participants/dataExplorer_getParticipant.mdx @@ -0,0 +1,15 @@ +--- +title: Get participant +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/dataExplorer_listParticipants.mdx b/content/tech-docs/management-api/api/participants/dataExplorer_listParticipants.mdx new file mode 100644 index 0000000..62af283 --- /dev/null +++ b/content/tech-docs/management-api/api/participants/dataExplorer_listParticipants.mdx @@ -0,0 +1,15 @@ +--- +title: List participants +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/dataExporter_generateParticipantsExport.mdx b/content/tech-docs/management-api/api/participants/dataExporter_generateParticipantsExport.mdx new file mode 100644 index 0000000..36ad307 --- /dev/null +++ b/content/tech-docs/management-api/api/participants/dataExporter_generateParticipantsExport.mdx @@ -0,0 +1,15 @@ +--- +title: Start participants export task +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/dataExporter_getParticipantsCount.mdx b/content/tech-docs/management-api/api/participants/dataExporter_getParticipantsCount.mdx new file mode 100644 index 0000000..5ec503a --- /dev/null +++ b/content/tech-docs/management-api/api/participants/dataExporter_getParticipantsCount.mdx @@ -0,0 +1,15 @@ +--- +title: Get participants count +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/dataExporter_getParticipantsTaskResult.mdx b/content/tech-docs/management-api/api/participants/dataExporter_getParticipantsTaskResult.mdx new file mode 100644 index 0000000..3f996dc --- /dev/null +++ b/content/tech-docs/management-api/api/participants/dataExporter_getParticipantsTaskResult.mdx @@ -0,0 +1,15 @@ +--- +title: Get participants export task result +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/dataExporter_getParticipantsTaskStatus.mdx b/content/tech-docs/management-api/api/participants/dataExporter_getParticipantsTaskStatus.mdx new file mode 100644 index 0000000..a95534b --- /dev/null +++ b/content/tech-docs/management-api/api/participants/dataExporter_getParticipantsTaskStatus.mdx @@ -0,0 +1,15 @@ +--- +title: Get participants export task status +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/meta.json b/content/tech-docs/management-api/api/participants/meta.json new file mode 100644 index 0000000..d5c5af4 --- /dev/null +++ b/content/tech-docs/management-api/api/participants/meta.json @@ -0,0 +1,18 @@ +{ + "title": "Participants", + "description": "Participant operations", + "pages": [ + "participants_createVirtualParticipant", + "participants_listParticipantResponses", + "participants_submitParticipantResponse", + "participants_submitParticipantEvent", + "participants_mergeParticipants", + "participants_editParticipant", + "dataExporter_getParticipantsCount", + "dataExporter_generateParticipantsExport", + "dataExporter_getParticipantsTaskStatus", + "dataExporter_getParticipantsTaskResult", + "dataExplorer_listParticipants", + "dataExplorer_getParticipant" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/participants_createVirtualParticipant.mdx b/content/tech-docs/management-api/api/participants/participants_createVirtualParticipant.mdx new file mode 100644 index 0000000..0ae4ea5 --- /dev/null +++ b/content/tech-docs/management-api/api/participants/participants_createVirtualParticipant.mdx @@ -0,0 +1,15 @@ +--- +title: Create virtual participant +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/participants_editParticipant.mdx b/content/tech-docs/management-api/api/participants/participants_editParticipant.mdx new file mode 100644 index 0000000..654ddfd --- /dev/null +++ b/content/tech-docs/management-api/api/participants/participants_editParticipant.mdx @@ -0,0 +1,15 @@ +--- +title: Edit participant +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/participants_listParticipantResponses.mdx b/content/tech-docs/management-api/api/participants/participants_listParticipantResponses.mdx new file mode 100644 index 0000000..fafe4b0 --- /dev/null +++ b/content/tech-docs/management-api/api/participants/participants_listParticipantResponses.mdx @@ -0,0 +1,15 @@ +--- +title: List participant responses +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/participants_mergeParticipants.mdx b/content/tech-docs/management-api/api/participants/participants_mergeParticipants.mdx new file mode 100644 index 0000000..d7967b7 --- /dev/null +++ b/content/tech-docs/management-api/api/participants/participants_mergeParticipants.mdx @@ -0,0 +1,15 @@ +--- +title: Merge participants +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/participants_submitParticipantEvent.mdx b/content/tech-docs/management-api/api/participants/participants_submitParticipantEvent.mdx new file mode 100644 index 0000000..9f1b711 --- /dev/null +++ b/content/tech-docs/management-api/api/participants/participants_submitParticipantEvent.mdx @@ -0,0 +1,15 @@ +--- +title: Submit participant event +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/participants/participants_submitParticipantResponse.mdx b/content/tech-docs/management-api/api/participants/participants_submitParticipantResponse.mdx new file mode 100644 index 0000000..1a1061f --- /dev/null +++ b/content/tech-docs/management-api/api/participants/participants_submitParticipantResponse.mdx @@ -0,0 +1,15 @@ +--- +title: Submit participant response +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/reports/dataExplorer_getReport.mdx b/content/tech-docs/management-api/api/reports/dataExplorer_getReport.mdx new file mode 100644 index 0000000..a4e6d10 --- /dev/null +++ b/content/tech-docs/management-api/api/reports/dataExplorer_getReport.mdx @@ -0,0 +1,15 @@ +--- +title: Get report by ID +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/reports/dataExplorer_listReportKeys.mdx b/content/tech-docs/management-api/api/reports/dataExplorer_listReportKeys.mdx new file mode 100644 index 0000000..9b19db8 --- /dev/null +++ b/content/tech-docs/management-api/api/reports/dataExplorer_listReportKeys.mdx @@ -0,0 +1,15 @@ +--- +title: List available report keys +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/reports/dataExplorer_listReports.mdx b/content/tech-docs/management-api/api/reports/dataExplorer_listReports.mdx new file mode 100644 index 0000000..df65a57 --- /dev/null +++ b/content/tech-docs/management-api/api/reports/dataExplorer_listReports.mdx @@ -0,0 +1,15 @@ +--- +title: List reports +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/reports/dataExporter_generateReportsExport.mdx b/content/tech-docs/management-api/api/reports/dataExporter_generateReportsExport.mdx new file mode 100644 index 0000000..05524a5 --- /dev/null +++ b/content/tech-docs/management-api/api/reports/dataExporter_generateReportsExport.mdx @@ -0,0 +1,15 @@ +--- +title: Start report export task +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/reports/dataExporter_getReportsCount.mdx b/content/tech-docs/management-api/api/reports/dataExporter_getReportsCount.mdx new file mode 100644 index 0000000..def46b1 --- /dev/null +++ b/content/tech-docs/management-api/api/reports/dataExporter_getReportsCount.mdx @@ -0,0 +1,15 @@ +--- +title: Get report items count +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/reports/dataExporter_getReportsTaskResult.mdx b/content/tech-docs/management-api/api/reports/dataExporter_getReportsTaskResult.mdx new file mode 100644 index 0000000..a56e637 --- /dev/null +++ b/content/tech-docs/management-api/api/reports/dataExporter_getReportsTaskResult.mdx @@ -0,0 +1,15 @@ +--- +title: Get report export task result +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/reports/dataExporter_getReportsTaskStatus.mdx b/content/tech-docs/management-api/api/reports/dataExporter_getReportsTaskStatus.mdx new file mode 100644 index 0000000..0874db5 --- /dev/null +++ b/content/tech-docs/management-api/api/reports/dataExporter_getReportsTaskStatus.mdx @@ -0,0 +1,15 @@ +--- +title: Get report export task status +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/reports/meta.json b/content/tech-docs/management-api/api/reports/meta.json new file mode 100644 index 0000000..21b8647 --- /dev/null +++ b/content/tech-docs/management-api/api/reports/meta.json @@ -0,0 +1,15 @@ +{ + "title": "Reports", + "description": "Participant reports", + "pages": [ + "participants_submitParticipantReport", + "participants_updateParticipantReport", + "dataExporter_getReportsCount", + "dataExporter_generateReportsExport", + "dataExporter_getReportsTaskStatus", + "dataExporter_getReportsTaskResult", + "dataExplorer_listReportKeys", + "dataExplorer_listReports", + "dataExplorer_getReport" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/reports/participants_submitParticipantReport.mdx b/content/tech-docs/management-api/api/reports/participants_submitParticipantReport.mdx new file mode 100644 index 0000000..12faff4 --- /dev/null +++ b/content/tech-docs/management-api/api/reports/participants_submitParticipantReport.mdx @@ -0,0 +1,15 @@ +--- +title: Submit participant report +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/reports/participants_updateParticipantReport.mdx b/content/tech-docs/management-api/api/reports/participants_updateParticipantReport.mdx new file mode 100644 index 0000000..bd66c71 --- /dev/null +++ b/content/tech-docs/management-api/api/reports/participants_updateParticipantReport.mdx @@ -0,0 +1,15 @@ +--- +title: Update participant report +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExplorer_deleteResponse.mdx b/content/tech-docs/management-api/api/responses/dataExplorer_deleteResponse.mdx new file mode 100644 index 0000000..f5a1dc1 --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExplorer_deleteResponse.mdx @@ -0,0 +1,15 @@ +--- +title: Delete survey response +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExplorer_deleteResponses.mdx b/content/tech-docs/management-api/api/responses/dataExplorer_deleteResponses.mdx new file mode 100644 index 0000000..afb70b0 --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExplorer_deleteResponses.mdx @@ -0,0 +1,15 @@ +--- +title: Delete survey responses +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExplorer_getResponse.mdx b/content/tech-docs/management-api/api/responses/dataExplorer_getResponse.mdx new file mode 100644 index 0000000..6f35848 --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExplorer_getResponse.mdx @@ -0,0 +1,15 @@ +--- +title: Get survey response by ID +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExplorer_listResponses.mdx b/content/tech-docs/management-api/api/responses/dataExplorer_listResponses.mdx new file mode 100644 index 0000000..716dd52 --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExplorer_listResponses.mdx @@ -0,0 +1,15 @@ +--- +title: List survey responses +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExporter_generateResponsesExport.mdx b/content/tech-docs/management-api/api/responses/dataExporter_generateResponsesExport.mdx new file mode 100644 index 0000000..be71cb9 --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExporter_generateResponsesExport.mdx @@ -0,0 +1,15 @@ +--- +title: Start responses export task +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExporter_getConfidentialResponseExport.mdx b/content/tech-docs/management-api/api/responses/dataExporter_getConfidentialResponseExport.mdx new file mode 100644 index 0000000..a540340 --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExporter_getConfidentialResponseExport.mdx @@ -0,0 +1,15 @@ +--- +title: Get confidential response export by ID +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExporter_getConfidentialResponses.mdx b/content/tech-docs/management-api/api/responses/dataExporter_getConfidentialResponses.mdx new file mode 100644 index 0000000..d8e874f --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExporter_getConfidentialResponses.mdx @@ -0,0 +1,15 @@ +--- +title: Start confidential responses export task +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExporter_getDailyResponseExport.mdx b/content/tech-docs/management-api/api/responses/dataExporter_getDailyResponseExport.mdx new file mode 100644 index 0000000..08475e3 --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExporter_getDailyResponseExport.mdx @@ -0,0 +1,15 @@ +--- +title: Get daily response export by ID +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExporter_getResponsesCount.mdx b/content/tech-docs/management-api/api/responses/dataExporter_getResponsesCount.mdx new file mode 100644 index 0000000..3f980f8 --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExporter_getResponsesCount.mdx @@ -0,0 +1,15 @@ +--- +title: Get responses count +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExporter_getResponsesTaskResult.mdx b/content/tech-docs/management-api/api/responses/dataExporter_getResponsesTaskResult.mdx new file mode 100644 index 0000000..51bf4c6 --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExporter_getResponsesTaskResult.mdx @@ -0,0 +1,15 @@ +--- +title: Get responses export task result +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExporter_getResponsesTaskStatus.mdx b/content/tech-docs/management-api/api/responses/dataExporter_getResponsesTaskStatus.mdx new file mode 100644 index 0000000..da338ee --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExporter_getResponsesTaskStatus.mdx @@ -0,0 +1,15 @@ +--- +title: Get responses export task status +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExporter_getSurveyInfo.mdx b/content/tech-docs/management-api/api/responses/dataExporter_getSurveyInfo.mdx new file mode 100644 index 0000000..9730667 --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExporter_getSurveyInfo.mdx @@ -0,0 +1,15 @@ +--- +title: List survey info +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExporter_listConfidentialResponseExports.mdx b/content/tech-docs/management-api/api/responses/dataExporter_listConfidentialResponseExports.mdx new file mode 100644 index 0000000..479c279 --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExporter_listConfidentialResponseExports.mdx @@ -0,0 +1,15 @@ +--- +title: List confidential response exports +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/dataExporter_listDailyResponseExports.mdx b/content/tech-docs/management-api/api/responses/dataExporter_listDailyResponseExports.mdx new file mode 100644 index 0000000..25aba6b --- /dev/null +++ b/content/tech-docs/management-api/api/responses/dataExporter_listDailyResponseExports.mdx @@ -0,0 +1,15 @@ +--- +title: List daily response exports +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/responses/meta.json b/content/tech-docs/management-api/api/responses/meta.json new file mode 100644 index 0000000..1bf5a2b --- /dev/null +++ b/content/tech-docs/management-api/api/responses/meta.json @@ -0,0 +1,20 @@ +{ + "title": "Responses", + "description": "Response exports & queries", + "pages": [ + "dataExporter_getSurveyInfo", + "dataExporter_getResponsesCount", + "dataExporter_generateResponsesExport", + "dataExporter_getResponsesTaskStatus", + "dataExporter_getResponsesTaskResult", + "dataExporter_listDailyResponseExports", + "dataExporter_getDailyResponseExport", + "dataExporter_listConfidentialResponseExports", + "dataExporter_getConfidentialResponses", + "dataExporter_getConfidentialResponseExport", + "dataExplorer_listResponses", + "dataExplorer_deleteResponses", + "dataExplorer_getResponse", + "dataExplorer_deleteResponse" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/meta.json b/content/tech-docs/management-api/api/service-accounts/meta.json new file mode 100644 index 0000000..3a54011 --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/meta.json @@ -0,0 +1,18 @@ +{ + "title": "Service accounts", + "description": "Service account management", + "pages": [ + "userManagement_listServiceAccounts", + "userManagement_createServiceAccount", + "userManagement_getServiceAccount", + "userManagement_deleteServiceAccount", + "userManagement_updateServiceAccount", + "userManagement_listServiceAccountAPIKeys", + "userManagement_createServiceAccountAPIKey", + "userManagement_deleteServiceAccountAPIKey", + "userManagement_listServiceAccountPermissions", + "userManagement_addPermissionToServiceAccount", + "userManagement_deleteServiceAccountPermission", + "userManagement_updateServiceAccountPermissionLimiter" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/userManagement_addPermissionToServiceAccount.mdx b/content/tech-docs/management-api/api/service-accounts/userManagement_addPermissionToServiceAccount.mdx new file mode 100644 index 0000000..10efc78 --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/userManagement_addPermissionToServiceAccount.mdx @@ -0,0 +1,15 @@ +--- +title: Add permission to service account +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/userManagement_createServiceAccount.mdx b/content/tech-docs/management-api/api/service-accounts/userManagement_createServiceAccount.mdx new file mode 100644 index 0000000..47d903b --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/userManagement_createServiceAccount.mdx @@ -0,0 +1,15 @@ +--- +title: Create service account +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/userManagement_createServiceAccountAPIKey.mdx b/content/tech-docs/management-api/api/service-accounts/userManagement_createServiceAccountAPIKey.mdx new file mode 100644 index 0000000..579ee41 --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/userManagement_createServiceAccountAPIKey.mdx @@ -0,0 +1,15 @@ +--- +title: Create service account API key +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/userManagement_deleteServiceAccount.mdx b/content/tech-docs/management-api/api/service-accounts/userManagement_deleteServiceAccount.mdx new file mode 100644 index 0000000..98c33c9 --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/userManagement_deleteServiceAccount.mdx @@ -0,0 +1,15 @@ +--- +title: Delete service account +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/userManagement_deleteServiceAccountAPIKey.mdx b/content/tech-docs/management-api/api/service-accounts/userManagement_deleteServiceAccountAPIKey.mdx new file mode 100644 index 0000000..5c53adb --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/userManagement_deleteServiceAccountAPIKey.mdx @@ -0,0 +1,15 @@ +--- +title: Delete service account API key +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/userManagement_deleteServiceAccountPermission.mdx b/content/tech-docs/management-api/api/service-accounts/userManagement_deleteServiceAccountPermission.mdx new file mode 100644 index 0000000..763841d --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/userManagement_deleteServiceAccountPermission.mdx @@ -0,0 +1,15 @@ +--- +title: Delete service account permission +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/userManagement_getServiceAccount.mdx b/content/tech-docs/management-api/api/service-accounts/userManagement_getServiceAccount.mdx new file mode 100644 index 0000000..de0ee21 --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/userManagement_getServiceAccount.mdx @@ -0,0 +1,15 @@ +--- +title: Get service account +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/userManagement_listServiceAccountAPIKeys.mdx b/content/tech-docs/management-api/api/service-accounts/userManagement_listServiceAccountAPIKeys.mdx new file mode 100644 index 0000000..5d0010e --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/userManagement_listServiceAccountAPIKeys.mdx @@ -0,0 +1,15 @@ +--- +title: List service account API keys +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/userManagement_listServiceAccountPermissions.mdx b/content/tech-docs/management-api/api/service-accounts/userManagement_listServiceAccountPermissions.mdx new file mode 100644 index 0000000..d250c00 --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/userManagement_listServiceAccountPermissions.mdx @@ -0,0 +1,15 @@ +--- +title: List service account permissions +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/userManagement_listServiceAccounts.mdx b/content/tech-docs/management-api/api/service-accounts/userManagement_listServiceAccounts.mdx new file mode 100644 index 0000000..550404c --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/userManagement_listServiceAccounts.mdx @@ -0,0 +1,15 @@ +--- +title: List service accounts +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/userManagement_updateServiceAccount.mdx b/content/tech-docs/management-api/api/service-accounts/userManagement_updateServiceAccount.mdx new file mode 100644 index 0000000..413fe08 --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/userManagement_updateServiceAccount.mdx @@ -0,0 +1,15 @@ +--- +title: Update service account +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/service-accounts/userManagement_updateServiceAccountPermissionLimiter.mdx b/content/tech-docs/management-api/api/service-accounts/userManagement_updateServiceAccountPermissionLimiter.mdx new file mode 100644 index 0000000..95eea45 --- /dev/null +++ b/content/tech-docs/management-api/api/service-accounts/userManagement_updateServiceAccountPermissionLimiter.mdx @@ -0,0 +1,15 @@ +--- +title: Update service account permission limiter +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/studies/meta.json b/content/tech-docs/management-api/api/studies/meta.json new file mode 100644 index 0000000..cb63d70 --- /dev/null +++ b/content/tech-docs/management-api/api/studies/meta.json @@ -0,0 +1,15 @@ +{ + "title": "Studies", + "description": "Study management", + "pages": [ + "studies_listStudies", + "studies_createStudy", + "studies_getStudy", + "studies_deleteStudy", + "studies_exportConfig", + "studies_updateIsDefault", + "studies_updateStatus", + "studies_updateDisplayProps", + "studies_updateFileUploadRule" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/studies/studies_createStudy.mdx b/content/tech-docs/management-api/api/studies/studies_createStudy.mdx new file mode 100644 index 0000000..7a5134c --- /dev/null +++ b/content/tech-docs/management-api/api/studies/studies_createStudy.mdx @@ -0,0 +1,15 @@ +--- +title: Create a new study +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/studies/studies_deleteStudy.mdx b/content/tech-docs/management-api/api/studies/studies_deleteStudy.mdx new file mode 100644 index 0000000..0ad41a9 --- /dev/null +++ b/content/tech-docs/management-api/api/studies/studies_deleteStudy.mdx @@ -0,0 +1,15 @@ +--- +title: Delete a study by key +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/studies/studies_exportConfig.mdx b/content/tech-docs/management-api/api/studies/studies_exportConfig.mdx new file mode 100644 index 0000000..fe57c03 --- /dev/null +++ b/content/tech-docs/management-api/api/studies/studies_exportConfig.mdx @@ -0,0 +1,15 @@ +--- +title: Export study configuration, surveys, and rules +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/studies/studies_getStudy.mdx b/content/tech-docs/management-api/api/studies/studies_getStudy.mdx new file mode 100644 index 0000000..9690a17 --- /dev/null +++ b/content/tech-docs/management-api/api/studies/studies_getStudy.mdx @@ -0,0 +1,15 @@ +--- +title: Get study configuration by key +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/studies/studies_listStudies.mdx b/content/tech-docs/management-api/api/studies/studies_listStudies.mdx new file mode 100644 index 0000000..5dc10ce --- /dev/null +++ b/content/tech-docs/management-api/api/studies/studies_listStudies.mdx @@ -0,0 +1,15 @@ +--- +title: List all studies +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/studies/studies_updateDisplayProps.mdx b/content/tech-docs/management-api/api/studies/studies_updateDisplayProps.mdx new file mode 100644 index 0000000..2ca1b08 --- /dev/null +++ b/content/tech-docs/management-api/api/studies/studies_updateDisplayProps.mdx @@ -0,0 +1,15 @@ +--- +title: Update display properties of a study +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/studies/studies_updateFileUploadRule.mdx b/content/tech-docs/management-api/api/studies/studies_updateFileUploadRule.mdx new file mode 100644 index 0000000..abb2741 --- /dev/null +++ b/content/tech-docs/management-api/api/studies/studies_updateFileUploadRule.mdx @@ -0,0 +1,15 @@ +--- +title: Update file upload configuration of a study +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/studies/studies_updateIsDefault.mdx b/content/tech-docs/management-api/api/studies/studies_updateIsDefault.mdx new file mode 100644 index 0000000..6943fd0 --- /dev/null +++ b/content/tech-docs/management-api/api/studies/studies_updateIsDefault.mdx @@ -0,0 +1,15 @@ +--- +title: Update default status of a study +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/studies/studies_updateStatus.mdx b/content/tech-docs/management-api/api/studies/studies_updateStatus.mdx new file mode 100644 index 0000000..a89878d --- /dev/null +++ b/content/tech-docs/management-api/api/studies/studies_updateStatus.mdx @@ -0,0 +1,15 @@ +--- +title: Update status of a study +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-counters/meta.json b/content/tech-docs/management-api/api/study-counters/meta.json new file mode 100644 index 0000000..59a58ac --- /dev/null +++ b/content/tech-docs/management-api/api/study-counters/meta.json @@ -0,0 +1,10 @@ +{ + "title": "Study counters", + "description": "Study counters", + "pages": [ + "studyCounters_listValues", + "studyCounters_saveValue", + "studyCounters_removeValue", + "studyCounters_incrementValue" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-counters/studyCounters_incrementValue.mdx b/content/tech-docs/management-api/api/study-counters/studyCounters_incrementValue.mdx new file mode 100644 index 0000000..c328008 --- /dev/null +++ b/content/tech-docs/management-api/api/study-counters/studyCounters_incrementValue.mdx @@ -0,0 +1,15 @@ +--- +title: Increment a study counter value +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-counters/studyCounters_listValues.mdx b/content/tech-docs/management-api/api/study-counters/studyCounters_listValues.mdx new file mode 100644 index 0000000..9df8ccc --- /dev/null +++ b/content/tech-docs/management-api/api/study-counters/studyCounters_listValues.mdx @@ -0,0 +1,15 @@ +--- +title: List all study counter values +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-counters/studyCounters_removeValue.mdx b/content/tech-docs/management-api/api/study-counters/studyCounters_removeValue.mdx new file mode 100644 index 0000000..ac41173 --- /dev/null +++ b/content/tech-docs/management-api/api/study-counters/studyCounters_removeValue.mdx @@ -0,0 +1,15 @@ +--- +title: Remove a study counter value +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-counters/studyCounters_saveValue.mdx b/content/tech-docs/management-api/api/study-counters/studyCounters_saveValue.mdx new file mode 100644 index 0000000..db2da90 --- /dev/null +++ b/content/tech-docs/management-api/api/study-counters/studyCounters_saveValue.mdx @@ -0,0 +1,15 @@ +--- +title: Set a study counter value for scope +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-permissions/meta.json b/content/tech-docs/management-api/api/study-permissions/meta.json new file mode 100644 index 0000000..b1af529 --- /dev/null +++ b/content/tech-docs/management-api/api/study-permissions/meta.json @@ -0,0 +1,9 @@ +{ + "title": "Study permissions", + "description": "Permissions for a study", + "pages": [ + "studyPermissions_listPermissions", + "studyPermissions_addPermission", + "studyPermissions_removePermission" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-permissions/studyPermissions_addPermission.mdx b/content/tech-docs/management-api/api/study-permissions/studyPermissions_addPermission.mdx new file mode 100644 index 0000000..b576cae --- /dev/null +++ b/content/tech-docs/management-api/api/study-permissions/studyPermissions_addPermission.mdx @@ -0,0 +1,15 @@ +--- +title: Add a study permission +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-permissions/studyPermissions_listPermissions.mdx b/content/tech-docs/management-api/api/study-permissions/studyPermissions_listPermissions.mdx new file mode 100644 index 0000000..1b0fffc --- /dev/null +++ b/content/tech-docs/management-api/api/study-permissions/studyPermissions_listPermissions.mdx @@ -0,0 +1,15 @@ +--- +title: List study permissions +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-permissions/studyPermissions_removePermission.mdx b/content/tech-docs/management-api/api/study-permissions/studyPermissions_removePermission.mdx new file mode 100644 index 0000000..84b41d4 --- /dev/null +++ b/content/tech-docs/management-api/api/study-permissions/studyPermissions_removePermission.mdx @@ -0,0 +1,15 @@ +--- +title: Remove a study permission +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-rules/meta.json b/content/tech-docs/management-api/api/study-rules/meta.json new file mode 100644 index 0000000..03fc9b2 --- /dev/null +++ b/content/tech-docs/management-api/api/study-rules/meta.json @@ -0,0 +1,11 @@ +{ + "title": "Study rules", + "description": "Study rules", + "pages": [ + "studyRules_getCurrent", + "studyRules_publishNewVersion", + "studyRules_listVersions", + "studyRules_getVersion", + "studyRules_deleteVersion" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-rules/studyRules_deleteVersion.mdx b/content/tech-docs/management-api/api/study-rules/studyRules_deleteVersion.mdx new file mode 100644 index 0000000..1f82a72 --- /dev/null +++ b/content/tech-docs/management-api/api/study-rules/studyRules_deleteVersion.mdx @@ -0,0 +1,15 @@ +--- +title: Delete a study rules version +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-rules/studyRules_getCurrent.mdx b/content/tech-docs/management-api/api/study-rules/studyRules_getCurrent.mdx new file mode 100644 index 0000000..c7ff670 --- /dev/null +++ b/content/tech-docs/management-api/api/study-rules/studyRules_getCurrent.mdx @@ -0,0 +1,15 @@ +--- +title: Get current published study rules +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-rules/studyRules_getVersion.mdx b/content/tech-docs/management-api/api/study-rules/studyRules_getVersion.mdx new file mode 100644 index 0000000..467a470 --- /dev/null +++ b/content/tech-docs/management-api/api/study-rules/studyRules_getVersion.mdx @@ -0,0 +1,15 @@ +--- +title: Get a study rules version by ID +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-rules/studyRules_listVersions.mdx b/content/tech-docs/management-api/api/study-rules/studyRules_listVersions.mdx new file mode 100644 index 0000000..6e61b6e --- /dev/null +++ b/content/tech-docs/management-api/api/study-rules/studyRules_listVersions.mdx @@ -0,0 +1,15 @@ +--- +title: List all study rules versions +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-rules/studyRules_publishNewVersion.mdx b/content/tech-docs/management-api/api/study-rules/studyRules_publishNewVersion.mdx new file mode 100644 index 0000000..6f8ee27 --- /dev/null +++ b/content/tech-docs/management-api/api/study-rules/studyRules_publishNewVersion.mdx @@ -0,0 +1,15 @@ +--- +title: Publish a new version of study rules +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-variables/meta.json b/content/tech-docs/management-api/api/study-variables/meta.json new file mode 100644 index 0000000..57506b9 --- /dev/null +++ b/content/tech-docs/management-api/api/study-variables/meta.json @@ -0,0 +1,12 @@ +{ + "title": "Study variables", + "description": "Study variables", + "pages": [ + "studyVariables_listVariables", + "studyVariables_addVariable", + "studyVariables_getVariable", + "studyVariables_deleteVariable", + "studyVariables_updateVariableDef", + "studyVariables_updateVariableValue" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-variables/studyVariables_addVariable.mdx b/content/tech-docs/management-api/api/study-variables/studyVariables_addVariable.mdx new file mode 100644 index 0000000..aef8197 --- /dev/null +++ b/content/tech-docs/management-api/api/study-variables/studyVariables_addVariable.mdx @@ -0,0 +1,15 @@ +--- +title: Create a new study variable +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-variables/studyVariables_deleteVariable.mdx b/content/tech-docs/management-api/api/study-variables/studyVariables_deleteVariable.mdx new file mode 100644 index 0000000..2ce2cb1 --- /dev/null +++ b/content/tech-docs/management-api/api/study-variables/studyVariables_deleteVariable.mdx @@ -0,0 +1,15 @@ +--- +title: Delete a study variable +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-variables/studyVariables_getVariable.mdx b/content/tech-docs/management-api/api/study-variables/studyVariables_getVariable.mdx new file mode 100644 index 0000000..e0b78bd --- /dev/null +++ b/content/tech-docs/management-api/api/study-variables/studyVariables_getVariable.mdx @@ -0,0 +1,15 @@ +--- +title: Get a study variable by key +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-variables/studyVariables_listVariables.mdx b/content/tech-docs/management-api/api/study-variables/studyVariables_listVariables.mdx new file mode 100644 index 0000000..a581ecd --- /dev/null +++ b/content/tech-docs/management-api/api/study-variables/studyVariables_listVariables.mdx @@ -0,0 +1,15 @@ +--- +title: List study variables +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-variables/studyVariables_updateVariableDef.mdx b/content/tech-docs/management-api/api/study-variables/studyVariables_updateVariableDef.mdx new file mode 100644 index 0000000..4a055f3 --- /dev/null +++ b/content/tech-docs/management-api/api/study-variables/studyVariables_updateVariableDef.mdx @@ -0,0 +1,15 @@ +--- +title: Update study variable definition +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/study-variables/studyVariables_updateVariableValue.mdx b/content/tech-docs/management-api/api/study-variables/studyVariables_updateVariableValue.mdx new file mode 100644 index 0000000..642e2b0 --- /dev/null +++ b/content/tech-docs/management-api/api/study-variables/studyVariables_updateVariableValue.mdx @@ -0,0 +1,15 @@ +--- +title: Update study variable value +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/surveys/meta.json b/content/tech-docs/management-api/api/surveys/meta.json new file mode 100644 index 0000000..1cacbe4 --- /dev/null +++ b/content/tech-docs/management-api/api/surveys/meta.json @@ -0,0 +1,14 @@ +{ + "title": "Surveys", + "description": "Survey management", + "pages": [ + "surveys_listSurveyInfos", + "surveys_createSurvey", + "surveys_getLatestSurvey", + "surveys_updateSurvey", + "surveys_unpublishSurvey", + "surveys_listSurveyVersions", + "surveys_getSurveyVersion", + "surveys_deleteSurveyVersion" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/surveys/surveys_createSurvey.mdx b/content/tech-docs/management-api/api/surveys/surveys_createSurvey.mdx new file mode 100644 index 0000000..90e5583 --- /dev/null +++ b/content/tech-docs/management-api/api/surveys/surveys_createSurvey.mdx @@ -0,0 +1,15 @@ +--- +title: Create a new survey in a study +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/surveys/surveys_deleteSurveyVersion.mdx b/content/tech-docs/management-api/api/surveys/surveys_deleteSurveyVersion.mdx new file mode 100644 index 0000000..b7314b7 --- /dev/null +++ b/content/tech-docs/management-api/api/surveys/surveys_deleteSurveyVersion.mdx @@ -0,0 +1,15 @@ +--- +title: Delete a survey version +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/surveys/surveys_getLatestSurvey.mdx b/content/tech-docs/management-api/api/surveys/surveys_getLatestSurvey.mdx new file mode 100644 index 0000000..d74261c --- /dev/null +++ b/content/tech-docs/management-api/api/surveys/surveys_getLatestSurvey.mdx @@ -0,0 +1,15 @@ +--- +title: Get latest survey by key +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/surveys/surveys_getSurveyVersion.mdx b/content/tech-docs/management-api/api/surveys/surveys_getSurveyVersion.mdx new file mode 100644 index 0000000..08458da --- /dev/null +++ b/content/tech-docs/management-api/api/surveys/surveys_getSurveyVersion.mdx @@ -0,0 +1,15 @@ +--- +title: Get a specific survey version +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/surveys/surveys_listSurveyInfos.mdx b/content/tech-docs/management-api/api/surveys/surveys_listSurveyInfos.mdx new file mode 100644 index 0000000..780ff86 --- /dev/null +++ b/content/tech-docs/management-api/api/surveys/surveys_listSurveyInfos.mdx @@ -0,0 +1,15 @@ +--- +title: List survey infos for a study +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/surveys/surveys_listSurveyVersions.mdx b/content/tech-docs/management-api/api/surveys/surveys_listSurveyVersions.mdx new file mode 100644 index 0000000..9c4cc13 --- /dev/null +++ b/content/tech-docs/management-api/api/surveys/surveys_listSurveyVersions.mdx @@ -0,0 +1,15 @@ +--- +title: List all survey versions +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/surveys/surveys_unpublishSurvey.mdx b/content/tech-docs/management-api/api/surveys/surveys_unpublishSurvey.mdx new file mode 100644 index 0000000..c1cf67f --- /dev/null +++ b/content/tech-docs/management-api/api/surveys/surveys_unpublishSurvey.mdx @@ -0,0 +1,15 @@ +--- +title: Unpublish a survey +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/surveys/surveys_updateSurvey.mdx b/content/tech-docs/management-api/api/surveys/surveys_updateSurvey.mdx new file mode 100644 index 0000000..85d5640 --- /dev/null +++ b/content/tech-docs/management-api/api/surveys/surveys_updateSurvey.mdx @@ -0,0 +1,15 @@ +--- +title: Update survey definition +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/user-management/meta.json b/content/tech-docs/management-api/api/user-management/meta.json new file mode 100644 index 0000000..550dce6 --- /dev/null +++ b/content/tech-docs/management-api/api/user-management/meta.json @@ -0,0 +1,14 @@ +{ + "title": "User management", + "description": "Management user accounts and permissions", + "pages": [ + "userManagement_listManagementUsers", + "userManagement_getManagementUser", + "userManagement_deleteManagementUser", + "userManagement_listUserPermissions", + "userManagement_addPermissionToUser", + "userManagement_deleteUserPermission", + "userManagement_updatePermissionLimiter", + "userManagement_requestParticipantUserDeletion" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/user-management/userManagement_addPermissionToUser.mdx b/content/tech-docs/management-api/api/user-management/userManagement_addPermissionToUser.mdx new file mode 100644 index 0000000..47b75d2 --- /dev/null +++ b/content/tech-docs/management-api/api/user-management/userManagement_addPermissionToUser.mdx @@ -0,0 +1,15 @@ +--- +title: Add permission to user +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/user-management/userManagement_deleteManagementUser.mdx b/content/tech-docs/management-api/api/user-management/userManagement_deleteManagementUser.mdx new file mode 100644 index 0000000..2d55eb1 --- /dev/null +++ b/content/tech-docs/management-api/api/user-management/userManagement_deleteManagementUser.mdx @@ -0,0 +1,15 @@ +--- +title: Delete management user +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/user-management/userManagement_deleteUserPermission.mdx b/content/tech-docs/management-api/api/user-management/userManagement_deleteUserPermission.mdx new file mode 100644 index 0000000..7ccd7f8 --- /dev/null +++ b/content/tech-docs/management-api/api/user-management/userManagement_deleteUserPermission.mdx @@ -0,0 +1,15 @@ +--- +title: Delete user permission +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/user-management/userManagement_getManagementUser.mdx b/content/tech-docs/management-api/api/user-management/userManagement_getManagementUser.mdx new file mode 100644 index 0000000..b8037b8 --- /dev/null +++ b/content/tech-docs/management-api/api/user-management/userManagement_getManagementUser.mdx @@ -0,0 +1,15 @@ +--- +title: Get management user +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/user-management/userManagement_listManagementUsers.mdx b/content/tech-docs/management-api/api/user-management/userManagement_listManagementUsers.mdx new file mode 100644 index 0000000..0f9d389 --- /dev/null +++ b/content/tech-docs/management-api/api/user-management/userManagement_listManagementUsers.mdx @@ -0,0 +1,15 @@ +--- +title: List management users +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/user-management/userManagement_listUserPermissions.mdx b/content/tech-docs/management-api/api/user-management/userManagement_listUserPermissions.mdx new file mode 100644 index 0000000..34fe322 --- /dev/null +++ b/content/tech-docs/management-api/api/user-management/userManagement_listUserPermissions.mdx @@ -0,0 +1,15 @@ +--- +title: List user permissions +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/user-management/userManagement_requestParticipantUserDeletion.mdx b/content/tech-docs/management-api/api/user-management/userManagement_requestParticipantUserDeletion.mdx new file mode 100644 index 0000000..006df0f --- /dev/null +++ b/content/tech-docs/management-api/api/user-management/userManagement_requestParticipantUserDeletion.mdx @@ -0,0 +1,15 @@ +--- +title: Request participant user deletion +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/user-management/userManagement_updatePermissionLimiter.mdx b/content/tech-docs/management-api/api/user-management/userManagement_updatePermissionLimiter.mdx new file mode 100644 index 0000000..464d54d --- /dev/null +++ b/content/tech-docs/management-api/api/user-management/userManagement_updatePermissionLimiter.mdx @@ -0,0 +1,15 @@ +--- +title: Update permission limiter +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api.mdx b/content/tech-docs/participant-api/api.mdx deleted file mode 100644 index 391b47a..0000000 --- a/content/tech-docs/participant-api/api.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: API -description: Participant API ---- diff --git a/content/tech-docs/participant-api/api/auth/getTempTokenInfo.mdx b/content/tech-docs/participant-api/api/auth/getTempTokenInfo.mdx new file mode 100644 index 0000000..0c80916 --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/getTempTokenInfo.mdx @@ -0,0 +1,15 @@ +--- +title: Get info for a temporary token +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/auth/loginWithEmail.mdx b/content/tech-docs/participant-api/api/auth/loginWithEmail.mdx new file mode 100644 index 0000000..ab9cb56 --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/loginWithEmail.mdx @@ -0,0 +1,15 @@ +--- +title: Login with email and password +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/auth/loginWithTempToken.mdx b/content/tech-docs/participant-api/api/auth/loginWithTempToken.mdx new file mode 100644 index 0000000..3b4b0d2 --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/loginWithTempToken.mdx @@ -0,0 +1,15 @@ +--- +title: Login using a temporary token (optionally with password or access token) +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/auth/logout.mdx b/content/tech-docs/participant-api/api/auth/logout.mdx new file mode 100644 index 0000000..f8de5c0 --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/logout.mdx @@ -0,0 +1,15 @@ +--- +title: Logout user (invalidate current session) +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/auth/meta.json b/content/tech-docs/participant-api/api/auth/meta.json new file mode 100644 index 0000000..4df1042 --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/meta.json @@ -0,0 +1,18 @@ +{ + "title": "Auth", + "description": "Authentication endpoints", + "pages": [ + "loginWithEmail", + "signupWithEmail", + "loginWithTempToken", + "getTempTokenInfo", + "renewToken", + "validateToken", + "revokeTokens", + "resendEmailVerification", + "verifyEmail", + "logout", + "requestOTP", + "verifyOTP" + ] +} \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/auth/renewToken.mdx b/content/tech-docs/participant-api/api/auth/renewToken.mdx new file mode 100644 index 0000000..ca23365 --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/renewToken.mdx @@ -0,0 +1,15 @@ +--- +title: Renew access token +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/auth/requestOTP.mdx b/content/tech-docs/participant-api/api/auth/requestOTP.mdx new file mode 100644 index 0000000..eb5c8d0 --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/requestOTP.mdx @@ -0,0 +1,15 @@ +--- +title: Request OTP (email by default) +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/auth/resendEmailVerification.mdx b/content/tech-docs/participant-api/api/auth/resendEmailVerification.mdx new file mode 100644 index 0000000..f7744f8 --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/resendEmailVerification.mdx @@ -0,0 +1,15 @@ +--- +title: Resend email verification +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/auth/revokeTokens.mdx b/content/tech-docs/participant-api/api/auth/revokeTokens.mdx new file mode 100644 index 0000000..e2dc7da --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/revokeTokens.mdx @@ -0,0 +1,15 @@ +--- +title: Revoke refresh tokens for user +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/auth/signupWithEmail.mdx b/content/tech-docs/participant-api/api/auth/signupWithEmail.mdx new file mode 100644 index 0000000..5f9ed73 --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/signupWithEmail.mdx @@ -0,0 +1,15 @@ +--- +title: Sign up with email +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/auth/validateToken.mdx b/content/tech-docs/participant-api/api/auth/validateToken.mdx new file mode 100644 index 0000000..f8b8d48 --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/validateToken.mdx @@ -0,0 +1,15 @@ +--- +title: Validate access token +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/auth/verifyEmail.mdx b/content/tech-docs/participant-api/api/auth/verifyEmail.mdx new file mode 100644 index 0000000..385e254 --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/verifyEmail.mdx @@ -0,0 +1,15 @@ +--- +title: Verify email by token +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/auth/verifyOTP.mdx b/content/tech-docs/participant-api/api/auth/verifyOTP.mdx new file mode 100644 index 0000000..5f2063c --- /dev/null +++ b/content/tech-docs/participant-api/api/auth/verifyOTP.mdx @@ -0,0 +1,15 @@ +--- +title: Verify OTP code +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/events/customStudyEvent.mdx b/content/tech-docs/participant-api/api/events/customStudyEvent.mdx new file mode 100644 index 0000000..9e646ae --- /dev/null +++ b/content/tech-docs/participant-api/api/events/customStudyEvent.mdx @@ -0,0 +1,15 @@ +--- +title: Trigger a custom study event +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/events/enterStudy.mdx b/content/tech-docs/participant-api/api/events/enterStudy.mdx new file mode 100644 index 0000000..589af6e --- /dev/null +++ b/content/tech-docs/participant-api/api/events/enterStudy.mdx @@ -0,0 +1,15 @@ +--- +title: Enter a study +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/events/leaveStudyEvent.mdx b/content/tech-docs/participant-api/api/events/leaveStudyEvent.mdx new file mode 100644 index 0000000..28dad4d --- /dev/null +++ b/content/tech-docs/participant-api/api/events/leaveStudyEvent.mdx @@ -0,0 +1,15 @@ +--- +title: Leave a study +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/events/mergeTempParticipant.mdx b/content/tech-docs/participant-api/api/events/mergeTempParticipant.mdx new file mode 100644 index 0000000..2c316d5 --- /dev/null +++ b/content/tech-docs/participant-api/api/events/mergeTempParticipant.mdx @@ -0,0 +1,15 @@ +--- +title: Merge temporary participant into user profile +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/events/mergeVirtualParticipant.mdx b/content/tech-docs/participant-api/api/events/mergeVirtualParticipant.mdx new file mode 100644 index 0000000..3be9048 --- /dev/null +++ b/content/tech-docs/participant-api/api/events/mergeVirtualParticipant.mdx @@ -0,0 +1,15 @@ +--- +title: Merge a virtual participant into user profile by linking code +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/events/meta.json b/content/tech-docs/participant-api/api/events/meta.json new file mode 100644 index 0000000..0472764 --- /dev/null +++ b/content/tech-docs/participant-api/api/events/meta.json @@ -0,0 +1,14 @@ +{ + "title": "Events", + "description": "Study service events endpoints", + "pages": [ + "enterStudy", + "customStudyEvent", + "submitSurveyEvent", + "leaveStudyEvent", + "mergeTempParticipant", + "mergeVirtualParticipant", + "registerTempParticipant", + "submitTempParticipantResponse" + ] +} \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/events/registerTempParticipant.mdx b/content/tech-docs/participant-api/api/events/registerTempParticipant.mdx new file mode 100644 index 0000000..9b50483 --- /dev/null +++ b/content/tech-docs/participant-api/api/events/registerTempParticipant.mdx @@ -0,0 +1,15 @@ +--- +title: Register a temporary participant +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/events/submitSurveyEvent.mdx b/content/tech-docs/participant-api/api/events/submitSurveyEvent.mdx new file mode 100644 index 0000000..52b07a7 --- /dev/null +++ b/content/tech-docs/participant-api/api/events/submitSurveyEvent.mdx @@ -0,0 +1,15 @@ +--- +title: Submit survey response +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/events/submitTempParticipantResponse.mdx b/content/tech-docs/participant-api/api/events/submitTempParticipantResponse.mdx new file mode 100644 index 0000000..a1594c9 --- /dev/null +++ b/content/tech-docs/participant-api/api/events/submitTempParticipantResponse.mdx @@ -0,0 +1,15 @@ +--- +title: Submit a survey response for a temporary participant +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/index.mdx b/content/tech-docs/participant-api/api/index.mdx new file mode 100644 index 0000000..57910e5 --- /dev/null +++ b/content/tech-docs/participant-api/api/index.mdx @@ -0,0 +1,117 @@ +--- +title: Participant API +description: Endpoints for participant authentication, user management, and study interactions. +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + +### Auth + +Authentication endpoints + + +Login with email and password POST} /> +Sign up with email POST} /> +Login using a temporary token (optionally with password or access token) POST} /> +Get info for a temporary token POST} /> +Renew access token POST} /> +Validate access token GET} /> +Revoke refresh tokens for user GET} /> +Resend email verification POST} /> +Verify email by token POST} /> +Logout user (invalidate current session) POST} /> +Request OTP (email by default) GET} /> +Verify OTP code POST} /> + + +### Password + +Password endpoints + + +Initiate password reset POST} /> +Get info for a password reset token POST} /> +Reset password POST} /> + + +### Events + +Study service events endpoints + + +Enter a study POST} /> +Trigger a custom study event POST} /> +Submit survey response POST} /> +Leave a study POST} /> +Merge temporary participant into user profile POST} /> +Merge a virtual participant into user profile by linking code POST} /> +Register a temporary participant POST} /> +Submit a survey response for a temporary participant POST} /> + + +### Participant data + +Endpoints getting participant data in study service + + +Get assigned surveys for profiles GET} /> +Get a specific survey with context GET} /> +Get participant state GET} /> +Get a linking code by key GET} /> +Get survey responses for a profile GET} /> +Get confidential responses by key GET} /> +Get submission history for profiles GET} /> +Get reports for a profile GET} /> +Get assigned surveys for a temporary participant GET} /> +Get a survey with context for a temporary participant GET} /> +Get virtual participants by linking code GET} /> +List participant files GET} /> +Upload participant file POST} /> +Download participant file GET} /> +Delete participant file DELETE} /> + + +### Studies + +Endpoints getting study data in study service + + +List studies by status GET} /> +Get study by key GET} /> +Check if a code exists in a code list GET} /> +Count available codes in a code list GET} /> +List variables for a study GET} /> +Get a study variable GET} /> +List studies the user participates in GET} /> + + +### User + +User endpoints + + +Get current user GET} /> +Delete current user DELETE} /> +Update the account's preferred language PUT} /> +Add new profile POST} /> +Update profile PUT} /> +Remove a profile POST} /> +Change password POST} /> +Change account email POST} /> +Change phone number POST} /> +Request phone number verification code via SMS GET} /> +Get user attributes GET} /> +Create or update a user attribute POST} /> +Delete a user attribute DELETE} /> +Update contact preferences PUT} description={"Update the user's newsletter and weekly subscription preferences."} /> + + +### Misc + +Miscellaneous + + +Health check GET} /> +Unsubscribe user from newsletter (via token) POST} /> + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/meta.json b/content/tech-docs/participant-api/api/meta.json new file mode 100644 index 0000000..53cb925 --- /dev/null +++ b/content/tech-docs/participant-api/api/meta.json @@ -0,0 +1,11 @@ +{ + "pages": [ + "auth", + "password", + "events", + "participant-data", + "studies", + "user", + "misc" + ] +} diff --git a/content/tech-docs/participant-api/api/misc/getHealth.mdx b/content/tech-docs/participant-api/api/misc/getHealth.mdx new file mode 100644 index 0000000..292fe3a --- /dev/null +++ b/content/tech-docs/participant-api/api/misc/getHealth.mdx @@ -0,0 +1,15 @@ +--- +title: Health check +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/misc/meta.json b/content/tech-docs/participant-api/api/misc/meta.json new file mode 100644 index 0000000..848a564 --- /dev/null +++ b/content/tech-docs/participant-api/api/misc/meta.json @@ -0,0 +1,8 @@ +{ + "title": "Misc", + "description": "Miscellaneous", + "pages": [ + "getHealth", + "unsubscribeNewsletter" + ] +} \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/misc/unsubscribeNewsletter.mdx b/content/tech-docs/participant-api/api/misc/unsubscribeNewsletter.mdx new file mode 100644 index 0000000..b13d4c9 --- /dev/null +++ b/content/tech-docs/participant-api/api/misc/unsubscribeNewsletter.mdx @@ -0,0 +1,15 @@ +--- +title: Unsubscribe user from newsletter (via token) +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/deleteParticipantFile.mdx b/content/tech-docs/participant-api/api/participant-data/deleteParticipantFile.mdx new file mode 100644 index 0000000..4de1d0e --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/deleteParticipantFile.mdx @@ -0,0 +1,15 @@ +--- +title: Delete participant file +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/getAssignedSurveys.mdx b/content/tech-docs/participant-api/api/participant-data/getAssignedSurveys.mdx new file mode 100644 index 0000000..5fbcbbf --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/getAssignedSurveys.mdx @@ -0,0 +1,15 @@ +--- +title: Get assigned surveys for profiles +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/getConfidentialResponse.mdx b/content/tech-docs/participant-api/api/participant-data/getConfidentialResponse.mdx new file mode 100644 index 0000000..fc1af2b --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/getConfidentialResponse.mdx @@ -0,0 +1,15 @@ +--- +title: Get confidential responses by key +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/getLinkingCode.mdx b/content/tech-docs/participant-api/api/participant-data/getLinkingCode.mdx new file mode 100644 index 0000000..e50f267 --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/getLinkingCode.mdx @@ -0,0 +1,15 @@ +--- +title: Get a linking code by key +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/getParticipantFile.mdx b/content/tech-docs/participant-api/api/participant-data/getParticipantFile.mdx new file mode 100644 index 0000000..0d7f724 --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/getParticipantFile.mdx @@ -0,0 +1,15 @@ +--- +title: Download participant file +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/getParticipantState.mdx b/content/tech-docs/participant-api/api/participant-data/getParticipantState.mdx new file mode 100644 index 0000000..61c6bd1 --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/getParticipantState.mdx @@ -0,0 +1,15 @@ +--- +title: Get participant state +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/getReports.mdx b/content/tech-docs/participant-api/api/participant-data/getReports.mdx new file mode 100644 index 0000000..d3058bf --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/getReports.mdx @@ -0,0 +1,15 @@ +--- +title: Get reports for a profile +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/getStudyResponsesForProfile.mdx b/content/tech-docs/participant-api/api/participant-data/getStudyResponsesForProfile.mdx new file mode 100644 index 0000000..fc9e7db --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/getStudyResponsesForProfile.mdx @@ -0,0 +1,15 @@ +--- +title: Get survey responses for a profile +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/getSubmissionHistory.mdx b/content/tech-docs/participant-api/api/participant-data/getSubmissionHistory.mdx new file mode 100644 index 0000000..333bbc8 --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/getSubmissionHistory.mdx @@ -0,0 +1,15 @@ +--- +title: Get submission history for profiles +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/getSurveyWithContext.mdx b/content/tech-docs/participant-api/api/participant-data/getSurveyWithContext.mdx new file mode 100644 index 0000000..cd2dd39 --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/getSurveyWithContext.mdx @@ -0,0 +1,15 @@ +--- +title: Get a specific survey with context +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/getTempParticipantSurveyWithContext.mdx b/content/tech-docs/participant-api/api/participant-data/getTempParticipantSurveyWithContext.mdx new file mode 100644 index 0000000..7dfbcf9 --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/getTempParticipantSurveyWithContext.mdx @@ -0,0 +1,15 @@ +--- +title: Get a survey with context for a temporary participant +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/getTempParticipantSurveys.mdx b/content/tech-docs/participant-api/api/participant-data/getTempParticipantSurveys.mdx new file mode 100644 index 0000000..1a84263 --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/getTempParticipantSurveys.mdx @@ -0,0 +1,15 @@ +--- +title: Get assigned surveys for a temporary participant +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/getVirtualParticipantsByLinkingCode.mdx b/content/tech-docs/participant-api/api/participant-data/getVirtualParticipantsByLinkingCode.mdx new file mode 100644 index 0000000..eff198b --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/getVirtualParticipantsByLinkingCode.mdx @@ -0,0 +1,15 @@ +--- +title: Get virtual participants by linking code +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/listParticipantFiles.mdx b/content/tech-docs/participant-api/api/participant-data/listParticipantFiles.mdx new file mode 100644 index 0000000..d5a67a7 --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/listParticipantFiles.mdx @@ -0,0 +1,15 @@ +--- +title: List participant files +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/meta.json b/content/tech-docs/participant-api/api/participant-data/meta.json new file mode 100644 index 0000000..7019238 --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/meta.json @@ -0,0 +1,21 @@ +{ + "title": "Participant data", + "description": "Endpoints getting participant data in study service", + "pages": [ + "getAssignedSurveys", + "getSurveyWithContext", + "getParticipantState", + "getLinkingCode", + "getStudyResponsesForProfile", + "getConfidentialResponse", + "getSubmissionHistory", + "getReports", + "getTempParticipantSurveys", + "getTempParticipantSurveyWithContext", + "getVirtualParticipantsByLinkingCode", + "listParticipantFiles", + "uploadParticipantFile", + "getParticipantFile", + "deleteParticipantFile" + ] +} \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/participant-data/uploadParticipantFile.mdx b/content/tech-docs/participant-api/api/participant-data/uploadParticipantFile.mdx new file mode 100644 index 0000000..04e3e7a --- /dev/null +++ b/content/tech-docs/participant-api/api/participant-data/uploadParticipantFile.mdx @@ -0,0 +1,15 @@ +--- +title: Upload participant file +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/password/getPasswordResetInfos.mdx b/content/tech-docs/participant-api/api/password/getPasswordResetInfos.mdx new file mode 100644 index 0000000..c6d30cb --- /dev/null +++ b/content/tech-docs/participant-api/api/password/getPasswordResetInfos.mdx @@ -0,0 +1,15 @@ +--- +title: Get info for a password reset token +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/password/initiatePasswordReset.mdx b/content/tech-docs/participant-api/api/password/initiatePasswordReset.mdx new file mode 100644 index 0000000..b5e24c8 --- /dev/null +++ b/content/tech-docs/participant-api/api/password/initiatePasswordReset.mdx @@ -0,0 +1,15 @@ +--- +title: Initiate password reset +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/password/meta.json b/content/tech-docs/participant-api/api/password/meta.json new file mode 100644 index 0000000..61f19e3 --- /dev/null +++ b/content/tech-docs/participant-api/api/password/meta.json @@ -0,0 +1,9 @@ +{ + "title": "Password", + "description": "Password endpoints", + "pages": [ + "initiatePasswordReset", + "getPasswordResetInfos", + "resetPassword" + ] +} \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/password/resetPassword.mdx b/content/tech-docs/participant-api/api/password/resetPassword.mdx new file mode 100644 index 0000000..bbc4331 --- /dev/null +++ b/content/tech-docs/participant-api/api/password/resetPassword.mdx @@ -0,0 +1,15 @@ +--- +title: Reset password +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/studies/getParticipatingStudies.mdx b/content/tech-docs/participant-api/api/studies/getParticipatingStudies.mdx new file mode 100644 index 0000000..380c3fd --- /dev/null +++ b/content/tech-docs/participant-api/api/studies/getParticipatingStudies.mdx @@ -0,0 +1,15 @@ +--- +title: List studies the user participates in +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/studies/getStudiesByStatus.mdx b/content/tech-docs/participant-api/api/studies/getStudiesByStatus.mdx new file mode 100644 index 0000000..8e76067 --- /dev/null +++ b/content/tech-docs/participant-api/api/studies/getStudiesByStatus.mdx @@ -0,0 +1,15 @@ +--- +title: List studies by status +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/studies/getStudy.mdx b/content/tech-docs/participant-api/api/studies/getStudy.mdx new file mode 100644 index 0000000..e671bce --- /dev/null +++ b/content/tech-docs/participant-api/api/studies/getStudy.mdx @@ -0,0 +1,15 @@ +--- +title: Get study by key +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/studies/getStudyCodeListAvailableCount.mdx b/content/tech-docs/participant-api/api/studies/getStudyCodeListAvailableCount.mdx new file mode 100644 index 0000000..4464860 --- /dev/null +++ b/content/tech-docs/participant-api/api/studies/getStudyCodeListAvailableCount.mdx @@ -0,0 +1,15 @@ +--- +title: Count available codes in a code list +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/studies/getStudyVariable.mdx b/content/tech-docs/participant-api/api/studies/getStudyVariable.mdx new file mode 100644 index 0000000..ec1cd51 --- /dev/null +++ b/content/tech-docs/participant-api/api/studies/getStudyVariable.mdx @@ -0,0 +1,15 @@ +--- +title: Get a study variable +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/studies/getStudyVariables.mdx b/content/tech-docs/participant-api/api/studies/getStudyVariables.mdx new file mode 100644 index 0000000..568cf16 --- /dev/null +++ b/content/tech-docs/participant-api/api/studies/getStudyVariables.mdx @@ -0,0 +1,15 @@ +--- +title: List variables for a study +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/studies/meta.json b/content/tech-docs/participant-api/api/studies/meta.json new file mode 100644 index 0000000..3363d80 --- /dev/null +++ b/content/tech-docs/participant-api/api/studies/meta.json @@ -0,0 +1,13 @@ +{ + "title": "Studies", + "description": "Endpoints getting study data in study service", + "pages": [ + "getStudiesByStatus", + "getStudy", + "studyHasCodeListCode", + "getStudyCodeListAvailableCount", + "getStudyVariables", + "getStudyVariable", + "getParticipatingStudies" + ] +} \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/studies/studyHasCodeListCode.mdx b/content/tech-docs/participant-api/api/studies/studyHasCodeListCode.mdx new file mode 100644 index 0000000..68bc6de --- /dev/null +++ b/content/tech-docs/participant-api/api/studies/studyHasCodeListCode.mdx @@ -0,0 +1,15 @@ +--- +title: Check if a code exists in a code list +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/addProfile.mdx b/content/tech-docs/participant-api/api/user/addProfile.mdx new file mode 100644 index 0000000..85914a2 --- /dev/null +++ b/content/tech-docs/participant-api/api/user/addProfile.mdx @@ -0,0 +1,15 @@ +--- +title: Add new profile +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/changeAccountEmail.mdx b/content/tech-docs/participant-api/api/user/changeAccountEmail.mdx new file mode 100644 index 0000000..5d07ecb --- /dev/null +++ b/content/tech-docs/participant-api/api/user/changeAccountEmail.mdx @@ -0,0 +1,15 @@ +--- +title: Change account email +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/changePassword.mdx b/content/tech-docs/participant-api/api/user/changePassword.mdx new file mode 100644 index 0000000..b2a0d6e --- /dev/null +++ b/content/tech-docs/participant-api/api/user/changePassword.mdx @@ -0,0 +1,15 @@ +--- +title: Change password +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/changePhoneNumber.mdx b/content/tech-docs/participant-api/api/user/changePhoneNumber.mdx new file mode 100644 index 0000000..e23f995 --- /dev/null +++ b/content/tech-docs/participant-api/api/user/changePhoneNumber.mdx @@ -0,0 +1,15 @@ +--- +title: Change phone number +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/deleteUser.mdx b/content/tech-docs/participant-api/api/user/deleteUser.mdx new file mode 100644 index 0000000..c138fa6 --- /dev/null +++ b/content/tech-docs/participant-api/api/user/deleteUser.mdx @@ -0,0 +1,15 @@ +--- +title: Delete current user +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/deleteUserAttribute.mdx b/content/tech-docs/participant-api/api/user/deleteUserAttribute.mdx new file mode 100644 index 0000000..3a09abe --- /dev/null +++ b/content/tech-docs/participant-api/api/user/deleteUserAttribute.mdx @@ -0,0 +1,15 @@ +--- +title: Delete a user attribute +full: true +_openapi: + method: DELETE + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/getUser.mdx b/content/tech-docs/participant-api/api/user/getUser.mdx new file mode 100644 index 0000000..d37b5e6 --- /dev/null +++ b/content/tech-docs/participant-api/api/user/getUser.mdx @@ -0,0 +1,15 @@ +--- +title: Get current user +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/getUserAttributes.mdx b/content/tech-docs/participant-api/api/user/getUserAttributes.mdx new file mode 100644 index 0000000..09012fa --- /dev/null +++ b/content/tech-docs/participant-api/api/user/getUserAttributes.mdx @@ -0,0 +1,15 @@ +--- +title: Get user attributes +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/meta.json b/content/tech-docs/participant-api/api/user/meta.json new file mode 100644 index 0000000..4ec2cf9 --- /dev/null +++ b/content/tech-docs/participant-api/api/user/meta.json @@ -0,0 +1,20 @@ +{ + "title": "User", + "description": "User endpoints", + "pages": [ + "getUser", + "deleteUser", + "updatePreferredLanguage", + "addProfile", + "updateProfile", + "removeProfile", + "changePassword", + "changeAccountEmail", + "changePhoneNumber", + "requestPhoneNumberVerification", + "getUserAttributes", + "setUserAttribute", + "deleteUserAttribute", + "updateContactPreferences" + ] +} \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/removeProfile.mdx b/content/tech-docs/participant-api/api/user/removeProfile.mdx new file mode 100644 index 0000000..f224789 --- /dev/null +++ b/content/tech-docs/participant-api/api/user/removeProfile.mdx @@ -0,0 +1,15 @@ +--- +title: Remove a profile +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/requestPhoneNumberVerification.mdx b/content/tech-docs/participant-api/api/user/requestPhoneNumberVerification.mdx new file mode 100644 index 0000000..ed4f5aa --- /dev/null +++ b/content/tech-docs/participant-api/api/user/requestPhoneNumberVerification.mdx @@ -0,0 +1,15 @@ +--- +title: Request phone number verification code via SMS +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/setUserAttribute.mdx b/content/tech-docs/participant-api/api/user/setUserAttribute.mdx new file mode 100644 index 0000000..966e23f --- /dev/null +++ b/content/tech-docs/participant-api/api/user/setUserAttribute.mdx @@ -0,0 +1,15 @@ +--- +title: Create or update a user attribute +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/updateContactPreferences.mdx b/content/tech-docs/participant-api/api/user/updateContactPreferences.mdx new file mode 100644 index 0000000..19951d5 --- /dev/null +++ b/content/tech-docs/participant-api/api/user/updateContactPreferences.mdx @@ -0,0 +1,16 @@ +--- +title: Update contact preferences +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: + - content: Update the user's newsletter and weekly subscription preferences. +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/updatePreferredLanguage.mdx b/content/tech-docs/participant-api/api/user/updatePreferredLanguage.mdx new file mode 100644 index 0000000..797dbfc --- /dev/null +++ b/content/tech-docs/participant-api/api/user/updatePreferredLanguage.mdx @@ -0,0 +1,15 @@ +--- +title: Update the account's preferred language +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/api/user/updateProfile.mdx b/content/tech-docs/participant-api/api/user/updateProfile.mdx new file mode 100644 index 0000000..0ede110 --- /dev/null +++ b/content/tech-docs/participant-api/api/user/updateProfile.mdx @@ -0,0 +1,15 @@ +--- +title: Update profile +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/participant-api/meta.json b/content/tech-docs/participant-api/meta.json index 47c1d96..abccb1d 100644 --- a/content/tech-docs/participant-api/meta.json +++ b/content/tech-docs/participant-api/meta.json @@ -1,6 +1,6 @@ { "title": "Participant API", - "description": "TODO", + "description": "API for participant-facing operations", "root": true, "icon": "Globe", "pages": [ diff --git a/content/tech-docs/smtp-bridge/api.mdx b/content/tech-docs/smtp-bridge/api.mdx deleted file mode 100644 index 9a3c444..0000000 --- a/content/tech-docs/smtp-bridge/api.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: API -description: SMTP Bridge API ---- diff --git a/content/tech-docs/smtp-bridge/api/getHealth.mdx b/content/tech-docs/smtp-bridge/api/getHealth.mdx new file mode 100644 index 0000000..cc2b955 --- /dev/null +++ b/content/tech-docs/smtp-bridge/api/getHealth.mdx @@ -0,0 +1,15 @@ +--- +title: Health check +full: true +_openapi: + method: GET + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/smtp-bridge/api/index.mdx b/content/tech-docs/smtp-bridge/api/index.mdx new file mode 100644 index 0000000..8e23e89 --- /dev/null +++ b/content/tech-docs/smtp-bridge/api/index.mdx @@ -0,0 +1,11 @@ +--- +title: SMTP Bridge API +description: Simple bridge for sending emails via configured SMTP servers. +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + +Health check GET} /> +Send an email POST} /> + \ No newline at end of file diff --git a/content/tech-docs/smtp-bridge/api/meta.json b/content/tech-docs/smtp-bridge/api/meta.json new file mode 100644 index 0000000..eb96376 --- /dev/null +++ b/content/tech-docs/smtp-bridge/api/meta.json @@ -0,0 +1,6 @@ +{ + "pages": [ + "getHealth", + "sendEmail" + ] +} diff --git a/content/tech-docs/smtp-bridge/api/sendEmail.mdx b/content/tech-docs/smtp-bridge/api/sendEmail.mdx new file mode 100644 index 0000000..58c0865 --- /dev/null +++ b/content/tech-docs/smtp-bridge/api/sendEmail.mdx @@ -0,0 +1,15 @@ +--- +title: Send an email +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/smtp-bridge/meta.json b/content/tech-docs/smtp-bridge/meta.json index 7a02bea..dcded40 100644 --- a/content/tech-docs/smtp-bridge/meta.json +++ b/content/tech-docs/smtp-bridge/meta.json @@ -1,6 +1,6 @@ { "title": "SMTP Bridge", - "description": "TODO", + "description": "Email service integration", "root": true, "icon": "Mail", "pages": [ From fb1f283f49174af4570216e03bc227bf35e94432 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Fri, 26 Jun 2026 10:46:52 +0200 Subject: [PATCH 15/21] Remove redundant json files --- public/openapi/management-api.json | 10091 -------------------------- public/openapi/participant-api.json | 4054 ----------- public/openapi/smtp-bridge.json | 243 - 3 files changed, 14388 deletions(-) delete mode 100644 public/openapi/management-api.json delete mode 100644 public/openapi/participant-api.json delete mode 100644 public/openapi/smtp-bridge.json diff --git a/public/openapi/management-api.json b/public/openapi/management-api.json deleted file mode 100644 index 7cbaf90..0000000 --- a/public/openapi/management-api.json +++ /dev/null @@ -1,10091 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "Management API", - "version": "1.0.0", - "description": "Endpoints for management authentication, user management, study administration, messaging, and participant administration." - }, - "tags": [ - { - "name": "auth", - "description": "Authentication & Session" - }, - { - "name": "studies", - "description": "Study management" - }, - { - "name": "surveys", - "description": "Survey management" - }, - { - "name": "study-rules", - "description": "Study rules" - }, - { - "name": "study-variables", - "description": "Study variables" - }, - { - "name": "study-counters", - "description": "Study counters" - }, - { - "name": "study-permissions", - "description": "Permissions for a study" - }, - { - "name": "notifications", - "description": "Notification subscriptions" - }, - { - "name": "code-lists", - "description": "Study code lists" - }, - { - "name": "participants", - "description": "Participant operations" - }, - { - "name": "reports", - "description": "Participant reports" - }, - { - "name": "responses", - "description": "Response exports & queries" - }, - { - "name": "files", - "description": "File management for studies" - }, - { - "name": "messaging", - "description": "Messaging templates & scheduled emails" - }, - { - "name": "user-management", - "description": "Management user accounts and permissions" - }, - { - "name": "service-accounts", - "description": "Service account management" - }, - { - "name": "app-roles", - "description": "App role templates & assignments" - }, - { - "name": "actions", - "description": "Run actions on participants" - } - ], - "components": { - "securitySchemes": { - "BearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT" - } - }, - "responses": { - "Error400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - }, - "Error401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - }, - "Error403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - }, - "Error404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - }, - "Error429": { - "description": "Too Many Requests", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - }, - "Error500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "schemas": { - "Message": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "error": { - "type": "string" - } - }, - "additionalProperties": false - }, - "User": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "account": { - "$ref": "#/components/schemas/Account" - }, - "timestamps": { - "$ref": "#/components/schemas/Timestamps" - }, - "profiles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Profile" - } - }, - "contactPreferences": { - "$ref": "#/components/schemas/ContactPreferences" - }, - "contactInfos": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ContactInfo" - } - } - }, - "additionalProperties": false - }, - "Account": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "accountID": { - "type": "string" - } - }, - "additionalProperties": true - }, - "Timestamps": { - "type": "object", - "properties": { - "lastTokenRefresh": { - "type": "integer" - }, - "lastLogin": { - "type": "integer" - }, - "createdAt": { - "type": "integer" - }, - "updatedAt": { - "type": "integer" - }, - "lastPasswordChange": { - "type": "integer" - }, - "reminderToConfirmSentAt": { - "type": "integer" - }, - "markedForDeletion": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Profile": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "createdAt": { - "type": "integer" - }, - "mainProfile": { - "type": "boolean" - } - }, - "additionalProperties": true - }, - "ContactPreferences": { - "type": "object", - "properties": { - "subscribedToNewsletter": { - "type": "boolean" - }, - "sendNewsletterTo": { - "type": "array", - "items": { - "type": "string" - } - }, - "subscribedToWeekly": { - "type": "boolean" - }, - "receiveWeeklyMessageDayOfWeek": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "ContactInfo": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "email", - "phone" - ] - }, - "confirmedAt": { - "type": "integer" - }, - "confirmationLinkSentAt": { - "type": "integer" - }, - "email": { - "type": "string" - }, - "phone": { - "type": "string" - } - }, - "additionalProperties": false - }, - "Study": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID", - "example": "64b8f0f2e1b1c8a1d2e3f4g5" - }, - "key": { - "type": "string" - }, - "secretKey": { - "type": "string" - }, - "status": { - "type": "string" - }, - "props": { - "type": "object", - "additionalProperties": true - }, - "configs": { - "type": "object", - "additionalProperties": true - }, - "notificationSubscriptions": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "stats": { - "type": "object", - "additionalProperties": true - }, - "nextTimerEvent": { - "type": "integer" - }, - "rules": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - } - }, - "additionalProperties": false, - "description": "Study object" - }, - "Survey": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "surveyKey": { - "type": "string" - }, - "props": { - "type": "object", - "additionalProperties": true - }, - "prefillRules": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "contextRules": { - "type": "object", - "additionalProperties": true - }, - "maxItemsPerPage": { - "type": "object", - "additionalProperties": true - }, - "availableFor": { - "type": "string" - }, - "requireLoginBeforeSubmission": { - "type": "boolean" - }, - "published": { - "type": "integer" - }, - "unpublished": { - "type": "integer" - }, - "surveyDefinition": { - "type": "object", - "additionalProperties": true - }, - "versionId": { - "type": "string" - }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "additionalProperties": false, - "description": "Survey object" - }, - "StudyVariables": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "configUpdatedAt": { - "type": "string", - "format": "date-time" - }, - "valueUpdatedAt": { - "type": "string", - "format": "date-time" - }, - "studyKey": { - "type": "string" - }, - "key": { - "type": "string" - }, - "value": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "integer" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "string", - "format": "date-time" - }, - { - "type": "object", - "additionalProperties": true - }, - { - "type": "array", - "items": {} - }, - { - "type": "null" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "string", - "int", - "float", - "boolean", - "date" - ] - }, - "label": { - "type": "string" - }, - "description": { - "type": "string" - }, - "uiType": { - "type": "string" - }, - "uiPriority": { - "type": "integer" - }, - "configs": { - "type": "object", - "additionalProperties": true - } - }, - "additionalProperties": false, - "description": "Study variable object" - }, - "Permission": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "subjectId": { - "type": "string" - }, - "subjectType": { - "type": "string" - }, - "resourceType": { - "type": "string" - }, - "resourceKey": { - "type": "string" - }, - "action": { - "type": "string" - }, - "limiter": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "additionalProperties": false, - "description": "Permission object" - }, - "AppRoleTemplate": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "appName": { - "type": "string" - }, - "role": { - "type": "string" - }, - "requiredPermissions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Permission" - } - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "description": "App role template object" - }, - "ServiceUser": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "label": { - "type": "string" - }, - "description": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false - }, - "ServiceUserAPIKey": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "serviceUserID": { - "type": "string" - }, - "key": { - "type": "string" - }, - "expiresAt": { - "type": "string", - "format": "date-time" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "lastUsedAt": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false - }, - "StudyRules": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "studyKey": { - "type": "string" - }, - "uploadedAt": { - "type": "integer" - }, - "uploadedBy": { - "type": "string" - }, - "rules": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "serialisedRules": { - "type": "string" - } - }, - "additionalProperties": false, - "description": "Study rules object" - }, - "SurveyInfo": { - "type": "object", - "properties": { - "key": { - "type": "string" - } - } - }, - "StudyCounter": { - "type": "object", - "properties": { - "studyKey": { - "type": "string" - }, - "scope": { - "type": "string" - }, - "value": { - "type": "integer" - } - }, - "additionalProperties": false, - "description": "Study counter object" - }, - "NotificationSubscription": { - "type": "object", - "properties": { - "messageType": { - "type": "string" - }, - "email": { - "type": "string" - } - }, - "additionalProperties": false, - "description": "Notification Subscription object" - }, - "PaginationInfos": { - "type": "object", - "description": "Pagination information", - "properties": { - "totalCount": { - "type": "integer" - }, - "currentPage": { - "type": "integer" - }, - "totalPages": { - "type": "integer" - }, - "pageSize": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "StudyCodeListEntry": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "studyKey": { - "type": "string" - }, - "listKey": { - "type": "string" - }, - "code": { - "type": "string" - }, - "addedAt": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "description": "Study Code List Entry object" - }, - "EmailTemplate": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "messageType": { - "type": "string" - }, - "studyKey": { - "type": "string" - }, - "defaultLanguage": { - "type": "string" - }, - "headerOverrides": { - "type": "object", - "additionalProperties": true - }, - "translations": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - } - }, - "additionalProperties": false, - "description": "Email Template object" - }, - "SmsTemplate": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "userID": { - "type": "string" - }, - "messageType": { - "type": "string" - }, - "sentAt": { - "type": "string", - "format": "date-time" - }, - "phoneNumber": { - "type": "string" - } - }, - "additionalProperties": false, - "description": "SMS Template object" - }, - "ScheduledEmail": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "template": { - "$ref": "#/components/schemas/EmailTemplate" - }, - "type": { - "type": "string" - }, - "studyKey": { - "type": "string" - }, - "condition": { - "type": "object", - "additionalProperties": true - }, - "nextTime": { - "type": "integer" - }, - "period": { - "type": "integer" - }, - "label": { - "type": "string" - }, - "until": { - "type": "integer" - } - }, - "additionalProperties": false, - "description": "Scheduled Email object" - }, - "Report": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "MongoDB ObjectID as hex string" - }, - "key": { - "type": "string" - }, - "participantID": { - "type": "string" - }, - "responseID": { - "type": "string" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp" - }, - "modifiedAt": { - "type": "string", - "format": "date-time" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ReportData" - } - } - }, - "additionalProperties": false, - "description": "Report object", - "required": [ - "key", - "participantID", - "timestamp" - ] - }, - "ReportData": { - "type": "object", - "properties": { - "key": { "type": "string" }, - "value": { "type": "string" }, - "dtype": { - "type": "string", - "enum": ["date", "float", "int", "string", "rawMessage", "keyList"] - } - }, - "additionalProperties": false - }, - "Task": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "createdBy": { - "type": "string" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string" - }, - "targetCount": { - "type": "integer" - }, - "processedCount": { - "type": "integer" - }, - "resultFile": { - "type": "string" - }, - "fileType": { - "type": "string" - }, - "error": { - "type": "string" - } - }, - "additionalProperties": true - }, - "FileInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "participantID": { - "type": "string" - }, - "status": { - "type": "string" - }, - "uploadedBy": { - "type": "string" - }, - "path": { - "type": "string" - }, - "previewPath": { - "type": "string" - }, - "submittedAt": { - "type": "integer" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "fileType": { - "type": "string" - }, - "visibleToParticipant": { - "type": "boolean" - }, - "size": { - "type": "integer" - } - }, - "required": [ - "id", - "participantID", - "path" - ], - "additionalProperties": false, - "description": "File Info object" - }, - "AppRole": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "subjectId": { - "type": "string" - }, - "subjectType": { - "type": "string" - }, - "appName": { - "type": "string" - }, - "role": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - } - } - }, - "Participant": { - "type": "object", - "description": "Participant object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "participantId": { - "type": "string" - }, - "currentStudySession": { - "type": "string" - }, - "modifiedAt": { - "type": "integer" - }, - "enteredAt": { - "type": "integer" - }, - "studyStatus": { - "type": "string" - }, - "flags": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "linkingCodes": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "assignedSurveys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssignedSurvey" - } - }, - "lastSubmissions": { - "type": "object", - "additionalProperties": { - "type": "integer" - } - }, - "messages": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - } - }, - "required": [ - "participantId" - ], - "additionalProperties": false - }, - "AssignedSurvey": { - "type": "object", - "description": "Assigned survey object", - "properties": { - "studyKey": { - "type": "string" - }, - "surveyKey": { - "type": "string" - }, - "validFrom": { - "type": "integer" - }, - "validUntil": { - "type": "integer" - }, - "category": { - "type": "string" - }, - "profileID": { - "type": "string" - } - }, - "required": [ - "studyKey", - "surveyKey" - ], - "additionalProperties": false - }, - "SurveyResponse": { - "type": "object", - "description": "Survey response", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "key": { - "type": "string" - }, - "participantId": { - "type": "string" - }, - "versionId": { - "type": "string" - }, - "openedAt": { - "type": "integer" - }, - "submittedAt": { - "type": "integer" - }, - "arrivedAt": { - "type": "integer" - }, - "responses": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "context": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "key" - ], - "additionalProperties": false - }, - "ManagementUser": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "MongoDB ObjectID as hex string" - }, - "sub": { - "type": "string" - }, - "email": { - "type": "string", - "format": "email" - }, - "username": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "imageUrl": { - "type": "string", - "format": "uri" - }, - "isAdmin": { - "type": "boolean" - }, - "lastLoginAt": { - "type": "string", - "format": "date-time" - }, - "createdAt": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "description": "Management User object" - } - } - }, - "paths": { - "/v1/auth/signin-with-idp": { - "post": { - "tags": [ - "auth" - ], - "operationId": "auth_signinWithIdp", - "summary": "Sign in with identity provider", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "sub": { - "type": "string", - "description": "IDP Subject (User ID)" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "name": { - "type": "string" - }, - "provider": { - "type": "string" - }, - "email": { - "type": "string", - "format": "email" - }, - "imageURL": { - "type": "string" - }, - "renewToken": { - "type": "string", - "description": "Token used to renew the session" - }, - "instanceID": { - "type": "string" - } - }, - "required": [ - "sub" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Signed in", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "accessToken": { - "type": "string" - }, - "sessionID": { - "type": "string" - }, - "expiresAt": { - "type": "integer", - "description": "Unix timestamp (seconds)" - }, - "isAdmin": { - "type": "boolean" - } - }, - "required": [ - "accessToken", - "sessionID", - "expiresAt", - "isAdmin" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/extend-session": { - "post": { - "tags": [ - "auth" - ], - "operationId": "auth_extendSession", - "summary": "Extend session", - "security": [ - { - "BearerAuth": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "renewToken": { - "type": "string" - } - }, - "required": [ - "renewToken" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Session extended", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "accessToken": { - "type": "string" - }, - "sessionID": { - "type": "string" - }, - "expiresAt": { - "type": "integer", - "description": "Unix timestamp (seconds)" - }, - "isAdmin": { - "type": "boolean" - } - }, - "required": [ - "accessToken", - "sessionID", - "expiresAt", - "isAdmin" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/renew-token/{sessionID}": { - "get": { - "tags": [ - "auth" - ], - "operationId": "auth_renewToken", - "summary": "Get renew token", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "sessionID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Renew token", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "renewToken": { - "type": "string" - } - }, - "required": [ - "renewToken" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/permissions": { - "get": { - "tags": [ - "auth" - ], - "operationId": "auth_listPermissions", - "summary": "List permissions and roles", - "security": [ - { - "BearerAuth": [] - } - ], - "responses": { - "200": { - "description": "Permissions", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "isAdmin": { - "type": "boolean" - }, - "permissions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Permission" - } - }, - "appRoles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AppRole" - } - } - }, - "required": [ - "isAdmin", - "permissions", - "appRoles" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/participants/virtual": { - "post": { - "tags": [ - "participants" - ], - "operationId": "participants_createVirtualParticipant", - "summary": "Create virtual participant", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Virtual participant created", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "participant": { - "$ref": "#/components/schemas/Participant" - } - }, - "required": [ - "message", - "participant" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/participants/{participantID}/responses": { - "get": { - "tags": [ - "participants" - ], - "operationId": "participants_listParticipantResponses", - "summary": "List participant responses", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "participantID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "schema": { - "type": "integer", - "minimum": 1 - } - }, - { - "name": "limit", - "in": "query", - "schema": { - "type": "integer", - "minimum": 1, - "maximum": 100 - } - }, - { - "name": "filter", - "in": "query", - "description": "bson.M object to filter responses", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - }, - { - "name": "sort", - "in": "query", - "description": "bson.M object to sort responses", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - ], - "responses": { - "200": { - "description": "List participant responses", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "responses": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SurveyResponse" - } - }, - "pagination": { - "$ref": "#/components/schemas/PaginationInfos" - } - }, - "required": [ - "responses", - "pagination" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "participants" - ], - "operationId": "participants_submitParticipantResponse", - "summary": "Submit participant response", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "participantID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SurveyResponse" - } - } - } - }, - "responses": { - "200": { - "description": "Submit participant response", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssignedSurvey" - } - }, - "participant": { - "$ref": "#/components/schemas/Participant" - } - }, - "required": [ - "message", - "result", - "participant" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/participants/{participantID}/events": { - "post": { - "tags": [ - "participants" - ], - "operationId": "participants_submitParticipantEvent", - "summary": "Submit participant event", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "participantID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "eventKey": { - "type": "string" - }, - "payload": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "required": [ - "eventKey" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Submit participant event", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "result": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssignedSurvey" - } - } - }, - "required": [ - "message", - "result" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/participants/{participantID}/reports": { - "post": { - "tags": [ - "reports" - ], - "operationId": "participants_submitParticipantReport", - "summary": "Submit participant report", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "participantID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Report" - } - } - } - }, - "responses": { - "200": { - "description": "Submit participant report", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/participants/{participantID}/reports/{reportID}": { - "put": { - "tags": [ - "reports" - ], - "operationId": "participants_updateParticipantReport", - "summary": "Update participant report", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "participantID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "reportID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/ReportData" - }, - "mode": { - "type": "object", - "additionalProperties": true - } - }, - "required": [ - "data", - "mode" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Update participant report", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/participants/merge": { - "post": { - "tags": [ - "participants" - ], - "operationId": "participants_mergeParticipants", - "summary": "Merge participants", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "targetParticipantID": { - "type": "string" - }, - "withParticipantID": { - "type": "string" - } - }, - "required": [ - "targetParticipantID", - "withParticipantID" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Merge participants", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "participant": { - "$ref": "#/components/schemas/Participant" - } - }, - "required": [ - "participant" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/participants/{participantID}": { - "put": { - "tags": [ - "participants" - ], - "operationId": "participants_editParticipant", - "summary": "Edit participant", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "participantID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Participant" - } - } - } - }, - "responses": { - "200": { - "description": "Edit participant", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "participant": { - "$ref": "#/components/schemas/Participant" - } - }, - "required": [ - "message", - "participant" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/messaging/email-templates/global-templates": { - "get": { - "tags": [ - "messaging" - ], - "operationId": "messaging_listGlobalEmailTemplates", - "summary": "List global email templates", - "security": [ - { - "BearerAuth": [] - } - ], - "responses": { - "200": { - "description": "List global templates", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EmailTemplate" - } - } - }, - "required": [ - "templates" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "messaging" - ], - "operationId": "messaging_saveGlobalEmailTemplate", - "summary": "Save global email template", - "security": [ - { - "BearerAuth": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EmailTemplate" - } - } - } - }, - "responses": { - "200": { - "description": "Save global template", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "template": { - "$ref": "#/components/schemas/EmailTemplate" - } - }, - "required": [ - "template" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/messaging/email-templates/global-templates/{messageType}": { - "get": { - "tags": [ - "messaging" - ], - "operationId": "messaging_getGlobalEmailTemplate", - "summary": "Get global email template by type", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "messageType", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Global template", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "template": { - "$ref": "#/components/schemas/EmailTemplate" - } - }, - "required": [ - "template" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "messaging" - ], - "operationId": "messaging_deleteGlobalEmailTemplate", - "summary": "Delete global email template", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "messageType", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/messaging/email-templates/study-templates": { - "get": { - "tags": [ - "messaging" - ], - "operationId": "messaging_listAllStudyEmailTemplates", - "summary": "List all study email templates", - "security": [ - { - "BearerAuth": [] - } - ], - "responses": { - "200": { - "description": "List study templates (all studies)", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EmailTemplate" - } - } - }, - "required": [ - "templates" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/messaging/email-templates/study-templates/{studyKey}": { - "get": { - "tags": [ - "messaging" - ], - "operationId": "messaging_listStudyEmailTemplates", - "summary": "List study email templates", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "List study templates", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EmailTemplate" - } - } - }, - "required": [ - "templates" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "messaging" - ], - "operationId": "messaging_saveStudyEmailTemplate", - "summary": "Save study email template", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EmailTemplate" - } - } - } - }, - "responses": { - "200": { - "description": "Save study template", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "template": { - "$ref": "#/components/schemas/EmailTemplate" - } - }, - "required": [ - "template" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "404": { - "$ref": "#/components/responses/Error404" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/messaging/email-templates/study-templates/{studyKey}/{messageType}": { - "get": { - "tags": [ - "messaging" - ], - "operationId": "messaging_getStudyEmailTemplate", - "summary": "Get study email template by type", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "messageType", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Study template", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "template": { - "$ref": "#/components/schemas/EmailTemplate" - } - }, - "required": [ - "template" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "messaging" - ], - "operationId": "messaging_deleteStudyEmailTemplate", - "summary": "Delete study email template", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "messageType", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/messaging/sms-templates/": { - "post": { - "tags": [ - "messaging" - ], - "operationId": "messaging_saveSmsTemplate", - "summary": "Save SMS template", - "security": [ - { - "BearerAuth": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SmsTemplate" - } - } - } - }, - "responses": { - "200": { - "description": "Save SMS template", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "template": { - "$ref": "#/components/schemas/SmsTemplate" - } - }, - "required": [ - "template" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/messaging/sms-templates/{messageType}": { - "get": { - "tags": [ - "messaging" - ], - "operationId": "messaging_getSmsTemplate", - "summary": "Get SMS template by type", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "messageType", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "SMS template", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "template": { - "$ref": "#/components/schemas/SmsTemplate" - } - }, - "required": [ - "template" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/messaging/scheduled-emails/": { - "get": { - "tags": [ - "messaging" - ], - "operationId": "messaging_listScheduledEmails", - "summary": "List scheduled emails", - "security": [ - { - "BearerAuth": [] - } - ], - "responses": { - "200": { - "description": "List scheduled emails", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "schedules": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ScheduledEmail" - } - } - }, - "required": [ - "schedules" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "messaging" - ], - "operationId": "messaging_createScheduledEmail", - "summary": "Save scheduled email", - "security": [ - { - "BearerAuth": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ScheduledEmail" - } - } - } - }, - "responses": { - "200": { - "description": "Save scheduled email", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "schedule": { - "$ref": "#/components/schemas/ScheduledEmail" - } - }, - "required": [ - "schedule" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/messaging/scheduled-emails/{id}": { - "get": { - "tags": [ - "messaging" - ], - "operationId": "messaging_getScheduledEmail", - "summary": "Get scheduled email", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Scheduled email", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "schedule": { - "$ref": "#/components/schemas/ScheduledEmail" - } - }, - "required": [ - "schedule" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "messaging" - ], - "operationId": "messaging_deleteScheduledEmail", - "summary": "Delete scheduled email", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/": { - "get": { - "tags": [ - "studies" - ], - "operationId": "studies_listStudies", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "List all studies", - "responses": { - "200": { - "description": "List all studies", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "studies": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Study" - } - } - }, - "required": [ - "studies" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "studies" - ], - "operationId": "studies_createStudy", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Create a new study", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "studyKey": { - "type": "string" - }, - "secretKey": { - "type": "string" - }, - "isSystemDefaultStudy": { - "type": "boolean" - } - }, - "required": [ - "studyKey", - "secretKey" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "201": { - "description": "Created study", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "study": { - "$ref": "#/components/schemas/Study" - } - }, - "required": [ - "study" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/": { - "get": { - "tags": [ - "studies" - ], - "operationId": "studies_getStudy", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Get study configuration by key", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Study config", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "study": { - "$ref": "#/components/schemas/Study" - } - }, - "required": [ - "study" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "studies" - ], - "operationId": "studies_deleteStudy", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Delete a study by key", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/export-config": { - "get": { - "tags": [ - "studies" - ], - "operationId": "studies_exportConfig", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Export study configuration, surveys, and rules", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "config", - "in": "query", - "schema": { - "type": "string", - "enum": [ - "true", - "false" - ], - "default": "false" - } - }, - { - "name": "surveys", - "in": "query", - "schema": { - "type": "string", - "enum": [ - "true", - "false" - ], - "default": "false" - } - }, - { - "name": "rules", - "in": "query", - "schema": { - "type": "string", - "enum": [ - "true", - "false" - ], - "default": "false" - } - } - ], - "responses": { - "200": { - "description": "Export", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "exportedAt": { - "type": "string", - "format": "date-time" - }, - "config": { - "$ref": "#/components/schemas/Study" - }, - "rules": { - "$ref": "#/components/schemas/StudyRules" - }, - "surveys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Survey" - } - } - }, - "additionalProperties": false, - "description": "Stream Export Object" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/is-default": { - "put": { - "tags": [ - "studies" - ], - "operationId": "studies_updateIsDefault", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Update default status of a study", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "isDefault": { - "type": "boolean" - } - }, - "required": [ - "isDefault" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/status": { - "put": { - "tags": [ - "studies" - ], - "operationId": "studies_updateStatus", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Update status of a study", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "status": { - "type": "string" - } - }, - "required": [ - "status" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/display-props": { - "put": { - "tags": [ - "studies" - ], - "operationId": "studies_updateDisplayProps", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Update display properties of a study", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "description": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "tags": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - } - }, - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/file-upload-config": { - "put": { - "tags": [ - "studies" - ], - "operationId": "studies_updateFileUploadRule", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Update file upload configuration of a study", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "simplifiedAllowedUpload": { - "type": "boolean" - }, - "expression": { - "type": "object", - "additionalProperties": true - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/surveys/": { - "get": { - "tags": [ - "surveys" - ], - "operationId": "surveys_listSurveyInfos", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "List survey infos for a study", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "List survey infos", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "surveys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SurveyInfo" - } - } - }, - "required": [ - "surveys" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "surveys" - ], - "operationId": "surveys_createSurvey", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Create a new survey in a study", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Survey" - } - } - } - }, - "responses": { - "201": { - "description": "Created survey", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "survey": { - "$ref": "#/components/schemas/Survey" - } - }, - "required": [ - "survey" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/surveys/{surveyKey}": { - "get": { - "tags": [ - "surveys" - ], - "operationId": "surveys_getLatestSurvey", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Get latest survey by key", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Latest survey", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "survey": { - "$ref": "#/components/schemas/Survey" - } - }, - "required": [ - "survey" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "surveys" - ], - "operationId": "surveys_updateSurvey", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Update survey definition", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "survey": { - "$ref": "#/components/schemas/Survey" - } - }, - "required": [ - "survey" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Updated survey", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "survey": { - "$ref": "#/components/schemas/Survey" - } - }, - "required": [ - "survey" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/surveys/{surveyKey}/unpublish": { - "post": { - "tags": [ - "surveys" - ], - "operationId": "surveys_unpublishSurvey", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Unpublish a survey", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Unpublished", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/surveys/{surveyKey}/versions": { - "get": { - "tags": [ - "surveys" - ], - "operationId": "surveys_listSurveyVersions", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "List all survey versions", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Versions", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "versions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Survey" - } - } - }, - "required": [ - "versions" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/surveys/{surveyKey}/versions/{versionID}": { - "get": { - "tags": [ - "surveys" - ], - "operationId": "surveys_getSurveyVersion", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Get a specific survey version", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "versionID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Version", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "survey": { - "$ref": "#/components/schemas/Survey" - } - }, - "required": [ - "survey" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "surveys" - ], - "operationId": "surveys_deleteSurveyVersion", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Delete a survey version", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "versionID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/permissions/": { - "get": { - "tags": [ - "study-permissions" - ], - "operationId": "studyPermissions_listPermissions", - "summary": "List study permissions", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Permission list", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "permissions": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "user": { - "type": "object", - "additionalProperties": true - }, - "permissions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Permission" - } - } - } - } - } - }, - "required": [ - "permissions" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "study-permissions" - ], - "operationId": "studyPermissions_addPermission", - "summary": "Add a study permission", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Permission" - } - } - } - }, - "responses": { - "200": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/permissions/{permissionID}": { - "delete": { - "tags": [ - "study-permissions" - ], - "operationId": "studyPermissions_removePermission", - "summary": "Remove a study permission", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "permissionID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Removed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/notification-subscriptions/": { - "get": { - "tags": [ - "notifications" - ], - "operationId": "notifications_getSubscriptions", - "summary": "List notification subscriptions", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Subscriptions", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "subscriptions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationSubscription" - } - } - }, - "required": [ - "subscriptions" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "put": { - "tags": [ - "notifications" - ], - "operationId": "notifications_updateSubscriptions", - "summary": "Update notification subscriptions", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "subscriptions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationSubscription" - } - } - }, - "required": [ - "subscriptions" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/study-code-list/list-keys": { - "get": { - "tags": [ - "code-lists" - ], - "operationId": "codeLists_getListKeys", - "summary": "List code list keys", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "List keys", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "listKeys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "listKeys" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/study-code-list/codes": { - "get": { - "tags": [ - "code-lists" - ], - "operationId": "codeLists_getCodes", - "summary": "List codes of a study code list", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "listKey", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "page number (starting from 1)", - "schema": { - "type": "integer", - "minimum": 1, - "default": 1 - } - }, - { - "name": "limit", - "in": "query", - "description": "maximum number of codes per page", - "schema": { - "type": "integer", - "minimum": 1, - "default": 10 - } - } - ], - "responses": { - "200": { - "description": "Codes", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "codeList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StudyCodeListEntry" - } - }, - "pagination": { - "$ref": "#/components/schemas/PaginationInfos" - } - }, - "required": [ - "codeList", - "pagination" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "code-lists" - ], - "operationId": "codeLists_addCodes", - "summary": "Add codes to a study code list", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "listKey": { - "type": "string" - }, - "codes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "listKey", - "codes" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Added", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errors": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - } - } - }, - "delete": { - "tags": [ - "code-lists" - ], - "operationId": "codeLists_removeCode", - "summary": "Remove a code from a study code list", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "listKey", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "code", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Removed", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/study-counters/": { - "get": { - "tags": [ - "study-counters" - ], - "operationId": "studyCounters_listValues", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "List all study counter values", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Counter values", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "values": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StudyCounter" - } - } - }, - "required": [ - "values" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/study-counters/{scope}": { - "post": { - "tags": [ - "study-counters" - ], - "operationId": "studyCounters_saveValue", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Set a study counter value for scope", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "scope", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "type": "integer" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Saved", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "type": "integer" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "put": { - "tags": [ - "study-counters" - ], - "operationId": "studyCounters_incrementValue", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Increment a study counter value", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "scope", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Incremented", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "value": { - "type": "integer" - } - }, - "required": [ - "value" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "study-counters" - ], - "operationId": "studyCounters_removeValue", - "security": [ - { - "BearerAuth": [] - } - ], - "summary": "Remove a study counter value", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "scope", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Removed", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/variables/": { - "get": { - "tags": [ - "study-variables" - ], - "operationId": "studyVariables_listVariables", - "summary": "List study variables", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Variable list", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "variables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StudyVariables" - } - } - }, - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "study-variables" - ], - "operationId": "studyVariables_addVariable", - "summary": "Create a new study variable", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "variableDef": { - "$ref": "#/components/schemas/StudyVariables" - } - }, - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Created variable", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/variables/{variableKey}": { - "get": { - "tags": [ - "study-variables" - ], - "operationId": "studyVariables_getVariable", - "summary": "Get a study variable by key", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "variableKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Variable", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "variable": { - "$ref": "#/components/schemas/StudyVariables" - } - }, - "additionalProperties": false, - "required": [ - "variable" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "put": { - "tags": [ - "study-variables" - ], - "operationId": "studyVariables_updateVariableDef", - "summary": "Update study variable definition", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "variableKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "variableDef": { - "$ref": "#/components/schemas/StudyVariables" - } - }, - "required": [ - "variableDef" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "study-variables" - ], - "operationId": "studyVariables_deleteVariable", - "summary": "Delete a study variable", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "variableKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/variables/{variableKey}/value": { - "put": { - "tags": [ - "study-variables" - ], - "operationId": "studyVariables_updateVariableValue", - "summary": "Update study variable value", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "variableKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "variable": { - "$ref": "#/components/schemas/StudyVariables" - } - }, - "required": [ - "variable" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Value updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/rules/": { - "get": { - "tags": [ - "study-rules" - ], - "operationId": "studyRules_getCurrent", - "summary": "Get current published study rules", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Current rules", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "studyRules": { - "$ref": "#/components/schemas/StudyRules" - } - }, - "required": [ - "studyRules" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "study-rules" - ], - "operationId": "studyRules_publishNewVersion", - "summary": "Publish a new version of study rules", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StudyRules" - } - } - } - }, - "responses": { - "200": { - "description": "Published", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/rules/versions": { - "get": { - "tags": [ - "study-rules" - ], - "operationId": "studyRules_listVersions", - "summary": "List all study rules versions", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Versions", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "versions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StudyRules" - } - } - }, - "required": [ - "versions" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/rules/versions/{id}": { - "get": { - "tags": [ - "study-rules" - ], - "operationId": "studyRules_getVersion", - "summary": "Get a study rules version by ID", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Version", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "studyRules": { - "$ref": "#/components/schemas/StudyRules" - } - }, - "required": [ - "studyRules" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "study-rules" - ], - "operationId": "studyRules_deleteVersion", - "summary": "Delete a study rules version", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/run-actions/participants/{participantID}": { - "post": { - "tags": [ - "actions" - ], - "operationId": "actions_runOnParticipant", - "summary": "Run actions on a participant", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "participantID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "rules": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - } - }, - "required": [ - "rules" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Task started", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "participantCount": { - "type": "integer" - }, - "duration": { - "type": "integer" - }, - "ruleResults": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "required": [ - "participantCount", - "duration", - "ruleResults" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/run-actions/participants/": { - "post": { - "tags": [ - "actions" - ], - "operationId": "actions_runOnParticipants", - "summary": "Run actions on multiple participants", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "rules": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - } - }, - "required": [ - "rules" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Task started", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task": { - "$ref": "#/components/schemas/Task" - } - }, - "required": [ - "task" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/run-actions/participants/task/{taskID}": { - "get": { - "tags": [ - "actions" - ], - "operationId": "actions_getTaskStatus", - "summary": "Get actions task status", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "taskID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Task status", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task": { - "$ref": "#/components/schemas/Task" - } - }, - "required": [ - "task" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/run-actions/participants/task/{taskID}/result": { - "get": { - "tags": [ - "actions" - ], - "operationId": "actions_getTaskResult", - "summary": "Get actions task result", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "taskID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Result", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "result": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - }, - "required": [ - "result" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "404": { - "$ref": "#/components/responses/Error404" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/run-actions/previous-responses/{participantID}": { - "post": { - "tags": [ - "actions" - ], - "operationId": "actions_runPrevResponsesOnParticipant", - "summary": "Run actions on previous responses for a participant", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "participantID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "surveyKeys": { - "type": "array", - "items": { - "type": "string" - } - }, - "from": { - "type": "integer" - }, - "to": { - "type": "integer" - }, - "rules": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Task started", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "participantCount": { - "type": "integer" - }, - "duration": { - "type": "integer" - }, - "ruleResults": { - "type": "array", - "items": { - "type": "integer" - } - } - }, - "required": [ - "participantCount", - "duration", - "ruleResults" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/run-actions/previous-responses/": { - "post": { - "tags": [ - "actions" - ], - "operationId": "actions_runPrevResponsesOnParticipants", - "summary": "Run actions on previous responses for multiple participants", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "surveyKeys": { - "type": "array", - "items": { - "type": "string" - } - }, - "from": { - "type": "integer" - }, - "to": { - "type": "integer" - }, - "rules": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Task started", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task": { - "$ref": "#/components/schemas/Task" - } - }, - "required": [ - "task" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/run-actions/previous-responses/task/{taskID}": { - "get": { - "tags": [ - "actions" - ], - "operationId": "actions_getPrevResponsesTaskStatus", - "summary": "Get previous-responses actions task status", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "taskID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Task status", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task": { - "$ref": "#/components/schemas/Task" - } - }, - "required": [ - "task" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/run-actions/previous-responses/task/{taskID}/result": { - "get": { - "tags": [ - "actions" - ], - "operationId": "actions_getPrevResponsesTaskResult", - "summary": "Get previous-responses actions task result", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "taskID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Result", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "result": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - }, - "required": [ - "result" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "404": { - "$ref": "#/components/responses/Error404" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/survey-info/": { - "get": { - "tags": [ - "responses" - ], - "operationId": "dataExporter_getSurveyInfo", - "summary": "List survey info", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "File download (JSON or CSV)", - "headers": { - "Content-Disposition": { - "description": "Indicates the filename the client should save.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "text/csv": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/responses/count": { - "get": { - "tags": [ - "responses" - ], - "operationId": "dataExporter_getResponsesCount", - "summary": "Get responses count", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "filter", - "in": "query", - "description": "bson.M object to filter files", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - ], - "responses": { - "200": { - "description": "Count", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "count": { - "type": "integer" - } - }, - "required": [ - "count" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/responses/": { - "post": { - "tags": [ - "responses" - ], - "operationId": "dataExporter_generateResponsesExport", - "summary": "Start responses export task", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "page number (starting from 1)", - "schema": { - "type": "integer", - "minimum": 1, - "default": 1 - } - }, - { - "name": "limit", - "in": "query", - "description": "maximum number of responses per page", - "schema": { - "type": "integer", - "minimum": 1, - "default": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "bson.M object to filter responses", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - }, - { - "name": "sort", - "in": "query", - "description": "bson.M object to sort responses", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - }, - { - "name": "shortKeys", - "in": "query", - "description": "return short keys for responses", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "questionOptionSep", - "in": "query", - "description": "separator used in option keys", - "schema": { - "type": "string", - "default": "-" - } - }, - { - "name": "format", - "in": "query", - "description": "response export format", - "schema": { - "type": "string", - "default": "wide", - "enum": [ - "wide", - "long", - "json" - ] - } - }, - { - "name": "extraContextColumns", - "in": "query", - "description": "comma-separated list of extra context columns", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Export started", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task": { - "$ref": "#/components/schemas/Task" - } - }, - "required": [ - "task" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/responses/task/{taskID}": { - "get": { - "tags": [ - "responses" - ], - "operationId": "dataExporter_getResponsesTaskStatus", - "summary": "Get responses export task status", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "taskID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Task status", - "content": { - "application/json": { - "type": "object", - "properties": { - "task": { - "$ref": "#/components/schemas/Task" - } - }, - "required": [ - "task" - ] - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/responses/task/{taskID}/result": { - "get": { - "tags": [ - "responses" - ], - "operationId": "dataExporter_getResponsesTaskResult", - "summary": "Get responses export task result", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "taskID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "File download", - "headers": { - "Content-Disposition": { - "description": "Indicates the filename the client should save.", - "schema": { - "type": "string" - } - } - }, - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "404": { - "$ref": "#/components/responses/Error404" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/responses/daily-exports": { - "get": { - "tags": [ - "responses" - ], - "operationId": "dataExporter_listDailyResponseExports", - "summary": "List daily response exports", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Exports", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dailyExports": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "dailyExports" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/responses/daily-exports/{exportID}": { - "get": { - "tags": [ - "responses" - ], - "operationId": "dataExporter_getDailyResponseExport", - "summary": "Get daily response export by ID", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "exportID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "File download (JSON or CSV)", - "headers": { - "Content-Disposition": { - "description": "Indicates the filename the client should save.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "text/csv": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "404": { - "$ref": "#/components/responses/Error404" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/participants/count": { - "get": { - "tags": [ - "participants" - ], - "operationId": "dataExporter_getParticipantsCount", - "summary": "Get participants count", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "filter", - "in": "query", - "description": "bson.M object to filter participants", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - ], - "responses": { - "200": { - "description": "Count", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "count": { - "type": "integer" - } - }, - "required": [ - "count" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/participants/": { - "post": { - "tags": [ - "participants" - ], - "operationId": "dataExporter_generateParticipantsExport", - "summary": "Start participants export task", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "filter", - "in": "query", - "description": "bson.M object to filter participants", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - }, - { - "name": "sort", - "in": "query", - "description": "bson.M object to sort participants", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - ], - "responses": { - "200": { - "description": "Export started", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task": { - "$ref": "#/components/schemas/Task" - } - }, - "required": [ - "task" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/participants/task/{taskID}": { - "get": { - "tags": [ - "participants" - ], - "operationId": "dataExporter_getParticipantsTaskStatus", - "summary": "Get participants export task status", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "taskID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Task status", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task": { - "$ref": "#/components/schemas/Task" - } - } - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/participants/task/{taskID}/result": { - "get": { - "tags": [ - "participants" - ], - "operationId": "dataExporter_getParticipantsTaskResult", - "summary": "Get participants export task result", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "taskID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "File download", - "headers": { - "Content-Disposition": { - "description": "Indicates the filename the client should save.", - "schema": { - "type": "string" - } - } - }, - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "404": { - "$ref": "#/components/responses/Error404" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/reports/count": { - "get": { - "tags": [ - "reports" - ], - "operationId": "dataExporter_getReportsCount", - "summary": "Get report items count", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "reportKey", - "in": "query", - "description": "filter by report key", - "schema": { - "type": "string" - } - }, - { - "name": "pid", - "in": "query", - "description": "filter by participant ID", - "schema": { - "type": "string" - } - }, - { - "name": "from", - "in": "query", - "description": "filter by timestamp (greater than or equal to this value)", - "schema": { - "type": "integer" - } - }, - { - "name": "until", - "in": "query", - "description": "filter by timestamp (less than or equal to this value)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Count", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "count": { - "type": "integer" - } - }, - "required": [ - "count" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/reports/": { - "post": { - "tags": [ - "reports" - ], - "operationId": "dataExporter_generateReportsExport", - "summary": "Start report export task", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "reportKey", - "in": "query", - "description": "filter by report key", - "schema": { - "type": "string" - } - }, - { - "name": "pid", - "in": "query", - "description": "filter by participant ID", - "schema": { - "type": "string" - } - }, - { - "name": "from", - "in": "query", - "description": "filter by timestamp (greater than or equal to this value)", - "schema": { - "type": "integer" - } - }, - { - "name": "until", - "in": "query", - "description": "filter by timestamp (less than or equal to this value)", - "schema": { - "type": "integer" - } - }, - { - "name": "type", - "in": "query", - "description": "export type: 'csv' to download as table, 'raw' to export as JSON", - "schema": { - "type": "string", - "enum": ["raw", "csv"], - "default": "raw" - } - } - ], - "responses": { - "200": { - "description": "Export started", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task": { - "$ref": "#/components/schemas/Task" - } - }, - "required": [ - "task" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/reports/task/{taskID}": { - "get": { - "tags": [ - "reports" - ], - "operationId": "dataExporter_getReportsTaskStatus", - "summary": "Get report export task status", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "taskID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Task status", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "task": { - "$ref": "#/components/schemas/Task" - } - }, - "required": [ - "task" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/reports/task/{taskID}/result": { - "get": { - "tags": [ - "reports" - ], - "operationId": "dataExporter_getReportsTaskResult", - "summary": "Get report export task result", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "taskID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "File download", - "headers": { - "Content-Disposition": { - "description": "Indicates the filename the client should save.", - "schema": { - "type": "string" - } - } - }, - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "403": { - "$ref": "#/components/responses/Error403" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/confidential-responses/": { - "post": { - "tags": [ - "responses" - ], - "operationId": "dataExporter_getConfidentialResponses", - "summary": "Start confidential responses export task", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "participantIDs": { - "type": "array", - "items": { - "type": "string" - } - }, - "keyFilter": { - "type": "string" - } - }, - "required": [ - "participantIDs" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Export started", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "responses": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - }, - "description": "Confidential survey response export entry" - } - }, - "required": [ - "responses" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "get": { - "tags": [ - "responses" - ], - "operationId": "dataExporter_listConfidentialResponseExports", - "summary": "List confidential response exports", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Exports", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "availableFiles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "availableFiles" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-exporter/confidential-responses/{exportID}": { - "get": { - "tags": [ - "responses" - ], - "operationId": "dataExporter_getConfidentialResponseExport", - "summary": "Get confidential response export by ID", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "exportID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "File download (JSON or CSV)", - "headers": { - "Content-Disposition": { - "description": "Indicates the filename the client should save.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "text/csv": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "404": { - "$ref": "#/components/responses/Error404" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-explorer/responses/": { - "get": { - "tags": [ - "responses" - ], - "operationId": "dataExplorer_listResponses", - "summary": "List survey responses", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "shortKeys", - "in": "query", - "description": "whether to return short keys for responses", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "questionOptionSep", - "in": "query", - "description": "character used to seperate question options in response", - "required": false, - "schema": { - "type": "string", - "default": "-" - } - }, - { - "name": "format", - "in": "query", - "description": "format for survey responses", - "required": false, - "schema": { - "type": "string", - "default": "wide", - "enum": [ - "wide", - "long", - "json" - ] - } - }, - { - "name": "page", - "in": "query", - "description": "page number (starting from 1)", - "schema": { - "type": "integer", - "minimum": 1, - "default": 1 - } - }, - { - "name": "limit", - "in": "query", - "description": "maximum number of responses per page", - "schema": { - "type": "integer", - "minimum": 1, - "default": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "bson.M object to filter responses", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - }, - { - "name": "sort", - "in": "query", - "description": "bson.M object to sort responses", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - }, - { - "name": "extraContextColumns", - "in": "query", - "description": "comma-separated list of extra context columns to include in the response", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "List responses", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "responses": { - "type": "array", - "items": { - "type": "object", - "description": "Responses", - "additionalProperties": { - "type": "object" - } - } - }, - "pagination": { - "$ref": "#/components/schemas/PaginationInfos" - } - }, - "required": [ - "responses", - "pagination" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "responses" - ], - "operationId": "dataExplorer_deleteResponses", - "summary": "Delete survey responses", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "controlField", - "in": "query", - "description": "field used to control deletion (should be equal to studyKey)", - "schema": { - "type": "string" - } - }, - { - "name": "filter", - "in": "query", - "description": "bson.M object to filter responses to delete", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - ], - "responses": { - "200": { - "description": "Deleted summary", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-explorer/responses/{responseId}": { - "get": { - "tags": [ - "responses" - ], - "operationId": "dataExplorer_getResponse", - "summary": "Get survey response by ID", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "responseId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "shortKeys", - "in": "query", - "description": "whether to return short keys for response", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "questionOptionSep", - "in": "query", - "description": "character used to seperate question options in response", - "required": false, - "schema": { - "type": "string", - "default": "-" - } - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "response": { - "type": "object", - "description": "Response", - "additionalProperties": { - "type": "object" - } - } - }, - "required": [ - "response" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "responses" - ], - "operationId": "dataExplorer_deleteResponse", - "summary": "Delete survey response", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "responseId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-explorer/participants/": { - "get": { - "tags": [ - "participants" - ], - "operationId": "dataExplorer_listParticipants", - "summary": "List participants", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "page number (starting from 1)", - "schema": { - "type": "integer", - "minimum": 1, - "default": 1 - } - }, - { - "name": "limit", - "in": "query", - "description": "maximum number of participants per page", - "schema": { - "type": "integer", - "minimum": 1, - "default": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "bson.M object to filter participants", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - }, - { - "name": "sort", - "in": "query", - "description": "bson.M object to sort participants", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - ], - "responses": { - "200": { - "description": "Participants", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "participants": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Participant" - } - }, - "pagination": { - "$ref": "#/components/schemas/PaginationInfos" - } - }, - "required": [ - "participants", - "pagination" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-explorer/participants/{participantID}": { - "get": { - "tags": [ - "participants" - ], - "operationId": "dataExplorer_getParticipant", - "summary": "Get participant", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "participantID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Participant", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "participant": { - "$ref": "#/components/schemas/Participant" - } - }, - "required": [ - "participant" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-explorer/reports/keys": { - "get": { - "tags": [ - "reports" - ], - "operationId": "dataExplorer_listReportKeys", - "summary": "List available report keys", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pid", - "in": "query", - "description": "filter by participant ID", - "schema": { - "type": "string" - } - }, - { - "name": "from", - "in": "query", - "description": "filter by timestamp (greater than or equal to this value)", - "schema": { - "type": "integer" - } - }, - { - "name": "until", - "in": "query", - "description": "filter by timestamp (less than or equal to this value)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Report keys", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "reportKeys": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "reportKeys" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-explorer/reports/": { - "get": { - "tags": [ - "reports" - ], - "operationId": "dataExplorer_listReports", - "summary": "List reports", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "reportKey", - "in": "query", - "description": "filter by report key", - "schema": { - "type": "string" - } - }, - { - "name": "pid", - "in": "query", - "description": "filter by participant ID", - "schema": { - "type": "string" - } - }, - { - "name": "from", - "in": "query", - "description": "filter by timestamp (greater than or equal to this value)", - "schema": { - "type": "integer" - } - }, - { - "name": "until", - "in": "query", - "description": "filter by timestamp (less than or equal to this value)", - "schema": { - "type": "integer" - } - }, - { - "name": "page", - "in": "query", - "description": "page number (starting from 1)", - "schema": { - "type": "integer", - "minimum": 1, - "default": 1 - } - }, - { - "name": "limit", - "in": "query", - "description": "maximum number of reports per page", - "schema": { - "type": "integer", - "minimum": 1, - "default": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "bson.M object to filter files", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - ], - "responses": { - "200": { - "description": "Reports", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "reports": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Report" - } - }, - "pagination": { - "$ref": "#/components/schemas/PaginationInfos" - } - }, - "required": [ - "reports", - "pagination" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-explorer/reports/{reportID}": { - "get": { - "tags": [ - "reports" - ], - "operationId": "dataExplorer_getReport", - "summary": "Get report by ID", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "reportID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Report", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "report": { - "$ref": "#/components/schemas/Report" - } - }, - "required": [ - "report" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-explorer/files/": { - "get": { - "tags": [ - "files" - ], - "operationId": "dataExplorer_listFiles", - "summary": "List files", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "page number (starting from 1)", - "schema": { - "type": "integer", - "minimum": 1, - "default": 1 - } - }, - { - "name": "limit", - "in": "query", - "description": "maximum number of files per page", - "schema": { - "type": "integer", - "minimum": 1, - "default": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "bson.M object to filter files", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - ], - "responses": { - "200": { - "description": "Files", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FileInfo" - } - }, - "pagination": { - "$ref": "#/components/schemas/PaginationInfos" - } - }, - "required": [ - "files", - "pagination" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/studies/{studyKey}/data-explorer/files/{fileID}": { - "get": { - "tags": [ - "files" - ], - "operationId": "dataExplorer_getFile", - "summary": "Get file by ID", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fileID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "File", - "content": { - "application/octet-stream": { - "schema": { - "type": "string", - "format": "binary" - } - } - }, - "headers": { - "Content-Disposition": { - "description": "The filename suggested for the download.", - "schema": { - "type": "string" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "404": { - "$ref": "#/components/responses/Error404" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "files" - ], - "operationId": "dataExplorer_deleteFile", - "summary": "Delete file", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fileID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/management-users": { - "get": { - "tags": [ - "user-management" - ], - "summary": "List management users", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_listManagementUsers", - "responses": { - "200": { - "description": "List management users", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ManagementUser" - } - } - }, - "required": [ - "users" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/management-users/{userID}": { - "get": { - "tags": [ - "user-management" - ], - "summary": "Get management user", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_getManagementUser", - "parameters": [ - { - "name": "userID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Management user", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user": { - "$ref": "#/components/schemas/ManagementUser" - } - }, - "required": [ - "user" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "user-management" - ], - "summary": "Delete management user", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_deleteManagementUser", - "parameters": [ - { - "name": "userID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted management user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/management-users/{userID}/permissions": { - "get": { - "tags": [ - "user-management" - ], - "summary": "List user permissions", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_listUserPermissions", - "parameters": [ - { - "name": "userID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Permissions", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "permissions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Permission" - } - } - }, - "required": [ - "permissions" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "user-management" - ], - "summary": "Add permission to user", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_addPermissionToUser", - "parameters": [ - { - "name": "userID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Permission" - } - } - } - }, - "responses": { - "200": { - "description": "Added permission", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "permission": { - "$ref": "#/components/schemas/Permission" - } - }, - "required": [ - "permission" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/management-users/{userID}/permissions/{permissionID}": { - "delete": { - "tags": [ - "user-management" - ], - "summary": "Delete user permission", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_deleteUserPermission", - "parameters": [ - { - "name": "userID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "permissionID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/management-users/{userID}/permissions/{permissionID}/limiter": { - "put": { - "tags": [ - "user-management" - ], - "summary": "Update permission limiter", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_updatePermissionLimiter", - "parameters": [ - { - "name": "userID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "permissionID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Permission" - } - } - } - }, - "responses": { - "200": { - "description": "Updated limiter", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/management-users/{userID}/app-roles": { - "get": { - "tags": [ - "app-roles" - ], - "summary": "List app roles for user", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_listUserAppRoles", - "parameters": [ - { - "name": "userID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "App roles", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appRoles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AppRole" - } - } - }, - "required": [ - "appRoles" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/management-users/{userID}/app-roles/{appRoleTemplateID}": { - "post": { - "tags": [ - "app-roles" - ], - "summary": "Add app role to user", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_addAppRoleToUser", - "parameters": [ - { - "name": "userID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "appRoleTemplateID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Added app role", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/management-users/{userID}/app-roles/{appRoleID}": { - "delete": { - "tags": [ - "app-roles" - ], - "summary": "Remove app role from user", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_removeUserAppRole", - "parameters": [ - { - "name": "userID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "appRoleID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Removed role", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/app-roles/templates/": { - "get": { - "tags": [ - "app-roles" - ], - "summary": "List app role templates", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_listAppRoleTemplates", - "responses": { - "200": { - "description": "Templates", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appRoleTemplates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AppRoleTemplate" - } - } - }, - "required": [ - "appRoleTemplates" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "app-roles" - ], - "summary": "Create app role template", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_createAppRoleTemplate", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appName": { - "type": "string" - }, - "role": { - "type": "string" - }, - "requiredPermissions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Permission" - } - } - }, - "required": [ - "appName", - "role" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Created template", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/app-roles/templates/{appRoleTemplateID}": { - "get": { - "tags": [ - "app-roles" - ], - "summary": "Get app role template", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_getAppRoleTemplate", - "parameters": [ - { - "name": "appRoleTemplateID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Template", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appRoleTemplate": { - "$ref": "#/components/schemas/AppRoleTemplate" - } - }, - "required": [ - "appRoleTemplate" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "put": { - "tags": [ - "app-roles" - ], - "summary": "Update app role template", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_updateAppRoleTemplate", - "parameters": [ - { - "name": "appRoleTemplateID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appName": { - "type": "string" - }, - "role": { - "type": "string" - }, - "requiredPermissions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Permission" - } - } - }, - "required": [ - "appName", - "role" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Updated template", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/app-roles/templates/delete/{appRoleTemplateID}": { - "delete": { - "tags": [ - "app-roles" - ], - "summary": "Delete app role template", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_deleteAppRoleTemplate", - "parameters": [ - { - "name": "appRoleTemplateID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/app-roles/templates/delete-for-app/{appName}": { - "delete": { - "tags": [ - "app-roles" - ], - "summary": "Delete app role templates for app", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_deleteAppRoleTemplatesForApp", - "parameters": [ - { - "name": "appName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted templates", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/app-roles/": { - "get": { - "tags": [ - "app-roles" - ], - "summary": "List app roles", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_listAppRoles", - "responses": { - "200": { - "description": "App roles", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appRoles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AppRole" - } - } - }, - "required": [ - "appRoles" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/app-roles/delete/{appName}": { - "delete": { - "tags": [ - "app-roles" - ], - "summary": "Delete app roles for app", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_deleteAppRolesForApp", - "parameters": [ - { - "name": "appName", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted app roles", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/participant-users/request-deletion": { - "post": { - "tags": [ - "user-management" - ], - "summary": "Request participant user deletion", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_requestParticipantUserDeletion", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "format": "email" - } - }, - "required": [ - "email" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Deletion requested", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/service-accounts/": { - "get": { - "tags": [ - "service-accounts" - ], - "summary": "List service accounts", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_listServiceAccounts", - "responses": { - "200": { - "description": "Service accounts", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "serviceAccounts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceUser" - } - } - }, - "required": [ - "serviceAccounts" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "service-accounts" - ], - "summary": "Create service account", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_createServiceAccount", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "label", - "description" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Created service account", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "serviceAccount": { - "$ref": "#/components/schemas/ServiceUser" - } - }, - "required": [ - "serviceAccount" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/service-accounts/{serviceAccountID}": { - "get": { - "tags": [ - "service-accounts" - ], - "summary": "Get service account", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_getServiceAccount", - "parameters": [ - { - "name": "serviceAccountID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Service account", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "serviceAccount": { - "$ref": "#/components/schemas/ServiceUser" - } - }, - "required": [ - "serviceAccount" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "put": { - "tags": [ - "service-accounts" - ], - "summary": "Update service account", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_updateServiceAccount", - "parameters": [ - { - "name": "serviceAccountID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "label", - "description" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Updated service account", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "serviceAccount": { - "$ref": "#/components/schemas/ServiceUser" - } - }, - "required": [ - "serviceAccount" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": [ - "service-accounts" - ], - "summary": "Delete service account", - "operationId": "userManagement_deleteServiceAccount", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "serviceAccountID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted service account", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/service-accounts/{serviceAccountID}/api-keys": { - "get": { - "tags": [ - "service-accounts" - ], - "summary": "List service account API keys", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_listServiceAccountAPIKeys", - "parameters": [ - { - "name": "serviceAccountID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "API keys", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "apiKeys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceUserAPIKey" - } - } - }, - "required": [ - "apiKeys" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "service-accounts" - ], - "summary": "Create service account API key", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_createServiceAccountAPIKey", - "parameters": [ - { - "name": "serviceAccountID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "expiresAt": { - "type": "integer" - } - }, - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Created API key", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/service-accounts/{serviceAccountID}/api-keys/{apiKeyID}": { - "delete": { - "tags": [ - "service-accounts" - ], - "summary": "Delete service account API key", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_deleteServiceAccountAPIKey", - "parameters": [ - { - "name": "serviceAccountID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "apiKeyID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted API key", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - }, - "required": [ - "success" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/service-accounts/{serviceAccountID}/permissions": { - "get": { - "tags": [ - "service-accounts" - ], - "summary": "List service account permissions", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_listServiceAccountPermissions", - "parameters": [ - { - "name": "serviceAccountID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Permissions", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "permissions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Permission" - } - } - }, - "required": [ - "permissions" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": [ - "service-accounts" - ], - "summary": "Add permission to service account", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_addPermissionToServiceAccount", - "parameters": [ - { - "name": "serviceAccountID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Permission" - } - } - } - }, - "responses": { - "200": { - "description": "Added permission", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "permission": { - "$ref": "#/components/schemas/Permission" - } - }, - "required": [ - "permission" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/service-accounts/{serviceAccountID}/permissions/{permissionID}": { - "delete": { - "tags": [ - "service-accounts" - ], - "summary": "Delete service account permission", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "userManagement_deleteServiceAccountPermission", - "parameters": [ - { - "name": "serviceAccountID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "permissionID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Deleted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user-management/service-accounts/{serviceAccountID}/permissions/{permissionID}/limiter": { - "put": { - "tags": [ - "service-accounts" - ], - "summary": "Update service account permission limiter", - "operationId": "userManagement_updateServiceAccountPermissionLimiter", - "security": [ - { - "BearerAuth": [] - } - ], - "parameters": [ - { - "name": "serviceAccountID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "permissionID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Permission" - } - } - } - }, - "responses": { - "200": { - "description": "Updated permission limiter", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - } - } -} diff --git a/public/openapi/participant-api.json b/public/openapi/participant-api.json deleted file mode 100644 index 92e1b67..0000000 --- a/public/openapi/participant-api.json +++ /dev/null @@ -1,4054 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "Participant API", - "version": "1.0.0", - "description": "Endpoints for participant authentication, user management, and study interactions." - }, - "paths": { - "/": { - "get": { - "summary": "Health check", - "operationId": "getHealth", - "tags": [ - "misc" - ], - "responses": { - "200": { - "description": "Service is healthy", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HealthStatus" - }, - "examples": { - "ok": { - "value": { - "status": "ok" - } - } - } - } - } - } - } - } - }, - "/v1/auth/login": { - "post": { - "tags": [ - "auth" - ], - "summary": "Login with email and password", - "operationId": "loginWithEmail", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "format": "email" - }, - "password": { - "type": "string" - }, - "instanceId": { - "type": "string" - } - }, - "required": [ - "email", - "password", - "instanceId" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Access and refresh tokens with user", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "$ref": "#/components/schemas/TokenEnvelope" - }, - "user": { - "$ref": "#/components/schemas/User" - } - }, - "required": [ - "token", - "user" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/signup": { - "post": { - "tags": [ - "auth" - ], - "summary": "Sign up with email", - "operationId": "signupWithEmail", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "format": "email" - }, - "password": { - "type": "string" - }, - "instanceId": { - "type": "string" - }, - "infoCheck": { - "type": "string" - }, - "preferredLanguage": { - "type": "string" - }, - "withAttributes": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "attributes": { - "type": "object", - "additionalProperties": true - } - } - } - }, - "required": [ - "email", - "password", - "instanceId" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Access and refresh tokens with user", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "$ref": "#/components/schemas/TokenEnvelope" - }, - "user": { - "$ref": "#/components/schemas/User" - } - }, - "required": [ - "token", - "user" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "429": { - "$ref": "#/components/responses/Error429" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/login-with-temptoken": { - "post": { - "tags": [ - "auth" - ], - "summary": "Login using a temporary token (optionally with password or access token)", - "operationId": "loginWithTempToken", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "tempToken": { - "type": "string" - }, - "accessToken": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "required": [ - "tempToken" - ], - "additionalProperties": false, - "description": "Provide either accessToken or password along with tempToken." - } - } - } - }, - "responses": { - "200": { - "description": "Access and refresh tokens with user", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "$ref": "#/components/schemas/TokenEnvelopeWithLastOTP" - }, - "user": { - "$ref": "#/components/schemas/User" - } - }, - "required": [ - "token", - "user" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/temptoken-info": { - "post": { - "tags": [ - "auth" - ], - "summary": "Get info for a temporary token", - "operationId": "getTempTokenInfo", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "instanceId": { - "type": "string" - }, - "tempToken": { - "type": "string" - } - }, - "required": [ - "instanceId", - "tempToken" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Info returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "userID": { - "type": "string" - }, - "email": { - "type": "string", - "format": "email" - } - }, - "required": [ - "userID", - "email" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/token/renew": { - "post": { - "tags": [ - "auth" - ], - "summary": "Renew access token", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "renewToken", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "refreshToken": { - "type": "string" - } - }, - "required": [ - "refreshToken" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Access and refresh tokens with user", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "$ref": "#/components/schemas/TokenEnvelopeWithLastOTP" - }, - "user": { - "$ref": "#/components/schemas/User" - } - }, - "required": [ - "token", - "user" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/token/validate": { - "get": { - "tags": [ - "auth" - ], - "summary": "Validate access token", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "validateToken", - "responses": { - "200": { - "description": "Token valid", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "tokenInfos": { - "type": "object", - "description": "Decoded participant user JWT claims", - "additionalProperties": true - } - }, - "required": [ - "tokenInfos" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - } - } - } - }, - "/v1/auth/token/revoke": { - "get": { - "tags": [ - "auth" - ], - "summary": "Revoke refresh tokens for user", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "revokeTokens", - "responses": { - "200": { - "description": "Revoked", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/resend-email-verification": { - "post": { - "tags": [ - "auth" - ], - "summary": "Resend email verification", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "resendEmailVerification", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "format": "email" - } - }, - "required": [ - "email" - ] - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "429": { - "$ref": "#/components/responses/Error429" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/verify-email": { - "post": { - "tags": [ - "auth" - ], - "summary": "Verify email by token", - "operationId": "verifyEmail", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - } - }, - "required": [ - "token" - ] - } - } - } - }, - "responses": { - "200": { - "description": "User returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user": { - "$ref": "#/components/schemas/User" - } - }, - "required": [ - "user" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/logout": { - "post": { - "tags": [ - "auth" - ], - "summary": "Logout user (invalidate current session)", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "logout", - "responses": { - "200": { - "description": "User logged out", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "tokensRevoked": { - "type": "integer" - } - }, - "required": [ - "message", - "tokensRevoked" - ], - "additionalProperties": false - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/otp": { - "get": { - "tags": [ - "auth" - ], - "summary": "Request OTP (email by default)", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "requestOTP", - "parameters": [ - { - "name": "type", - "in": "query", - "schema": { - "type": "string", - "enum": [ - "email", - "sms" - ], - "default": "email" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/auth/otp/verify": { - "post": { - "tags": [ - "auth" - ], - "summary": "Verify OTP code", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "verifyOTP", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "code": { - "type": "string" - } - }, - "required": [ - "code" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Access and refresh tokens with user", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "$ref": "#/components/schemas/TokenEnvelopeWithLastOTP" - }, - "user": { - "$ref": "#/components/schemas/User" - } - }, - "required": [ - "token", - "user" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/password-reset/initiate": { - "post": { - "tags": ["password"], - "summary": "Initiate password reset", - "operationId": "initiatePasswordReset", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "format": "email" - }, - "instanceID": { - "type": "string" - } - }, - "required": [ - "email", - "instanceID" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "429": { - "$ref": "#/components/responses/Error429" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/password-reset/get-infos": { - "post": { - "tags": ["password"], - "summary": "Get info for a password reset token", - "operationId": "getPasswordResetInfos", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - } - }, - "required": [ - "token" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Account ID returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "accountId": { - "type": "string" - } - }, - "required": [ - "accountId" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/password-reset/reset": { - "post": { - "tags": ["password"], - "summary": "Reset password", - "operationId": "resetPassword", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "newPassword": { - "type": "string" - } - }, - "required": [ - "token", - "newPassword" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/studies/": { - "get": { - "tags": ["studies"], - "summary": "List studies by status", - "operationId": "getStudiesByStatus", - "parameters": [ - { - "name": "instanceID", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "status", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "studies": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "status": { - "type": "string" - }, - "props": { - "type": "object", - "additionalProperties": true - }, - "stats": { - "type": "object", - "additionalProperties": true - } - }, - "required": [ - "key", - "status", - "props", - "stats" - ] - } - } - }, - "required": [ - "studies" - ] - } - } - } - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/studies/{studyKey}": { - "get": { - "tags": ["studies"], - "summary": "Get study by key", - "operationId": "getStudy", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "instanceID", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "study": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "status": { - "type": "string" - }, - "props": { - "type": "object", - "additionalProperties": true - }, - "stats": { - "type": "object", - "additionalProperties": true - } - }, - "required": [ - "key", - "status", - "props", - "stats" - ] - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/studies/{studyKey}/code-lists/has-code": { - "get": { - "tags": ["studies"], - "summary": "Check if a code exists in a code list", - "operationId": "studyHasCodeListCode", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "instanceID", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "listKey", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "code", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "exists": { - "type": "boolean" - } - }, - "required": [ - "exists" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/studies/{studyKey}/code-lists/available-count": { - "get": { - "tags": ["studies"], - "summary": "Count available codes in a code list", - "operationId": "getStudyCodeListAvailableCount", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { "type": "string" } - }, - { - "name": "listKey", - "in": "query", - "required": true, - "schema": { "type": "string" } - }, - { - "name": "instanceID", - "in": "query", - "required": true, - "schema": { "type": "string" } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "availableCount": { - "type": "integer" - } - }, - "required": [ - "availableCount" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/studies/{studyKey}/variables": { - "get": { - "tags": ["studies"], - "summary": "List variables for a study", - "operationId": "getStudyVariables", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "instanceID", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "variables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StudyVariables" - } - } - }, - "required": [ - "variables" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/studies/{studyKey}/variables/{variableKey}": { - "get": { - "tags": ["studies"], - "summary": "Get a study variable", - "operationId": "getStudyVariable", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "variableKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "instanceID", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "variable": { - "$ref": "#/components/schemas/StudyVariables" - } - }, - "required": [ - "variable" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/studies/participating": { - "get": { - "tags": ["studies"], - "summary": "List studies the user participates in", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "getParticipatingStudies", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "studies": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StudyInfo" - } - } - }, - "required": [ - "studies" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/events/{studyKey}/enter": { - "post": { - "tags": ["events"], - "summary": "Enter a study", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "enterStudy", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "profileID": { - "type": "string" - } - }, - "required": [ - "profileID" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Assigned surveys returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "assignedSurveys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssignedSurvey" - } - } - }, - "required": [ - "assignedSurveys" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/events/{studyKey}/custom": { - "post": { - "tags": ["events"], - "summary": "Trigger a custom study event", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "customStudyEvent", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "eventKey": { - "type": "string" - }, - "profileID": { - "type": "string" - }, - "payload": { - "type": "object", - "additionalProperties": true - } - }, - "required": [ - "eventKey", - "profileID" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Assigned surveys returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "assignedSurveys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssignedSurvey" - } - } - }, - "required": [ - "assignedSurveys" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/events/{studyKey}/submit": { - "post": { - "tags": ["events"], - "summary": "Submit survey response", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "submitSurveyEvent", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "profileID": { - "type": "string" - }, - "response": { - "type": "object", - "description": "SurveyResponse", - "additionalProperties": true - } - }, - "required": [ - "profileID", - "response" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Assigned surveys returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "assignedSurveys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssignedSurvey" - } - } - }, - "required": [ - "assignedSurveys" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/events/{studyKey}/leave": { - "post": { - "tags": ["events"], - "summary": "Leave a study", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "leaveStudyEvent", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "profileID": { - "type": "string" - } - }, - "required": [ - "profileID" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Assigned surveys returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "assignedSurveys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssignedSurvey" - } - } - }, - "required": [ - "assignedSurveys" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/events/{studyKey}/merge-temporary-participant": { - "post": { - "tags": ["events"], - "summary": "Merge temporary participant into user profile", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "mergeTempParticipant", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "profileID": { - "type": "string" - }, - "temporaryParticipantID": { - "type": "string" - } - }, - "required": [ - "profileID", - "temporaryParticipantID" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Assigned surveys of participant returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "assignedSurveys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssignedSurvey" - } - } - }, - "required": [ - "assignedSurveys" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/events/{studyKey}/merge-virtual-participant": { - "post": { - "tags": ["events"], - "summary": "Merge a virtual participant into user profile by linking code", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "mergeVirtualParticipant", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "profileID": { - "type": "string" - }, - "virtualParticipantID": { - "type": "string" - }, - "linkingCodeKey": { - "type": "string" - }, - "linkingCodeValue": { - "type": "string" - } - }, - "required": [ - "profileID", - "virtualParticipantID", - "linkingCodeKey", - "linkingCodeValue" - ], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "description": "Assigned surveys of merged participant returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "assignedSurveys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssignedSurvey" - } - } - }, - "required": [ - "assignedSurveys" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/participant-data/{studyKey}/surveys": { - "get": { - "tags": ["participant-data"], - "summary": "Get assigned surveys for profiles", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "getAssignedSurveys", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pids", - "in": "query", - "required": true, - "description": "Comma-separated profile IDs", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Assigned surveys with survey infos returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AssignedSurveysWithInfos" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/participant-data/{studyKey}/survey/{surveyKey}": { - "get": { - "tags": ["participant-data"], - "summary": "Get a specific survey with context", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "getSurveyWithContext", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pid", - "in": "query", - "required": true, - "description": "Profile ID", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Survey with context returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "surveyWithContext": { - "$ref": "#/components/schemas/AssignedSurveyWithContext" - } - }, - "required": [ - "surveyWithContext" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/participant-data/{studyKey}/participant-state": { - "get": { - "tags": ["participant-data"], - "summary": "Get participant state", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "getParticipantState", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pid", - "in": "query", - "required": true, - "description": "Profile ID", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Participant state returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "participant": { - "$ref": "#/components/schemas/Participant" - } - }, - "required": [ - "participant" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/participant-data/{studyKey}/linking-code": { - "get": { - "tags": ["participant-data"], - "summary": "Get a linking code by key", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "getLinkingCode", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pid", - "in": "query", - "required": true, - "description": "Profile ID", - "schema": { - "type": "string" - } - }, - { - "name": "key", - "in": "query", - "required": true, - "description": "Key for linking code", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Linking code returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "linkingCode": { - "type": "string" - } - }, - "required": [ - "linkingCode" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/participant-data/{studyKey}/responses": { - "get": { - "tags": ["participant-data"], - "summary": "Get survey responses for a profile", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "getStudyResponsesForProfile", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pid", - "in": "query", - "required": false, - "description": "Profile ID", - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "page number (starting from 1)", - "schema": { - "type": "integer", - "minimum": 1, - "default": 1 - } - }, - { - "name": "limit", - "in": "query", - "description": "maximum number of responses per page", - "schema": { - "type": "integer", - "minimum": 1, - "default": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "bson.M object to filter responses", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - }, - { - "name": "sort", - "in": "query", - "description": "bson.M object to sort responses", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - }, - { - "name": "shortKeys", - "in": "query", - "description": "whether to return short keys for responses", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "questionOptionSep", - "in": "query", - "description": "character used to seperate slot keys in response", - "schema": { - "type": "string", - "default": "-" - } - }, - { - "name": "format", - "in": "query", - "description": "format for survey responses", - "schema": { - "type": "string", - "default": "wide", - "enum": ["wide", "long", "json"] - } - }, - { - "name": "extraContextColumns", - "in": "query", - "description": "comma-separated list of extra context columns to include in the response", - "schema": { - "type": "string" - } - } - - ], - "responses": { - "200": { - "description": "Responses returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "responses": { - "type": "array", - "items": { - "type": "object", - "description": "Responses", - "additionalProperties": { - "type": "object" - } - } - }, - "pagination": { - "$ref": "#/components/schemas/PaginationInfos" - } - }, - "required": [ - "responses", - "pagination" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/participant-data/{studyKey}/confidential-response": { - "get": { - "tags": ["participant-data"], - "summary": "Get confidential responses by key", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "getConfidentialResponse", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pid", - "in": "query", - "required": true, - "description": "Profile ID", - "schema": { - "type": "string" - } - }, - { - "name": "key", - "in": "query", - "required": true, - "description": "Key for confidential responses", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Confidential responses returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "confidentialResponse": { - "type": "array", - "items": { - "type": "object", - "description": "Confidential survey response export entry", - "additionalProperties": true - } - } - }, - "required": [ - "confidentialResponse" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/participant-data/{studyKey}/submission-history": { - "get": { - "tags": ["participant-data"], - "summary": "Get submission history for profiles", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "getSubmissionHistory", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pids", - "in": "query", - "required": true, - "description": "Comma-separated profile IDs", - "schema": { - "type": "string" - } - }, - { - "name": "limit", - "in": "query", - "required": false, - "description": "Maximum number of submissions per page", - "schema": { - "type": "integer", - "default": 100, - "minimum": 1 - } - } - ], - "responses": { - "200": { - "description": "Submission history returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "submissionHistory": { - "$ref": "#/components/schemas/SubmissionHistory" - } - }, - "required": [ - "submissionHistory" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/participant-data/{studyKey}/reports": { - "get": { - "tags": ["participant-data"], - "summary": "Get reports for a profile", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "getReports", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pid", - "in": "query", - "required": true, - "description": "Profile ID", - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "page number (starting from 1)", - "schema": { - "type": "integer", - "minimum": 1, - "default": 1 - } - }, - { - "name": "limit", - "in": "query", - "description": "maximum number of reports per page", - "schema": { - "type": "integer", - "minimum": 1, - "default": 10 - } - }, - { - "name": "filter", - "in": "query", - "description": "bson.M object to filter reports", - "schema": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - ], - "responses": { - "200": { - "description": "Reports returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "reports": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Report" - } - }, - "pagination": { - "$ref": "#/components/schemas/PaginationInfos" - } - }, - "required": [ - "reports", - "pagination" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/temp-participant/register": { - "post": { - "tags": ["events"], - "summary": "Register a temporary participant", - "operationId": "registerTempParticipant", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "instanceId": { - "type": "string" - }, - "studyKey": { - "type": "string" - } - }, - "required": [ - "instanceId", - "studyKey" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Temporary participant returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "participant": { - "$ref": "#/components/schemas/Participant" - } - }, - "required": [ - "participant" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/temp-participant/surveys": { - "get": { - "tags": ["participant-data"], - "summary": "Get assigned surveys for a temporary participant", - "operationId": "getTempParticipantSurveys", - "parameters": [ - { - "name": "instanceID", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "studyKey", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pid", - "in": "query", - "required": true, - "description": "Profile ID", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Assigned surveys with survey infos returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AssignedSurveysWithInfos" - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/temp-participant/survey": { - "get": { - "tags": ["participant-data"], - "summary": "Get a survey with context for a temporary participant", - "operationId": "getTempParticipantSurveyWithContext", - "parameters": [ - { - "name": "instanceID", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "studyKey", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "surveyKey", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pid", - "in": "query", - "required": false, - "description": "Profile ID", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Survey with context returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "surveyWithContext": { - "$ref": "#/components/schemas/AssignedSurveyWithContext" - } - }, - "required": [ - "surveyWithContext" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/temp-participant/submit-response": { - "post": { - "tags": ["events"], - "summary": "Submit a survey response for a temporary participant", - "operationId": "submitTempParticipantResponse", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "instanceId": { - "type": "string" - }, - "studyKey": { - "type": "string" - }, - "pid": { - "type": "string" - }, - "response": { - "type": "object", - "additionalProperties": true - } - }, - "required": [ - "instanceId", - "studyKey", - "pid", - "response" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Assigned surveys returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "assignedSurveys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssignedSurvey" - } - } - }, - "required": [ - "assignedSurveys" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/virtual-participants/{studyKey}/": { - "get": { - "tags": ["participant-data"], - "summary": "Get virtual participants by linking code", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "getVirtualParticipantsByLinkingCode", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "key", - "in": "query", - "required": true, - "description": "Linking code key", - "schema": { - "type": "string" - } - }, - { - "name": "value", - "in": "query", - "required": true, - "description": "Linking code value", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Participants returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "participants": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Participant" - } - } - }, - "required": [ - "participants" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/study-service/participant-data/{studyKey}/files": { - "post": { - "tags": ["participant-data"], - "summary": "Upload participant file", - "security": [ { "BearerAuth": [] } ], - "operationId": "uploadParticipantFile", - "parameters": [ - { - "name": "studyKey", - "in": "path", - "required": true, - "schema": { "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "multipart/form-data": { - "schema": { - "type": "object", - "properties": { - "profileID": { - "type": "string", - "description": "ID of the profile" - }, - "file": { - "type": "string", - "format": "binary", - "description": "File to upload. Only 'image/jpeg' and 'image/png' are allowed." - } - }, - "required": ["profileID", "file"] - } - } - } - }, - "responses": { - "200": { - "description": "File uploaded", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "id": { "type": "string", "description": "object ID of the uploaded file" }, - "path": { "type": "string" }, - "status": { "type": "string", "const": "ready" } - }, - "required": ["id", "path", "status"], - "additionalProperties": false - } - } - } - }, - "400": { "$ref": "#/components/responses/Error400" }, - "401": { "$ref": "#/components/responses/Error401" }, - "403": { "$ref": "#/components/responses/Error403" }, - "500": { "$ref": "#/components/responses/Error500" } - } - }, - "get": { - "tags": ["participant-data"], - "summary": "List participant files", - "security": [ { "BearerAuth": [] } ], - "operationId": "listParticipantFiles", - "parameters": [ - { "name": "studyKey", "in": "path", "required": true, "schema": { "type": "string" } }, - { "name": "pid", "in": "query", "required": true, "description": "Profile ID", "schema": { "type": "string" } }, - { "name": "page", "in": "query", "description": "page number (starting from 1)", "schema": { "type": "integer", "minimum": 1, "default": 1 } }, - { "name": "limit", "in": "query", "description": "maximum number of files per page", "schema": { "type": "integer", "minimum": 1, "default": 10 } } - ], - "responses": { - "200": { - "description": "Files returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "fileInfos": { "type": "array", "items": { "$ref": "#/components/schemas/FileInfo" } }, - "pagination": { "$ref": "#/components/schemas/PaginationInfos" } - }, - "required": ["fileInfos", "pagination"], - "additionalProperties": false - } - } - } - }, - "400": { "$ref": "#/components/responses/Error400" }, - "401": { "$ref": "#/components/responses/Error401" }, - "500": { "$ref": "#/components/responses/Error500" } - } - } - }, - "/v1/study-service/participant-data/{studyKey}/files/{fileID}": { - "get": { - "tags": ["participant-data"], - "summary": "Download participant file", - "security": [ { "BearerAuth": [] } ], - "operationId": "getParticipantFile", - "parameters": [ - { "name": "studyKey", "in": "path", "required": true, "schema": { "type": "string" } }, - { "name": "fileID", "in": "path", "required": true, "schema": { "type": "string" } }, - { "name": "pid", "in": "query", "required": true, "description": "Profile ID", "schema": { "type": "string" } } - ], - "responses": { - "200": { - "description": "File", - "content": { - "application/octet-stream": { - "schema": { "type": "string", "format": "binary" } - } - } - }, - "400": { "$ref": "#/components/responses/Error400" }, - "401": { "$ref": "#/components/responses/Error401" }, - "404": { "$ref": "#/components/responses/Error404" }, - "500": { "$ref": "#/components/responses/Error500" } - } - }, - "delete": { - "tags": ["participant-data"], - "summary": "Delete participant file", - "security": [ { "BearerAuth": [] } ], - "operationId": "deleteParticipantFile", - "parameters": [ - { "name": "studyKey", "in": "path", "required": true, "schema": { "type": "string" } }, - { "name": "fileID", "in": "path", "required": true, "schema": { "type": "string" } }, - { "name": "pid", "in": "query", "required": true, "description": "Profile ID", "schema": { "type": "string" } } - ], - "responses": { - "200": { "description": "Deleted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Message" } } } }, - "400": { "$ref": "#/components/responses/Error400" }, - "401": { "$ref": "#/components/responses/Error401" }, - "404": { "$ref": "#/components/responses/Error404" }, - "500": { "$ref": "#/components/responses/Error500" } - } - } - }, - "/v1/user/": { - "get": { - "tags": ["user"], - "summary": "Get current user", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "getUser", - "responses": { - "200": { - "description": "User returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "user": { - "$ref": "#/components/schemas/User" - } - }, - "required": [ - "user" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "delete": { - "tags": ["user"], - "summary": "Delete current user", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "deleteUser", - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "exitSurveyResponse": { - "type": "object", - "additionalProperties": true - } - } - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user/preferred-language": { - "put": { - "summary": "Update the account's preferred language", - "tags": ["user"], - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "updatePreferredLanguage", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "newLocale": { "type": "string", "description": "language code, e.g., en, de-DE" } - }, - "required": ["newLocale"], - "additionalProperties": false - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user/profiles": { - "post": { - "tags": ["user"], - "summary": "Add new profile", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "addProfile", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "profile": { - "$ref": "#/components/schemas/Profile" - } - }, - "required": [ - "profile" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Profile added", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "profile": { - "$ref": "#/components/schemas/Profile" - } - }, - "required": [ - "profile" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "put": { - "tags": ["user"], - "summary": "Update profile", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "updateProfile", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "profile": { - "$ref": "#/components/schemas/Profile" - } - }, - "required": [ - "profile" - ] - } - } - } - }, - "responses": { - "200": { - "description": "Profile updated", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "profile": { - "$ref": "#/components/schemas/Profile" - } - }, - "required": [ - "profile" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user/profiles/remove": { - "post": { - "tags": ["user"], - "summary": "Remove a profile", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "removeProfile", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "profileId": { - "type": "string" - }, - "exitSurveyResponse": { - "type": "object", - "additionalProperties": true - } - }, - "required": [ - "profileId" - ] - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user/password": { - "post": { - "tags": ["user"], - "summary": "Change password", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "changePassword", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "oldPassword": { - "type": "string" - }, - "newPassword": { - "type": "string" - } - }, - "required": [ - "oldPassword", - "newPassword" - ] - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user/change-account-email": { - "post": { - "tags": ["user"], - "summary": "Change account email", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "changeAccountEmail", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "format": "email" - }, - "password": { - "type": "string" - } - }, - "required": [ - "email", - "password" - ] - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user/change-phone-number": { - "post": { - "tags": ["user"], - "summary": "Change phone number", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "changePhoneNumber", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "newPhoneNumber": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "required": [ - "newPhoneNumber", - "password" - ] - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "429": { - "$ref": "#/components/responses/Error429" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user/request-phone-number-verification": { - "get": { - "tags": ["user"], - "summary": "Request phone number verification code via SMS", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "requestPhoneNumberVerification", - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "429": { - "$ref": "#/components/responses/Error429" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user/attributes": { - "get": { - "tags": ["user"], - "summary": "Get user attributes", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "getUserAttributes", - "responses": { - "200": { - "description": "Attributes returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "attributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserAttributes" - } - } - }, - "required": [ - "attributes" - ] - } - } - } - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - }, - "post": { - "tags": ["user"], - "summary": "Create or update a user attribute", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "setUserAttribute", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "attributes": { - "type": "object", - "additionalProperties": true - } - }, - "required": [ - "type", - "attributes" - ] - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user/attributes/{attributeID}": { - "delete": { - "tags": ["user"], - "summary": "Delete a user attribute", - "security": [ - { - "BearerAuth": [] - } - ], - "operationId": "deleteUserAttribute", - "parameters": [ - { - "name": "attributeID", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "401": { - "$ref": "#/components/responses/Error401" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - }, - "/v1/user/contact-preferences": { - "put": { - "tags": ["user"], - "summary": "Update contact preferences", - "description": "Update the user's newsletter and weekly subscription preferences.", - "security": [ - { "BearerAuth": [] } - ], - "operationId": "updateContactPreferences", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "subscribedToNewsletter": { - "type": "boolean" - }, - "toggleWeeklySubscription": { - "type": "boolean" - } - }, - "required": [ - "subscribedToNewsletter", - "toggleWeeklySubscription" - ] - } - } - } - }, - "responses": { - "200": { "$ref": "#/components/responses/MessageOk"}, - "400": { "$ref": "#/components/responses/Error400" }, - "401": { "$ref": "#/components/responses/Error401" }, - "500": { "$ref": "#/components/responses/Error500" } - } - } - }, - "/v1/unsubscribe-newsletter": { - "post": { - "tags": ["misc"], - "summary": "Unsubscribe user from newsletter (via token)", - "operationId": "unsubscribeNewsletter", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - } - }, - "required": [ - "token" - ] - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/MessageOk" - }, - "400": { - "$ref": "#/components/responses/Error400" - }, - "500": { - "$ref": "#/components/responses/Error500" - } - } - } - } - }, - "components": { - "securitySchemes": { - "BearerAuth": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "JWT" - } - }, - "responses": { - "MessageOk": { - "description": "Generic OK message", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Message" - } - } - } - }, - "Error400": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - }, - "Error401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - }, - "Error403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - }, - "Error404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - }, - "Error429": { - "description": "Too many requests", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - }, - "Error500": { - "description": "Internal Server Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "schemas": { - "HealthStatus": { - "type": "object", - "properties": { - "status": { - "type": "string" - } - }, - "required": [ - "status" - ], - "additionalProperties": false - }, - "Message": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "error": { - "type": "string" - } - }, - "required": [ - "error" - ], - "additionalProperties": false - }, - "TokenEnvelope": { - "type": "object", - "properties": { - "accessToken": { - "type": "string" - }, - "refreshToken": { - "type": "string" - }, - "expiresIn": { - "type": "number" - }, - "selectedProfile": { - "type": "string" - } - }, - "required": [ - "accessToken", - "refreshToken", - "expiresIn", - "selectedProfile" - ], - "additionalProperties": false - }, - "TokenEnvelopeWithLastOTP": { - "type": "object", - "properties": { - "accessToken": { - "type": "string" - }, - "refreshToken": { - "type": "string" - }, - "expiresIn": { - "type": "number" - }, - "selectedProfile": { - "type": "string" - }, - "lastOTP": { - "type": "object", - "additionalProperties": { - "type": "integer" - } - } - }, - "required": [ - "accessToken", - "refreshToken", - "expiresIn", - "selectedProfile", - "lastOTP" - ], - "additionalProperties": false - }, - "AssignedSurvey": { - "type": "object", - "description": "Assigned survey object", - "additionalProperties": true - }, - "AssignedSurveysWithInfos": { - "type": "object", - "description": "Assigned surveys object with survey infos", - "properties": { - "surveys": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - }, - "surveyInfos": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": true - } - } - }, - "required": [ - "surveys", - "surveyInfos" - ], - "additionalProperties": false - }, - "AssignedSurveyWithContext": { - "type": "object", - "description": "Assigned survey object with optional context and prefill survey response", - "properties": { - "survey": { - "type": "object", - "additionalProperties": true - }, - "context": { - "type": "object", - "additionalProperties": true - }, - "prefill": { - "type": "object", - "additionalProperties": true - } - }, - "required": [ - "survey" - ], - "additionalProperties": false - }, - "FileInfo": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ObjectID" - }, - "participantID": { - "type": "string" - }, - "status": { - "type": "string" - }, - "uploadedBy": { - "type": "string" - }, - "path": { - "type": "string" - }, - "previewPath": { - "type": "string" - }, - "submittedAt": { - "type": "integer" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "fileType": { - "type": "string" - }, - "visibleToParticipant": { - "type": "boolean" - }, - "size": { - "type": "integer" - } - }, - "required": [ - "id", - "participantID", - "path" - ], - "additionalProperties": false, - "description": "File Info object" - }, - "PaginationInfos": { - "type": "object", - "description": "Pagination information", - "properties": { - "totalCount": { - "type": "integer" - }, - "currentPage": { - "type": "integer" - }, - "totalPages": { - "type": "integer" - }, - "pageSize": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "SubmissionHistory": { - "type": "object", - "description": "Submission history", - "additionalProperties": true - }, - "Report": { - "type": "object", - "description": "Report object", - "properties": { - "id": { - "type": "string", - "description": "MongoDB ObjectID as hex string" - }, - "key": { - "type": "string" - }, - "participantID": { - "type": "string" - }, - "responseID": { - "type": "string" - }, - "timestamp": { - "type": "integer", - "description": "Unix timestamp" - }, - "modifiedAt": { - "type": "string", - "format": "date-time" - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { "type": "string" }, - "value": { "type": "string" }, - "dtype": { - "type": "string", - "enum": ["date", "float", "int", "string", "rawMessage", "keyList"] - } - }, - "additionalProperties": false - } - } - }, - "required": [ - "key", - "participantID", - "timestamp" - ], - "additionalProperties": false - }, - "Participant": { - "type": "object", - "description": "Participant defines the datamodel for current state of the participant in a study as stored in the database", - "additionalProperties": true - }, - "User": { - "type": "object", - "description": "User object", - "additionalProperties": true - }, - "Profile": { - "type": "object", - "description": "User profile object", - "additionalProperties": true - }, - "UserAttributes": { - "type": "object", - "description": "User attributes object", - "additionalProperties": true - }, - "StudyInfo": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "status": { - "type": "string" - }, - "props": { - "type": "object", - "additionalProperties": true - }, - "stats": { - "type": "object", - "additionalProperties": true - }, - "profileIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "ProfileIDs only required in study info objects related to participants" - } - }, - "required": [ - "key", - "status", - "props", - "stats", - "profileIds" - ], - "additionalProperties": false - }, - "StudyVariables": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "MongoDB ObjectID", - "example": "64e4b2f2c2a4e2b1a1c2d3e4" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "configUpdatedAt": { - "type": "string", - "format": "date-time" - }, - "valueUpdatedAt": { - "type": "string", - "format": "date-time" - }, - "studyKey": { - "type": "string" - }, - "key": { - "type": "string" - }, - "value": { - "description": "Value of the study variable, type depends on 'type'", - "oneOf": [ - { "type": "string" }, - { "type": "integer" }, - { "type": "number", "format": "float" }, - { "type": "boolean" }, - { "type": "string", "format": "date-time" } - ] - }, - "type": { - "type": "string", - "enum": ["string", "int", "float", "boolean", "date"] - }, - "label": { - "type": "string" - }, - "description": { - "type": "string" - }, - "uiType": { - "type": "string" - }, - "uiPriority": { - "type": "integer" - }, - "configs": { - "type": "object", - "additionalProperties": true - } - }, - "required": [ - "createdAt", - "configUpdatedAt", - "valueUpdatedAt", - "studyKey", - "key", - "value", - "type" - ] - } - } - }, - "tags": [ - { - "name": "auth", - "description": "Authentication endpoints" - }, - { - "name": "password", - "description": "Password endpoints" - }, - { - "name": "events", - "description": "Study service events endpoints" - }, - { - "name": "participant-data", - "description": "Endpoints getting participant data in study service" - }, - { - "name": "studies", - "description": "Endpoints getting study data in study service" - }, - { - "name": "user", - "description": "User endpoints" - }, - { - "name": "misc", - "description": "Miscellaneous" - } - ] -} \ No newline at end of file diff --git a/public/openapi/smtp-bridge.json b/public/openapi/smtp-bridge.json deleted file mode 100644 index b5ae6df..0000000 --- a/public/openapi/smtp-bridge.json +++ /dev/null @@ -1,243 +0,0 @@ -{ - "openapi": "3.1.0", - "info": { - "title": "SMTP Bridge API", - "version": "1.0.0", - "description": "Simple bridge for sending emails via configured SMTP servers." - }, - "paths": { - "/": { - "get": { - "summary": "Health check", - "operationId": "getHealth", - "responses": { - "200": { - "description": "Service is healthy", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HealthStatus" - }, - "examples": { - "ok": { - "value": { - "status": "ok" - } - } - } - } - } - } - } - } - }, - "/send-email": { - "post": { - "summary": "Send an email", - "operationId": "sendEmail", - "security": [ - { - "ApiKeyAuth": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SendEmailRequest" - }, - "examples": { - "basic": { - "value": { - "to": [ - "user@example.com" - ], - "subject": "Hello", - "content": "

    Hi there

    ", - "highPrio": false - } - }, - "withHeaderOverrides": { - "value": { - "to": [ - "user@example.com" - ], - "subject": "Important", - "content": "Text body", - "highPrio": true, - "headerOverrides": { - "from": "\"System Notifications\" ", - "sender": "system@example.com", - "replyTo": [ - "support@example.com" - ], - "noReplyTo": false - } - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Email accepted for sending", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessMessage" - }, - "examples": { - "sent": { - "value": { - "message": "email sent" - } - } - } - } - } - }, - "400": { - "description": "Bad request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "examples": { - "missingApiKey": { - "value": { - "error": "A valid API key missing" - } - }, - "missingTo": { - "value": { - "error": "missing 'to' field" - } - } - } - } - } - }, - "500": { - "description": "Failed to send after retries", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - }, - "examples": { - "sendFailed": { - "value": { - "error": "failed to send email" - } - } - } - } - } - } - } - } - } - }, - "components": { - "securitySchemes": { - "ApiKeyAuth": { - "type": "apiKey", - "in": "header", - "name": "Api-Key", - "description": "Provide a valid API key in the 'Api-Key' header" - } - }, - "schemas": { - "HealthStatus": { - "type": "object", - "properties": { - "status": { - "type": "string" - } - }, - "required": [ - "status" - ], - "additionalProperties": false - }, - "SuccessMessage": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "required": [ - "message" - ], - "additionalProperties": false - }, - "Error": { - "type": "object", - "properties": { - "error": { - "type": "string" - } - }, - "required": [ - "error" - ], - "additionalProperties": false - }, - "HeaderOverrides": { - "type": "object", - "properties": { - "from": { - "type": "string" - }, - "sender": { - "type": "string" - }, - "replyTo": { - "type": "array", - "items": { - "type": "string", - "format": "email" - } - }, - "noReplyTo": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "SendEmailRequest": { - "type": "object", - "properties": { - "to": { - "type": "array", - "items": { - "type": "string", - "format": "email" - }, - "minItems": 1 - }, - "subject": { - "type": "string" - }, - "content": { - "type": "string" - }, - "highPrio": { - "type": "boolean" - }, - "headerOverrides": { - "$ref": "#/components/schemas/HeaderOverrides" - } - }, - "required": [ - "to" - ], - "additionalProperties": false - } - } - } -} \ No newline at end of file From 5ebd736d72d74385eb21ba2df6639cf2912bbbb4 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Mon, 29 Jun 2026 08:36:38 +0200 Subject: [PATCH 16/21] Add endpoints "remove study session", "update study track account" --- .../management-api/api/accounts/meta.json | 7 ++ .../api/accounts/updateStudyTrackAccount.mdx | 17 +++ .../tech-docs/management-api/api/index.mdx | 9 ++ .../tech-docs/management-api/api/meta.json | 1 + .../management-api/api/participants/meta.json | 1 + .../participants_removeStudySession.mdx | 15 +++ openapi/management-api.yaml | 111 ++++++++++++++++++ 7 files changed, 161 insertions(+) create mode 100644 content/tech-docs/management-api/api/accounts/meta.json create mode 100644 content/tech-docs/management-api/api/accounts/updateStudyTrackAccount.mdx create mode 100644 content/tech-docs/management-api/api/participants/participants_removeStudySession.mdx diff --git a/content/tech-docs/management-api/api/accounts/meta.json b/content/tech-docs/management-api/api/accounts/meta.json new file mode 100644 index 0000000..55b909c --- /dev/null +++ b/content/tech-docs/management-api/api/accounts/meta.json @@ -0,0 +1,7 @@ +{ + "title": "Accounts", + "description": "Account tracking and identification", + "pages": [ + "updateStudyTrackAccount" + ] +} \ No newline at end of file diff --git a/content/tech-docs/management-api/api/accounts/updateStudyTrackAccount.mdx b/content/tech-docs/management-api/api/accounts/updateStudyTrackAccount.mdx new file mode 100644 index 0000000..2dad414 --- /dev/null +++ b/content/tech-docs/management-api/api/accounts/updateStudyTrackAccount.mdx @@ -0,0 +1,17 @@ +--- +title: Update study track-account flag +full: true +_openapi: + method: PUT + webhook: false + toc: [] + structuredData: + headings: [] + contents: + - content: | + Updates whether account tracking is enabled for the given study. +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/content/tech-docs/management-api/api/index.mdx b/content/tech-docs/management-api/api/index.mdx index d823d13..f49cf9f 100644 --- a/content/tech-docs/management-api/api/index.mdx +++ b/content/tech-docs/management-api/api/index.mdx @@ -123,6 +123,7 @@ Participant operations List participant responses GET} /> Submit participant response POST} /> Submit participant event POST} /> +Remove or replace a participant study session POST} /> Merge participants POST} /> Edit participant PUT} /> Get participants count GET} /> @@ -133,6 +134,14 @@ Participant operations Get participant GET} /> +### Accounts + +Account tracking and identification + + +Update study track-account flag PUT} description={"Updates whether account tracking is enabled for the given study.\n"} /> + + ### Reports Participant reports diff --git a/content/tech-docs/management-api/api/meta.json b/content/tech-docs/management-api/api/meta.json index 871d473..81d2635 100644 --- a/content/tech-docs/management-api/api/meta.json +++ b/content/tech-docs/management-api/api/meta.json @@ -10,6 +10,7 @@ "notifications", "code-lists", "participants", + "accounts", "reports", "responses", "files", diff --git a/content/tech-docs/management-api/api/participants/meta.json b/content/tech-docs/management-api/api/participants/meta.json index d5c5af4..9eadd68 100644 --- a/content/tech-docs/management-api/api/participants/meta.json +++ b/content/tech-docs/management-api/api/participants/meta.json @@ -6,6 +6,7 @@ "participants_listParticipantResponses", "participants_submitParticipantResponse", "participants_submitParticipantEvent", + "participants_removeStudySession", "participants_mergeParticipants", "participants_editParticipant", "dataExporter_getParticipantsCount", diff --git a/content/tech-docs/management-api/api/participants/participants_removeStudySession.mdx b/content/tech-docs/management-api/api/participants/participants_removeStudySession.mdx new file mode 100644 index 0000000..d2bd1df --- /dev/null +++ b/content/tech-docs/management-api/api/participants/participants_removeStudySession.mdx @@ -0,0 +1,15 @@ +--- +title: Remove or replace a participant study session +full: true +_openapi: + method: POST + webhook: false + toc: [] + structuredData: + headings: [] + contents: [] +--- + +{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */} + + \ No newline at end of file diff --git a/openapi/management-api.yaml b/openapi/management-api.yaml index d9c3388..5f325ef 100644 --- a/openapi/management-api.yaml +++ b/openapi/management-api.yaml @@ -26,6 +26,8 @@ tags: description: Study code lists - name: participants description: Participant operations +- name: accounts + description: Account tracking and identification - name: reports description: Participant reports - name: responses @@ -1172,6 +1174,65 @@ paths: "$ref": "#/components/responses/Error401" '500': "$ref": "#/components/responses/Error500" + "/v1/studies/{studyKey}/participants/{participantID}/remove-session": + post: + tags: + - participants + operationId: participants_removeStudySession + summary: Remove or replace a participant study session + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + schema: + type: string + - name: participantID + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + sessionToRemove: + type: string + replacementSession: + type: string + description: Optional replacement session; if empty, the session association is removed. + required: + - sessionToRemove + additionalProperties: false + responses: + '200': + description: Session removed + content: + application/json: + schema: + type: object + properties: + message: + type: string + participant: + "$ref": "#/components/schemas/Participant" + responsesUpdated: + type: integer + required: + - message + - participant + - responsesUpdated + additionalProperties: false + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" "/v1/studies/{studyKey}/participants/{participantID}/reports": post: tags: @@ -6295,3 +6356,53 @@ paths: "$ref": "#/components/responses/Error401" '500': "$ref": "#/components/responses/Error500" + /v1/studies/{studyKey}/track-account: + put: + operationId: updateStudyTrackAccount + tags: + - accounts + summary: Update study track-account flag + description: > + Updates whether account tracking is enabled for the given study. + security: + - BearerAuth: [] + parameters: + - name: studyKey + in: path + required: true + description: Unique key of the study + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + trackAccount: + type: boolean + examples: + enable: + summary: Enable tracking + value: + trackAccount: true + disable: + summary: Disable tracking + value: + trackAccount: false + responses: + "200": + description: Successfully updated + content: + application/json: + schema: + "$ref": "#/components/schemas/Message" + example: + message: study track account updated + '400': + "$ref": "#/components/responses/Error400" + '401': + "$ref": "#/components/responses/Error401" + '500': + "$ref": "#/components/responses/Error500" \ No newline at end of file From b28c5d77b1409bb109ef0d24d1a0147b72ec881b Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Wed, 1 Jul 2026 14:37:08 +0200 Subject: [PATCH 17/21] Remove swagger-ui-react Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 2c9ff86..71b6b80 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,7 @@ "lucide-react": "^0.546.0", "next": "16.1.6", "react": "^19.2.4", - "react-dom": "^19.2.4", - "swagger-ui-react": "^5.32.6" + "react-dom": "^19.2.4" }, "devDependencies": { "@tailwindcss/postcss": "^4.1.15", From c705336dac3cb731627a41ca77eedb2e582e1846 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:03:32 +0200 Subject: [PATCH 18/21] remove swagger component --- package.json | 1 - pnpm-lock.yaml | 1344 ------------------------------------------------ 2 files changed, 1345 deletions(-) diff --git a/package.json b/package.json index 71b6b80..63e3ce9 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,6 @@ "@types/node": "25.3.3", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", - "@types/swagger-ui-react": "^5.18.0", "eslint": "^10.0.2", "eslint-config-next": "16.1.6", "postcss": "^8.5.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2f6719e..639215b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,9 +35,6 @@ importers: react-dom: specifier: ^19.2.4 version: 19.2.6(react@19.2.6) - swagger-ui-react: - specifier: ^5.32.6 - version: 5.32.6(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) devDependencies: '@tailwindcss/postcss': specifier: ^4.1.15 @@ -54,9 +51,6 @@ importers: '@types/react-dom': specifier: ^19.2.2 version: 19.2.3(@types/react@19.2.15) - '@types/swagger-ui-react': - specifier: ^5.18.0 - version: 5.18.0 eslint: specifier: ^10.0.2 version: 10.4.1(jiti@2.7.0) @@ -140,14 +134,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/runtime-corejs3@7.29.7': - resolution: {integrity: sha512-ppj9ouYku+RX0ljtgZd+KMO5mkM2bCqg8H2PYAFWnLsHEIKIdRojqbJ2i3eVHrisuxy7nOFCmngTDdWtUCdXUQ==} - engines: {node: '>=6.9.0'} - - '@babel/runtime@7.29.7': - resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} - engines: {node: '>=6.9.0'} - '@babel/template@7.29.7': resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} @@ -1213,9 +1199,6 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@scarf/scarf@1.4.0': - resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==} - '@shikijs/core@4.1.0': resolution: {integrity: sha512-jLJtSJeuFffqX6/inRE1zqU5aFv2hrszvYgq3OjbAgFRZiWv7abKMDdQzYxuSDfmUPQozZvI/kuy6VMTvnvqTQ==} engines: {node: '>=20'} @@ -1250,122 +1233,6 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@swagger-api/apidom-ast@1.11.1': - resolution: {integrity: sha512-5vcFzXltmIpCsjQouVKzjj7pPPUxYmwIARHuenim96GDnmqqVTtAoBXpIX++cD5RcJA72EBEqepQ+VSAA12RPA==} - - '@swagger-api/apidom-core@1.11.1': - resolution: {integrity: sha512-KsN0dZBsutUGWtbsqBMvQ+3pJUjq/wRRABCNIG2Ys/1Ctq8FaQaA0MoICPuYgDZCUNsZuJYbw6Swm6e0GaHWtA==} - - '@swagger-api/apidom-error@1.11.1': - resolution: {integrity: sha512-7KV2Ac4BOcrv4yJz7T5DbZiTdqbnVUT+g68Hjhabl5zhD28mfEEn9V8Zq2D6rtjlCYkqWAMFb8Y6Y+9ssH5wgA==} - - '@swagger-api/apidom-json-pointer@1.11.1': - resolution: {integrity: sha512-c8QSUgQxDolTO+rP2bvX4CrZOrnTMTAMh0xGq8LaYvzVzs0bQT7ZApsbcA/4bzWlwcg6wy2Uuw+qMadl1FNR3w==} - - '@swagger-api/apidom-ns-api-design-systems@1.11.1': - resolution: {integrity: sha512-2K3Ix+nRHDkuixkZ4FAMWY5MAJHipzpFvZrRtneZ7hsx7nObw9HYEXZw/yXuYrvnhC8jsE4z91Gwuvvz7ZjfPw==} - - '@swagger-api/apidom-ns-arazzo-1@1.11.1': - resolution: {integrity: sha512-rnICw0uXnKeNHUaS+Ip7lxtVXqH1iA3zFlX446e4XAamJd6yU28sujIsGiZ71qPQ217teidkfK7Bx7MktHdiEw==} - - '@swagger-api/apidom-ns-asyncapi-2@1.11.1': - resolution: {integrity: sha512-syABiWLeWRfKoonUhPriPVwDDeEOlN5RD20Dj/MS9DT5r1BJUrAB1BfRRRHsVhzaXVdUcKKH99iC9C842J9kvA==} - - '@swagger-api/apidom-ns-asyncapi-3@1.11.1': - resolution: {integrity: sha512-y4syE8jOEGuSirc3YaeI0dh3rEvHfc/pERQOTj3KofS2IABpBXTmtg+oDfG2zte1/Cyc/eJ6qecVAns5mhBpow==} - - '@swagger-api/apidom-ns-json-schema-2019-09@1.11.1': - resolution: {integrity: sha512-1SNXikZN2uQ1YZ3A4dzWBoMN6wTkba1qZdy/NOkweFtoLuBb63KKN/gD1e6chQV8+ikqGn8TTUZnYvX6SVBZ6g==} - - '@swagger-api/apidom-ns-json-schema-2020-12@1.11.1': - resolution: {integrity: sha512-oyvTkjDXI9k3G8oVHOvpL/t1MfZmx8d7rgeNqsm6j/vK6WlOXIOHdN9LTYRo8YdACaWq/JV5B30grkio/HRMKQ==} - - '@swagger-api/apidom-ns-json-schema-draft-4@1.11.1': - resolution: {integrity: sha512-Ha23zkVSItmFZbAoSKMI7hwYJT7yTMWO+EcNzDBEClsqRrkcCtvF2YsiQZcyUt5SrEwV8rW0TWE0CVG+WEs2zg==} - - '@swagger-api/apidom-ns-json-schema-draft-6@1.11.1': - resolution: {integrity: sha512-Gm4ULCg4yulfjZiMIbH1XiiKHI/BqK0zc1GexViiLShXS35/2dc27GmpI0YgV7S+DqvivNrwAkqojeN7ho9/NA==} - - '@swagger-api/apidom-ns-json-schema-draft-7@1.11.1': - resolution: {integrity: sha512-OHW4Qb0BqbHJ3QoQcGREE5bobMeBkZzSQe/0RFGayhI1HJZqrmwtot2nLAuie9sQJoj/xeUprOsA/he06NVFEw==} - - '@swagger-api/apidom-ns-openapi-2@1.11.1': - resolution: {integrity: sha512-yXHJmyN+NyF2xBD6KlFmGuMrf1hKqK9pm/FwStepIUqvn6bfTGgEdUi5BivQuErRrN6NtQczFF21Jlu6jjg86Q==} - - '@swagger-api/apidom-ns-openapi-3-0@1.11.1': - resolution: {integrity: sha512-R2zHd33OiVT5eTlYKS1FyVDP0G76ymdP2EIrBPbM1FDKam1kRIRdgZA2StCd9PY4oNp/LqQKMnfe9wdLWZS3AA==} - - '@swagger-api/apidom-ns-openapi-3-1@1.11.1': - resolution: {integrity: sha512-FtoW4wkFO1VSHu6G+wUZ71hQhIOuastJPyWEePbfySE4Uiz+01t/X/ODnl2OHRGVUYFoJa7kJi5/xqcsprdxtA==} - - '@swagger-api/apidom-ns-openapi-3-2@1.11.1': - resolution: {integrity: sha512-ILJAgp6mHwoV8rRuKYD3QuvPdcRcmK9YmAfrsjgC7fJM7irqzC+nBOKhrWVpTAee7r3b+B3HpV5MG8aKGd9qNQ==} - - '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.11.1': - resolution: {integrity: sha512-bCt1/7NPfCznhq2D3Y1UcZowdxMtr6wGCISMSPf3ziaCcOQhy7sG/nWEzS/rwcKCVNefVft833Ab3jaCWGivJw==} - - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.11.1': - resolution: {integrity: sha512-hUcshr5ydn/L4VsgP5nyrFDp4QqIADrx5nQnFddw/OWCNi1Al19ccPxuBh1Qlf421AAmk1oUiybeGyduvRsVPQ==} - - '@swagger-api/apidom-parser-adapter-arazzo-json-1@1.11.1': - resolution: {integrity: sha512-8ydiEnlSJ7DPhFqg9Z11u4Vda16yaOuIGLablI0mOnYoAMTlqnteGk5CDPlVb970VBTYvsNlgW+164XfHAU/6w==} - - '@swagger-api/apidom-parser-adapter-arazzo-yaml-1@1.11.1': - resolution: {integrity: sha512-G4++rZDMKokEfq78EJ2aE7pgd1Xo70XIn1/ikSiT5awfuhPJzNcV99ZdzQI2xVVU/pbKIL2Vc/b5SP1IRlfCwA==} - - '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.11.1': - resolution: {integrity: sha512-7Npn4LkG4q95b2VimG3SV0lqgG3xPeF5Srq+sVbG7iFd4yDubvEVy5zzqx5QH4tOtATdarhv6glA9j3hTfWBdQ==} - - '@swagger-api/apidom-parser-adapter-asyncapi-json-3@1.11.1': - resolution: {integrity: sha512-/C1CzsnUW2ZMBg4kWYrhrfqmyjb4aGo9+YaySQwdArLfM8l2HCOQqDEteGIivedVEsmTpVdhC60gdb6N2VzSaQ==} - - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.11.1': - resolution: {integrity: sha512-0Xfu8PLM787el0R7lwjFfQYe0Bpv3Jz0YlkEiQqAVvftVb0oNi8tg9FhDTR8ju/N94gpNXIfaH/5Ahgz5G+NKg==} - - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3@1.11.1': - resolution: {integrity: sha512-DqoR43NsFBmiJW1h2Xg3n2V6NQx+95qJ3ziA9rIbKJHGCidHtjNJgi4I7sWGnaIApIHijYY2bW22MKXaT0a0cQ==} - - '@swagger-api/apidom-parser-adapter-json@1.11.1': - resolution: {integrity: sha512-L8XFzTbEknHDhD40M/pSoDlimjlYaXXWZS4AmyD3i+XRfiDWWVhEWHPE9OTNk6UL8R6DOBm3RSDxAd5xpLoPjg==} - - '@swagger-api/apidom-parser-adapter-openapi-json-2@1.11.1': - resolution: {integrity: sha512-s9xZa/h4Yiz+Qc304s+9JSTPFsToYtSWQCeyA9jkHOWy/Oq8ZjD9wg34IjENS3yBqM1YLz6Dk+PX06DcyAOnnw==} - - '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.11.1': - resolution: {integrity: sha512-dLGaVn24N+YZRB0vzQMC4R+aiSNfD81Xcp5TwdEbE+jOeOnoOe5NqzqCWjaDpSMChDsK/NdaSDjQj4uiYfWpug==} - - '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.11.1': - resolution: {integrity: sha512-EnYF3rzPZoiCYDnp4ChB6K15RUV4rE6QfEh7fTEwIlkWMUKv4oVwZd8aqz2i9laRZiBH6S2uUoED8YNtCNbeIg==} - - '@swagger-api/apidom-parser-adapter-openapi-json-3-2@1.11.1': - resolution: {integrity: sha512-digw37g+k/rg87HHMUHuSZVWH1Kh8OjC8SmQflIh1Oot9fGhmnZWddsws+sKWSVy6/HveuZPykL8bxtSV3Nc/A==} - - '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.11.1': - resolution: {integrity: sha512-b38GFur/NjjLFBCVR/wo7DRF6EW5h8B5jBe7C17EVaJvg9eRzknnr9/KMnxYeTtjQVO8W/JeY7LlLad1/j0pcA==} - - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.11.1': - resolution: {integrity: sha512-dza6Bwe5kLL+4jANuaScxvYh3o7RxESp6Riz6M09cXRysyRrHFQ7UYuUhxepSD4jSiSxJQS8nu0i547i6Z7W7Q==} - - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.11.1': - resolution: {integrity: sha512-PgmolQN1PYdROSo/cHNyXINVD+aLmW6VqfwT7potNo08c4aWj+QQ/a0Az+mldfJ+G98WjNRvEKr8dhEw8zfqmw==} - - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2@1.11.1': - resolution: {integrity: sha512-+nmtJ3/wPLBBN6d8xI8rD0mOz80V4iSRe6rYYOQ/skel673N1SY4B58Ufnc7KnMNV4cOce/a52ASQ1Qd1csLvQ==} - - '@swagger-api/apidom-parser-adapter-yaml-1-2@1.11.1': - resolution: {integrity: sha512-KEgk5PoSmmLC7ZvH0+RF4FPyWAj0NyrPFbTr04DmNPznfr2qpGqvt3ZBmAJm82jrWoI1dc8EH1ugT1YX69N8ww==} - - '@swagger-api/apidom-reference@1.11.1': - resolution: {integrity: sha512-wxsRo12YVc2Q4o81K9EGzX5oM1htNDkeCIRkLyg1wPvzFQUH4khd6aOWYaX/0V0L+7yqwwmeW/t80xV8qLEGAQ==} - - '@swaggerexpert/cookie@2.0.2': - resolution: {integrity: sha512-DPI8YJ0Vznk4CT+ekn3rcFNq1uQwvUHZhH6WvTSPD0YKBIlMS9ur2RYKghXuxxOiqOam/i4lHJH4xTIiTgs3Mg==} - engines: {node: '>=12.20.0'} - - '@swaggerexpert/json-pointer@2.10.2': - resolution: {integrity: sha512-qMx1nOrzoB+PF+pzb26Q4Tc2sOlrx9Ba2UBNX9hB31Omrq+QoZ2Gly0KLrQWw4Of1AQ4J9lnD+XOdwOdcdXqqw==} - engines: {node: '>=12.20.0'} - '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} @@ -1461,14 +1328,6 @@ packages: '@tailwindcss/postcss@4.3.0': resolution: {integrity: sha512-Jm05Tjx+9yCLGv5qw1c+84Psds8MnyrEQYCB+FFk2lgGiUjlRqdxke4mVTuYrj2xnVZqKim2Apr5ySuQRYAw/w==} - '@tree-sitter-grammars/tree-sitter-yaml@0.7.1': - resolution: {integrity: sha512-AynBwkIoQCTgjDR33bDUp9Mqq+YTco0is3n5hRApMqG9of/6A4eQsfC1/uSEeHSUyMQSYawcAWamsexnVpIP4Q==} - peerDependencies: - tree-sitter: ^0.22.4 - peerDependenciesMeta: - tree-sitter: - optional: true - '@tybys/wasm-util@0.10.2': resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} @@ -1505,12 +1364,6 @@ packages: '@types/node@25.3.3': resolution: {integrity: sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==} - '@types/prismjs@1.26.6': - resolution: {integrity: sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==} - - '@types/ramda@0.30.2': - resolution: {integrity: sha512-PyzHvjCalm2BRYjAU6nIB3TprYwMNOUY/7P/N8bSzp9W/yM2YrtGtAnnVtaCNSeOZ8DzKyFDvaqQs7LnWwwmBA==} - '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: @@ -1519,21 +1372,12 @@ packages: '@types/react@19.2.15': resolution: {integrity: sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q==} - '@types/swagger-ui-react@5.18.0': - resolution: {integrity: sha512-c2M9adVG7t28t1pq19K9Jt20VLQf0P/fwJwnfcmsVVsdkwCWhRmbKDu+tIs0/NGwJ/7GY8lBx+iKZxuDI5gDbw==} - - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@types/use-sync-external-store@0.0.6': - resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} - '@typescript-eslint/eslint-plugin@8.60.0': resolution: {integrity: sha512-QYb/sa74/s7OKMbACMjrYnGspj9Hs5YI5aaffSL65UfeBUzVzBJfVo3oWSpbzPurvm7yaCCo2Lk7lVj610HqKw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1726,19 +1570,9 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - ajv@6.15.0: resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} - apg-lite@1.0.5: - resolution: {integrity: sha512-SlI+nLMQDzCZfS39ihzjGp3JNBQfJXyMi6cg9tkLOCPVErgFsUIAEdO9IezR7kbP5Xd0ozcPNQBkf9TO5cHgWw==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -1793,12 +1627,6 @@ packages: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - autolinker@3.16.2: - resolution: {integrity: sha512-JiYl7j2Z19F9NdTmirENSUUIIL/9MytEWtmzhfmsKPCp9E+G35Y0UNCMoM9tFigxT59qSc8Ml2dlZXOCVTYwuA==} - available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -1807,9 +1635,6 @@ packages: resolution: {integrity: sha512-KunSNx+TVpkAw/6ULfhnx+HWRecjqZGTOyquAoWHYLRSdK1tB5Ihce1ZW+UY3fj33bYAFWPu7W/GRSmmrCGuxA==} engines: {node: '>=4'} - axios@1.16.1: - resolution: {integrity: sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==} - axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -1824,9 +1649,6 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.33: resolution: {integrity: sha512-bA6+tcSLpz2tIEdDXZPpPTIuxBcC4+w6SieaYyfigIa4h8GlFxbA17v22Vx3JUtuZQj9SgOsnbK+aTBzyDyEuw==} engines: {node: '>=6.0.0'} @@ -1848,9 +1670,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -1888,9 +1707,6 @@ packages: class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} - classnames@2.5.1: - resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -1901,10 +1717,6 @@ packages: collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -1917,19 +1729,10 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - - core-js-pure@3.49.0: - resolution: {integrity: sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - css.escape@1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -1968,17 +1771,9 @@ packages: decode-named-character-reference@1.3.0: resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -1987,10 +1782,6 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -2009,13 +1800,6 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - dompurify@3.4.7: - resolution: {integrity: sha512-2jBxDJY4RR06tQNy4w5FlFH7kfxsQZlufd0sbv+chfHCxeJwrFw2baUDsSwvBISD4K4RDbd0PTfy3uNXsR6siA==} - - drange@1.1.1: - resolution: {integrity: sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==} - engines: {node: '>=4'} - dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -2252,9 +2036,6 @@ packages: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} - fast-json-patch@3.1.1: - resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} - fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -2264,9 +2045,6 @@ packages: fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - fault@1.0.4: - resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -2295,27 +2073,10 @@ packages: flatted@3.4.2: resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} - follow-redirects@1.16.0: - resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} - engines: {node: '>= 6'} - - format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - framer-motion@12.40.0: resolution: {integrity: sha512-uaBd3qC1v3KQqBEjwTUd183K6PbS+j0yR9w9VmEOLWA/tnUcSn8Xa3uck7t4dgpDoUss8xQTcj8W2L07lrnLFg==} peerDependencies: @@ -2582,22 +2343,9 @@ packages: hermes-parser@0.25.1: resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} - highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - - highlightjs-vue@1.0.0: - resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} - html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -2606,17 +2354,10 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} - immutable@3.8.3: - resolution: {integrity: sha512-AUY/VyX0E5XlibOmWt10uabJzam1zlYjwiEgQSDc5+UIkFNaF9WM0JxXKaNMGf+F/ffUF+7kRKXM9A7C0xXqMg==} - engines: {node: '>=0.10.0'} - imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - inline-style-parser@0.2.7: resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} @@ -2624,9 +2365,6 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -2760,16 +2498,9 @@ packages: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true - js-file-download@0.4.12: - resolution: {integrity: sha512-rML+NkoD08p5Dllpjo0ffy4jRHeY6Zsapvr/W86N7E0yuzAO6qa5X9+xog6zQNlH102J7IXljNY2FtS6Lj3ucg==} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} - hasBin: true - js-yaml@4.2.0: resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==} hasBin: true @@ -2893,12 +2624,6 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - lodash@4.18.1: - resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} - longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -2906,9 +2631,6 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - lowlight@1.20.0: - resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -3097,18 +2819,6 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - minim@0.23.8: - resolution: {integrity: sha512-bjdr2xW1dBCMsMGGsUeqM4eFI60m94+szhxWys+B1ztIt6gWSfeGBdSVCIawezeHYLYn0j6zrsXdQS/JllBzww==} - engines: {node: '>=6'} - minimatch@10.2.5: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} @@ -3155,10 +2865,6 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - neotraverse@0.6.18: - resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} - engines: {node: '>= 10'} - next-themes@0.4.6: resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} peerDependencies: @@ -3186,21 +2892,10 @@ packages: sass: optional: true - node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - - node-addon-api@8.8.0: - resolution: {integrity: sha512-c5Ko1fZJIJmzhFIkhRN76WTq+fC6tWnGy9CXA0fA+XygsWZmEwG8vmbkNqxMyoaa0Tin4djul49NzdVcJJcjeA==} - engines: {node: ^18 || ^20 || >= 21} - node-exports-info@1.6.0: resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} engines: {node: '>= 0.4'} - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true - node-releases@2.0.46: resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} engines: {node: '>=18'} @@ -3243,14 +2938,6 @@ packages: oniguruma-to-es@4.3.6: resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} - openapi-path-templating@2.2.1: - resolution: {integrity: sha512-eN14VrDvl/YyGxxrkGOHkVkWEoPyhyeydOUrbvjoz8K5eIGgELASwN1eqFOJ2CTQMGCy2EntOK1KdtJ8ZMekcg==} - engines: {node: '>=12.20.0'} - - openapi-server-url-templating@1.3.0: - resolution: {integrity: sha512-DPlCms3KKEbjVQb0spV6Awfn6UWNheuG/+folQPzh/wUaKwuqvj8zt5gagD7qoyxtE03cIiKPgLFS3Q8Bz00uQ==} - engines: {node: '>=12.20.0'} - optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -3311,93 +2998,27 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} - engines: {node: '>=6'} - prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} - proxy-from-env@2.1.0: - resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} - engines: {node: '>=10'} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - ramda-adjunct@5.1.0: - resolution: {integrity: sha512-8qCpl2vZBXEJyNbi4zqcgdfHtcdsWjOGbiNSEnEBrM6Y0OKOT8UxJbIVGm1TIcjaSu2MxaWcgtsNlKlCk7o7qg==} - engines: {node: '>=0.10.3'} - peerDependencies: - ramda: '>= 0.30.0' - - ramda@0.30.1: - resolution: {integrity: sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw==} - - randexp@0.5.3: - resolution: {integrity: sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w==} - engines: {node: '>=4'} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - react-copy-to-clipboard@5.1.0: - resolution: {integrity: sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==} - peerDependencies: - react: ^15.3.0 || 16 || 17 || 18 - - react-debounce-input@3.3.0: - resolution: {integrity: sha512-VEqkvs8JvY/IIZvh71Z0TC+mdbxERvYF33RcebnodlsUZ8RSgyKe2VWaHXv4+/8aoOgXLxWrdsYs2hDhcwbUgA==} - peerDependencies: - react: ^15.3.0 || 16 || 17 || 18 - react-dom@19.2.6: resolution: {integrity: sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==} peerDependencies: react: ^19.2.6 - react-immutable-proptypes@2.2.0: - resolution: {integrity: sha512-Vf4gBsePlwdGvSZoLSBfd4HAP93HDauMY4fDjXhreg/vg6F3Fj/MXDNyTbltPC/xZKmZc+cjLu3598DdYK6sgQ==} - peerDependencies: - immutable: '>=3.6.2' - - react-immutable-pure-component@2.2.2: - resolution: {integrity: sha512-vkgoMJUDqHZfXXnjVlG3keCxSO/U6WeDQ5/Sl0GK2cH8TOxEzQ5jXqDXHEL/jqk6fsNxV05oH5kD7VNMUE2k+A==} - peerDependencies: - immutable: '>= 2 || >= 4.0.0-rc' - react: '>= 16.6' - react-dom: '>= 16.6' - - react-inspector@6.0.2: - resolution: {integrity: sha512-x+b7LxhmHXjHoU/VrFAzw5iutsILRoYyDq97EDYdFpPLcvqtEzk4ZSZSQjnFPbr5T57tLXnHcqFYoN1pI6u8uQ==} - peerDependencies: - react: ^16.8.4 || ^17.0.0 || ^18.0.0 - react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-redux@9.3.0: - resolution: {integrity: sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==} - peerDependencies: - '@types/react': ^18.2.25 || ^19 - react: ^18.0 || ^19 - redux: ^5.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - redux: - optional: true - react-remove-scroll-bar@2.3.8: resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} engines: {node: '>=10'} @@ -3428,12 +3049,6 @@ packages: '@types/react': optional: true - react-syntax-highlighter@16.1.1: - resolution: {integrity: sha512-PjVawBGy80C6YbC5DDZJeUjBmC7skaoEUdvfFQediQHgCL7aKyVHe57SaJGfQsloGDac+gCpTfRdtxzWWKmCXA==} - engines: {node: '>= 16.20.2'} - peerDependencies: - react: '>= 0.14.0' - react@19.2.6: resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==} engines: {node: '>=0.10.0'} @@ -3456,21 +3071,10 @@ packages: recma-stringify@1.0.0: resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} - redux-immutable@4.0.0: - resolution: {integrity: sha512-SchSn/DWfGb3oAejd+1hhHx01xUoxY+V7TeK0BKqpkLKiQPVFf7DYzEaKmrEVxsWxielKfSK9/Xq66YyxgR1cg==} - peerDependencies: - immutable: ^3.8.1 || ^4.0.0-rc.1 - - redux@5.0.1: - resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==} - reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - refractor@5.0.0: - resolution: {integrity: sha512-QXOrHQF5jOpjjLfiNk5GFnWhRXvxjUVnlFxkeDmewR5sXkr3iM46Zo+CnRR8B+MDVqkULW4EcLVcRBNOPXHosw==} - regex-recursion@6.0.2: resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} @@ -3508,21 +3112,6 @@ packages: remark@15.0.1: resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} - remarkable@2.0.1: - resolution: {integrity: sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA==} - engines: {node: '>= 6.0.0'} - hasBin: true - - repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - reselect@5.2.0: - resolution: {integrity: sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==} - resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -3531,10 +3120,6 @@ packages: engines: {node: '>= 0.4'} hasBin: true - ret@0.2.2: - resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} - engines: {node: '>=4'} - reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -3546,9 +3131,6 @@ packages: resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} engines: {node: '>=0.4'} - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -3572,10 +3154,6 @@ packages: engines: {node: '>=10'} hasBin: true - serialize-error@8.1.0: - resolution: {integrity: sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==} - engines: {node: '>=10'} - set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -3588,11 +3166,6 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} - sha.js@2.4.12: - resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} - engines: {node: '>= 0.10'} - hasBin: true - sharp@0.34.5: resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3609,10 +3182,6 @@ packages: resolution: {integrity: sha512-l/ABZPUR5v70jI10EzqfMS/I96vjSGv2y0ihUV+WYFzv0EfvW4s54m0Lg8wCrrL+2IkwBzFTuxkZjPf8b2NX9Q==} engines: {node: '>=20'} - short-unique-id@5.3.2: - resolution: {integrity: sha512-KRT/hufMSxXKEDSQujfVE0Faa/kZ51ihUcZQAcmP04t00DvPj7Ox5anHke1sJYUtzSuiT/Y5uyzg/W7bBEGhCg==} - hasBin: true - side-channel-list@1.0.1: resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} @@ -3640,9 +3209,6 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - stable-hash@0.0.5: resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} @@ -3703,16 +3269,6 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - swagger-client@3.37.4: - resolution: {integrity: sha512-3xxqc9s99Vsf47ket2j7D4Tw6b6T7ObNvTqSP009yBeoAo0fy0yprqOVxFISTrvRxN7jgfrEi8GXMhsjzb1M0g==} - engines: {node: '>=22'} - - swagger-ui-react@5.32.6: - resolution: {integrity: sha512-2q2kXd6eDR+syyWV5HE2CkWANyr2MHPkNezG4M7fC0FPlBUZEsNgyA/2dcb9dIwgE5xd995dO42h89fNMF5/ng==} - peerDependencies: - react: '>=16.8.0 <20' - react-dom: '>=16.8.0 <20' - tailwind-merge@3.6.0: resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==} @@ -3731,31 +3287,10 @@ packages: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} - to-buffer@1.2.2: - resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} - engines: {node: '>= 0.4'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - - tree-sitter-json@0.24.8: - resolution: {integrity: sha512-Tc9ZZYwHyWZ3Tt1VEw7Pa2scu1YO7/d2BCBbKTx5hXwig3UfdQjsOPkPyLpDJOn/m1UBEWYAtSdGAwCSyagBqQ==} - peerDependencies: - tree-sitter: ^0.21.1 - peerDependenciesMeta: - tree-sitter: - optional: true - - tree-sitter@0.21.1: - resolution: {integrity: sha512-7dxoA6kYvtgWw80265MyqJlkRl4yawIjO7S5MigytjELkX43fV2WsAXzsNfO7sBpPPCF5Gp0+XzHk0DwLCq3xQ==} - - tree-sitter@0.22.4: - resolution: {integrity: sha512-usbHZP9/oxNsUY65MQUsduGRqDHQOou1cagUSwjhoSYAmSahjQDAVsh9s+SlZkn8X8+O1FULRGwHu7AFP3kjzg==} - trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -3768,12 +3303,6 @@ packages: peerDependencies: typescript: '>=4.8.4' - ts-mixer@6.0.4: - resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} - - ts-toolbelt@9.6.0: - resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==} - tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} @@ -3789,10 +3318,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} @@ -3809,9 +3334,6 @@ packages: resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} engines: {node: '>= 0.4'} - types-ramda@0.30.1: - resolution: {integrity: sha512-1HTsf5/QVRmLzcGfldPFvkVsAdi1db1BBKzi7iW3KBUlOICg/nKnFS+jGqDJS3YD8VsWbAh7JiHeBvbsw8RPxA==} - typescript-eslint@8.60.0: resolution: {integrity: sha512-9f65qWLZdAW9m1JaxBDUHcqRUfL8bkxxXL7XxEfI+F09q56PkBvIfCjLF3yInsDM/BBmwkqmCQdCZe/RYlIWEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3855,9 +3377,6 @@ packages: unist-util-visit@5.1.0: resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} - unraw@3.0.0: - resolution: {integrity: sha512-08/DA66UF65OlpUDIQtbJyrqTR0jTAlJ+jsnkQ4jxR7+K5g5YG1APZKQSMCE1vqqmD+2pv6+IdEjmopFatacvg==} - unrs-resolver@1.12.2: resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} @@ -3870,9 +3389,6 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} @@ -3893,11 +3409,6 @@ packages: '@types/react': optional: true - use-sync-external-store@1.6.0: - resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} @@ -3910,9 +3421,6 @@ packages: web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - web-tree-sitter@0.24.5: - resolution: {integrity: sha512-+J/2VSHN8J47gQUAvF8KDadrfz6uFYVjxoxbKWDoXVsH2u7yLdarCnIURnrMA6uSRkgX3SdmqM5BOoQjPdSh5w==} - which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -3938,12 +3446,6 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - xml-but-prettier@1.0.1: - resolution: {integrity: sha512-C2CJaadHrZTqESlH03WOyw0oZTtoy2uEg6dSDF6YRg+9GnYNub53RRemLpnvtbHDFelxMx4LajiFsYeR6XJHgQ==} - - xml@1.0.1: - resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} - yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -3951,9 +3453,6 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - zenscroll@4.0.2: - resolution: {integrity: sha512-jEA1znR7b4C/NnaycInCU6h/d15ZzCd1jmsruqOKnZP6WXQSMH3W2GL+OXbkruslU4h+Tzuos0HdswzRUk/Vgg==} - zod-validation-error@4.0.2: resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} engines: {node: '>=18.0.0'} @@ -4047,12 +3546,6 @@ snapshots: dependencies: '@babel/types': 7.29.7 - '@babel/runtime-corejs3@7.29.7': - dependencies: - core-js-pure: 3.49.0 - - '@babel/runtime@7.29.7': {} - '@babel/template@7.29.7': dependencies: '@babel/code-frame': 7.29.7 @@ -4915,8 +4408,6 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@scarf/scarf@1.4.0': {} - '@shikijs/core@4.1.0': dependencies: '@shikijs/primitive': 4.1.0 @@ -4959,439 +4450,6 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@swagger-api/apidom-ast@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-error': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - unraw: 3.0.0 - - '@swagger-api/apidom-core@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-ast': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@types/ramda': 0.30.2 - minim: 0.23.8 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - short-unique-id: 5.3.2 - ts-mixer: 6.0.4 - - '@swagger-api/apidom-error@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - - '@swagger-api/apidom-json-pointer@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@swaggerexpert/json-pointer': 2.10.2 - - '@swagger-api/apidom-ns-api-design-systems@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-1': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - optional: true - - '@swagger-api/apidom-ns-arazzo-1@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-json-schema-2020-12': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - optional: true - - '@swagger-api/apidom-ns-asyncapi-2@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-json-schema-draft-7': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - optional: true - - '@swagger-api/apidom-ns-asyncapi-3@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-asyncapi-2': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - optional: true - - '@swagger-api/apidom-ns-json-schema-2019-09@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@swagger-api/apidom-ns-json-schema-draft-7': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-ns-json-schema-2020-12@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@swagger-api/apidom-ns-json-schema-2019-09': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-ns-json-schema-draft-4@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-ast': 1.11.1 - '@swagger-api/apidom-core': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-ns-json-schema-draft-6@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@swagger-api/apidom-ns-json-schema-draft-4': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-ns-json-schema-draft-7@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@swagger-api/apidom-ns-json-schema-draft-6': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-ns-openapi-2@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@swagger-api/apidom-ns-json-schema-draft-4': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - optional: true - - '@swagger-api/apidom-ns-openapi-3-0@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@swagger-api/apidom-ns-json-schema-draft-4': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-ns-openapi-3-1@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-ast': 1.11.1 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-json-pointer': 1.11.1 - '@swagger-api/apidom-ns-json-schema-2020-12': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-0': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-ns-openapi-3-2@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-ast': 1.11.1 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-json-pointer': 1.11.1 - '@swagger-api/apidom-ns-json-schema-2020-12': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-0': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-1': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - ts-mixer: 6.0.4 - - '@swagger-api/apidom-parser-adapter-api-design-systems-json@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-api-design-systems': 1.11.1 - '@swagger-api/apidom-parser-adapter-json': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-api-design-systems': 1.11.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-arazzo-json-1@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-arazzo-1': 1.11.1 - '@swagger-api/apidom-parser-adapter-json': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-arazzo-yaml-1@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-arazzo-1': 1.11.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-asyncapi-json-2@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-asyncapi-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-json': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-asyncapi-json-3@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-asyncapi-3': 1.11.1 - '@swagger-api/apidom-parser-adapter-json': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-asyncapi-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-asyncapi-3': 1.11.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-json@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-ast': 1.11.1 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - tree-sitter: 0.21.1 - tree-sitter-json: 0.24.8(tree-sitter@0.21.1) - web-tree-sitter: 0.24.5 - optional: true - - '@swagger-api/apidom-parser-adapter-openapi-json-2@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-openapi-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-json': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-openapi-json-3-0@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-0': 1.11.1 - '@swagger-api/apidom-parser-adapter-json': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-openapi-json-3-1@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-1': 1.11.1 - '@swagger-api/apidom-parser-adapter-json': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-openapi-json-3-2@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-json': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-openapi-yaml-2@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-openapi-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-0': 1.11.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-1': 1.11.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optional: true - - '@swagger-api/apidom-parser-adapter-yaml-1-2@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-ast': 1.11.1 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@tree-sitter-grammars/tree-sitter-yaml': 0.7.1(tree-sitter@0.22.4) - '@types/ramda': 0.30.2 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - tree-sitter: 0.22.4 - web-tree-sitter: 0.24.5 - optional: true - - '@swagger-api/apidom-reference@1.11.1': - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@types/ramda': 0.30.2 - axios: 1.16.1 - minimatch: 10.2.5 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - optionalDependencies: - '@swagger-api/apidom-json-pointer': 1.11.1 - '@swagger-api/apidom-ns-arazzo-1': 1.11.1 - '@swagger-api/apidom-ns-asyncapi-2': 1.11.1 - '@swagger-api/apidom-ns-openapi-2': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-0': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-1': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-api-design-systems-json': 1.11.1 - '@swagger-api/apidom-parser-adapter-api-design-systems-yaml': 1.11.1 - '@swagger-api/apidom-parser-adapter-arazzo-json-1': 1.11.1 - '@swagger-api/apidom-parser-adapter-arazzo-yaml-1': 1.11.1 - '@swagger-api/apidom-parser-adapter-asyncapi-json-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-asyncapi-json-3': 1.11.1 - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-asyncapi-yaml-3': 1.11.1 - '@swagger-api/apidom-parser-adapter-json': 1.11.1 - '@swagger-api/apidom-parser-adapter-openapi-json-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-openapi-json-3-0': 1.11.1 - '@swagger-api/apidom-parser-adapter-openapi-json-3-1': 1.11.1 - '@swagger-api/apidom-parser-adapter-openapi-json-3-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-openapi-yaml-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-0': 1.11.1 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-1': 1.11.1 - '@swagger-api/apidom-parser-adapter-openapi-yaml-3-2': 1.11.1 - '@swagger-api/apidom-parser-adapter-yaml-1-2': 1.11.1 - transitivePeerDependencies: - - debug - - supports-color - - '@swaggerexpert/cookie@2.0.2': - dependencies: - apg-lite: 1.0.5 - - '@swaggerexpert/json-pointer@2.10.2': - dependencies: - apg-lite: 1.0.5 - '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 @@ -5465,14 +4523,6 @@ snapshots: postcss: 8.5.15 tailwindcss: 4.3.0 - '@tree-sitter-grammars/tree-sitter-yaml@0.7.1(tree-sitter@0.22.4)': - dependencies: - node-addon-api: 8.8.0 - node-gyp-build: 4.8.4 - optionalDependencies: - tree-sitter: 0.22.4 - optional: true - '@tybys/wasm-util@0.10.2': dependencies: tslib: 2.8.1 @@ -5510,12 +4560,6 @@ snapshots: dependencies: undici-types: 7.18.2 - '@types/prismjs@1.26.6': {} - - '@types/ramda@0.30.2': - dependencies: - types-ramda: 0.30.1 - '@types/react-dom@19.2.3(@types/react@19.2.15)': dependencies: '@types/react': 19.2.15 @@ -5524,19 +4568,10 @@ snapshots: dependencies: csstype: 3.2.3 - '@types/swagger-ui-react@5.18.0': - dependencies: - '@types/react': 19.2.15 - - '@types/trusted-types@2.0.7': - optional: true - '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} - '@types/use-sync-external-store@0.0.6': {} - '@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -5706,12 +4741,6 @@ snapshots: acorn@8.16.0: {} - agent-base@6.0.2: - dependencies: - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - ajv@6.15.0: dependencies: fast-deep-equal: 3.1.3 @@ -5719,12 +4748,6 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - apg-lite@1.0.5: {} - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - argparse@2.0.1: {} aria-hidden@1.2.6: @@ -5806,28 +4829,12 @@ snapshots: async-function@1.0.0: {} - asynckit@0.4.0: {} - - autolinker@3.16.2: - dependencies: - tslib: 2.8.1 - available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 axe-core@4.11.4: {} - axios@1.16.1: - dependencies: - follow-redirects: 1.16.0 - form-data: 4.0.5 - https-proxy-agent: 5.0.1 - proxy-from-env: 2.1.0 - transitivePeerDependencies: - - debug - - supports-color - axobject-query@4.1.0: {} bail@2.0.2: {} @@ -5836,8 +4843,6 @@ snapshots: balanced-match@4.0.4: {} - base64-js@1.5.1: {} - baseline-browser-mapping@2.10.33: {} brace-expansion@1.1.15: @@ -5861,11 +4866,6 @@ snapshots: node-releases: 2.0.46 update-browserslist-db: 1.2.3(browserslist@4.28.2) - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -5903,18 +4903,12 @@ snapshots: dependencies: clsx: 2.1.1 - classnames@2.5.1: {} - client-only@0.0.1: {} clsx@2.1.1: {} collapse-white-space@2.1.0: {} - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 - comma-separated-tokens@2.0.3: {} compute-scroll-into-view@3.1.1: {} @@ -5923,20 +4917,12 @@ snapshots: convert-source-map@2.0.0: {} - copy-to-clipboard@3.3.3: - dependencies: - toggle-selection: 1.0.6 - - core-js-pure@3.49.0: {} - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - css.escape@1.5.1: {} - csstype@3.2.3: {} damerau-levenshtein@1.0.8: {} @@ -5971,12 +4957,8 @@ snapshots: dependencies: character-entities: 2.0.2 - deep-extend@0.6.0: {} - deep-is@0.1.4: {} - deepmerge@4.3.1: {} - define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -5989,8 +4971,6 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - delayed-stream@1.0.0: {} - dequal@2.0.3: {} detect-libc@2.1.2: {} @@ -6005,12 +4985,6 @@ snapshots: dependencies: esutils: 2.0.3 - dompurify@3.4.7: - optionalDependencies: - '@types/trusted-types': 2.0.7 - - drange@1.1.1: {} - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -6463,8 +5437,6 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-json-patch@3.1.1: {} - fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} @@ -6473,10 +5445,6 @@ snapshots: dependencies: reusify: 1.1.0 - fault@1.0.4: - dependencies: - format: 0.2.2 - fdir@6.5.0(picomatch@4.0.4): optionalDependencies: picomatch: 4.0.4 @@ -6501,22 +5469,10 @@ snapshots: flatted@3.4.2: {} - follow-redirects@1.16.0: {} - for-each@0.3.5: dependencies: is-callable: 1.2.7 - form-data@4.0.5: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.4 - mime-types: 2.1.35 - - format@0.2.2: {} - framer-motion@12.40.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: motion-dom: 12.40.0 @@ -6858,31 +5814,14 @@ snapshots: dependencies: hermes-estree: 0.25.1 - highlight.js@10.7.3: {} - - highlightjs-vue@1.0.0: {} - html-void-elements@3.0.0: {} - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - ieee754@1.2.1: {} - ignore@5.3.2: {} ignore@7.0.5: {} - immutable@3.8.3: {} - imurmurhash@0.1.4: {} - inherits@2.0.4: {} - inline-style-parser@0.2.7: {} internal-slot@1.1.0: @@ -6891,10 +5830,6 @@ snapshots: hasown: 2.0.4 side-channel: 1.1.0 - invariant@2.2.4: - dependencies: - loose-envify: 1.4.0 - is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -7035,14 +5970,8 @@ snapshots: jiti@2.7.0: {} - js-file-download@0.4.12: {} - js-tokens@4.0.0: {} - js-yaml@4.1.1: - dependencies: - argparse: 2.0.1 - js-yaml@4.2.0: dependencies: argparse: 2.0.1 @@ -7136,21 +6065,12 @@ snapshots: dependencies: p-locate: 5.0.0 - lodash.debounce@4.0.8: {} - - lodash@4.18.1: {} - longest-streak@3.1.0: {} loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - lowlight@1.20.0: - dependencies: - fault: 1.0.4 - highlight.js: 10.7.3 - lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -7607,16 +6527,6 @@ snapshots: braces: 3.0.3 picomatch: 2.3.2 - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - minim@0.23.8: - dependencies: - lodash: 4.18.1 - minimatch@10.2.5: dependencies: brace-expansion: 5.0.6 @@ -7649,8 +6559,6 @@ snapshots: natural-compare@1.4.0: {} - neotraverse@0.6.18: {} - next-themes@0.4.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: react: 19.2.6 @@ -7680,11 +6588,6 @@ snapshots: - '@babel/core' - babel-plugin-macros - node-abort-controller@3.1.1: {} - - node-addon-api@8.8.0: - optional: true - node-exports-info@1.6.0: dependencies: array.prototype.flatmap: 1.3.3 @@ -7692,9 +6595,6 @@ snapshots: object.entries: 1.1.9 semver: 6.3.1 - node-gyp-build@4.8.4: - optional: true - node-releases@2.0.46: {} object-assign@4.1.1: {} @@ -7747,14 +6647,6 @@ snapshots: regex: 6.1.0 regex-recursion: 6.0.2 - openapi-path-templating@2.2.1: - dependencies: - apg-lite: 1.0.5 - - openapi-server-url-templating@1.3.0: - dependencies: - apg-lite: 1.0.5 - optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -7820,8 +6712,6 @@ snapshots: prelude-ls@1.2.1: {} - prismjs@1.30.0: {} - prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -7830,72 +6720,17 @@ snapshots: property-information@7.1.0: {} - proxy-from-env@2.1.0: {} - punycode@2.3.1: {} - querystringify@2.2.0: {} - queue-microtask@1.2.3: {} - ramda-adjunct@5.1.0(ramda@0.30.1): - dependencies: - ramda: 0.30.1 - - ramda@0.30.1: {} - - randexp@0.5.3: - dependencies: - drange: 1.1.1 - ret: 0.2.2 - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - react-copy-to-clipboard@5.1.0(react@19.2.6): - dependencies: - copy-to-clipboard: 3.3.3 - prop-types: 15.8.1 - react: 19.2.6 - - react-debounce-input@3.3.0(react@19.2.6): - dependencies: - lodash.debounce: 4.0.8 - prop-types: 15.8.1 - react: 19.2.6 - react-dom@19.2.6(react@19.2.6): dependencies: react: 19.2.6 scheduler: 0.27.0 - react-immutable-proptypes@2.2.0(immutable@3.8.3): - dependencies: - immutable: 3.8.3 - invariant: 2.2.4 - - react-immutable-pure-component@2.2.2(immutable@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): - dependencies: - immutable: 3.8.3 - react: 19.2.6 - react-dom: 19.2.6(react@19.2.6) - - react-inspector@6.0.2(react@19.2.6): - dependencies: - react: 19.2.6 - react-is@16.13.1: {} - react-redux@9.3.0(@types/react@19.2.15)(react@19.2.6)(redux@5.0.1): - dependencies: - '@types/use-sync-external-store': 0.0.6 - react: 19.2.6 - use-sync-external-store: 1.6.0(react@19.2.6) - optionalDependencies: - '@types/react': 19.2.15 - redux: 5.0.1 - react-remove-scroll-bar@2.3.8(@types/react@19.2.15)(react@19.2.6): dependencies: react: 19.2.6 @@ -7923,16 +6758,6 @@ snapshots: optionalDependencies: '@types/react': 19.2.15 - react-syntax-highlighter@16.1.1(react@19.2.6): - dependencies: - '@babel/runtime': 7.29.7 - highlight.js: 10.7.3 - highlightjs-vue: 1.0.0 - lowlight: 1.20.0 - prismjs: 1.30.0 - react: 19.2.6 - refractor: 5.0.0 - react@19.2.6: {} readdirp@5.0.0: {} @@ -7966,12 +6791,6 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 - redux-immutable@4.0.0(immutable@3.8.3): - dependencies: - immutable: 3.8.3 - - redux@5.0.1: {} - reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.9 @@ -7983,13 +6802,6 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 - refractor@5.0.0: - dependencies: - '@types/hast': 3.0.4 - '@types/prismjs': 1.26.6 - hastscript: 9.0.1 - parse-entities: 4.0.2 - regex-recursion@6.0.2: dependencies: regex-utilities: 2.3.0 @@ -8073,17 +6885,6 @@ snapshots: transitivePeerDependencies: - supports-color - remarkable@2.0.1: - dependencies: - argparse: 1.0.10 - autolinker: 3.16.2 - - repeat-string@1.6.1: {} - - requires-port@1.0.0: {} - - reselect@5.2.0: {} - resolve-pkg-maps@1.0.0: {} resolve@2.0.0-next.7: @@ -8095,8 +6896,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - ret@0.2.2: {} - reusify@1.1.0: {} run-parallel@1.2.0: @@ -8111,8 +6910,6 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 - safe-buffer@5.2.1: {} - safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -8134,10 +6931,6 @@ snapshots: semver@7.8.1: {} - serialize-error@8.1.0: - dependencies: - type-fest: 0.20.2 - set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -8160,12 +6953,6 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.2 - sha.js@2.4.12: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - to-buffer: 1.2.2 - sharp@0.34.5: dependencies: '@img/colour': 1.1.0 @@ -8215,8 +7002,6 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - short-unique-id@5.3.2: {} - side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 @@ -8251,8 +7036,6 @@ snapshots: space-separated-tokens@2.0.2: {} - sprintf-js@1.0.3: {} - stable-hash@0.0.5: {} stop-iteration-iterator@1.1.0: @@ -8334,73 +7117,6 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swagger-client@3.37.4: - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@scarf/scarf': 1.4.0 - '@swagger-api/apidom-core': 1.11.1 - '@swagger-api/apidom-error': 1.11.1 - '@swagger-api/apidom-json-pointer': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-1': 1.11.1 - '@swagger-api/apidom-ns-openapi-3-2': 1.11.1 - '@swagger-api/apidom-reference': 1.11.1 - '@swaggerexpert/cookie': 2.0.2 - deepmerge: 4.3.1 - fast-json-patch: 3.1.1 - js-yaml: 4.1.1 - neotraverse: 0.6.18 - node-abort-controller: 3.1.1 - openapi-path-templating: 2.2.1 - openapi-server-url-templating: 1.3.0 - ramda: 0.30.1 - ramda-adjunct: 5.1.0(ramda@0.30.1) - transitivePeerDependencies: - - debug - - supports-color - - swagger-ui-react@5.32.6(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): - dependencies: - '@babel/runtime-corejs3': 7.29.7 - '@scarf/scarf': 1.4.0 - base64-js: 1.5.1 - buffer: 6.0.3 - classnames: 2.5.1 - css.escape: 1.5.1 - deep-extend: 0.6.0 - dompurify: 3.4.7 - ieee754: 1.2.1 - immutable: 3.8.3 - js-file-download: 0.4.12 - js-yaml: 4.1.1 - lodash: 4.18.1 - prop-types: 15.8.1 - randexp: 0.5.3 - randombytes: 2.1.0 - react: 19.2.6 - react-copy-to-clipboard: 5.1.0(react@19.2.6) - react-debounce-input: 3.3.0(react@19.2.6) - react-dom: 19.2.6(react@19.2.6) - react-immutable-proptypes: 2.2.0(immutable@3.8.3) - react-immutable-pure-component: 2.2.2(immutable@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - react-inspector: 6.0.2(react@19.2.6) - react-redux: 9.3.0(@types/react@19.2.15)(react@19.2.6)(redux@5.0.1) - react-syntax-highlighter: 16.1.1(react@19.2.6) - redux: 5.0.1 - redux-immutable: 4.0.0(immutable@3.8.3) - remarkable: 2.0.1 - reselect: 5.2.0 - serialize-error: 8.1.0 - sha.js: 2.4.12 - swagger-client: 3.37.4 - url-parse: 1.5.10 - xml: 1.0.1 - xml-but-prettier: 1.0.1 - zenscroll: 4.0.2 - transitivePeerDependencies: - - '@types/react' - - debug - - supports-color - tailwind-merge@3.6.0: {} tailwindcss@4.3.0: {} @@ -8414,38 +7130,10 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - to-buffer@1.2.2: - dependencies: - isarray: 2.0.5 - safe-buffer: 5.2.1 - typed-array-buffer: 1.0.3 - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - toggle-selection@1.0.6: {} - - tree-sitter-json@0.24.8(tree-sitter@0.21.1): - dependencies: - node-addon-api: 8.8.0 - node-gyp-build: 4.8.4 - optionalDependencies: - tree-sitter: 0.21.1 - optional: true - - tree-sitter@0.21.1: - dependencies: - node-addon-api: 8.8.0 - node-gyp-build: 4.8.4 - optional: true - - tree-sitter@0.22.4: - dependencies: - node-addon-api: 8.8.0 - node-gyp-build: 4.8.4 - optional: true - trim-lines@3.0.1: {} trough@2.2.0: {} @@ -8454,10 +7142,6 @@ snapshots: dependencies: typescript: 5.9.3 - ts-mixer@6.0.4: {} - - ts-toolbelt@9.6.0: {} - tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -8477,8 +7161,6 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-fest@0.20.2: {} - typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.4 @@ -8512,10 +7194,6 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - types-ramda@0.30.1: - dependencies: - ts-toolbelt: 9.6.0 - typescript-eslint@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3): dependencies: '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3))(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) @@ -8580,8 +7258,6 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - unraw@3.0.0: {} - unrs-resolver@1.12.2: dependencies: napi-postinstall: 0.3.4 @@ -8619,11 +7295,6 @@ snapshots: dependencies: punycode: 2.3.1 - url-parse@1.5.10: - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - use-callback-ref@1.3.3(@types/react@19.2.15)(react@19.2.6): dependencies: react: 19.2.6 @@ -8639,10 +7310,6 @@ snapshots: optionalDependencies: '@types/react': 19.2.15 - use-sync-external-store@1.6.0(react@19.2.6): - dependencies: - react: 19.2.6 - vfile-location@5.0.3: dependencies: '@types/unist': 3.0.3 @@ -8660,9 +7327,6 @@ snapshots: web-namespaces@2.0.1: {} - web-tree-sitter@0.24.5: - optional: true - which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -8710,18 +7374,10 @@ snapshots: word-wrap@1.2.5: {} - xml-but-prettier@1.0.1: - dependencies: - repeat-string: 1.6.1 - - xml@1.0.1: {} - yallist@3.1.1: {} yocto-queue@0.1.0: {} - zenscroll@4.0.2: {} - zod-validation-error@4.0.2(zod@4.4.3): dependencies: zod: 4.4.3 From 5ed53a066b73068acccb5bbe86ad64e35ac8b2c3 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:03:53 +0200 Subject: [PATCH 19/21] update coderabbit review configs --- .coderabbit.yaml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .coderabbit.yaml diff --git a/.coderabbit.yaml b/.coderabbit.yaml new file mode 100644 index 0000000..55c025a --- /dev/null +++ b/.coderabbit.yaml @@ -0,0 +1,5 @@ +reviews: + path_filters: + - "!case-docs/content/tech-docs/management-api/api/**" + - "!case-docs/content/tech-docs/participant-api/api/**" + - "!case-docs/content/tech-docs/smtp-bridge/api/**" \ No newline at end of file From 8b3ff05ade667c1f652c2448949c94cbad1dcee9 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:04:06 +0200 Subject: [PATCH 20/21] remove unused imports --- lib/source-docs.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/source-docs.ts b/lib/source-docs.ts index 1a00d01..ea7df50 100644 --- a/lib/source-docs.ts +++ b/lib/source-docs.ts @@ -1,7 +1,7 @@ import { docs } from 'fumadocs-mdx:collections/server'; -import { loader, multiple } from 'fumadocs-core/source'; +import { loader } from 'fumadocs-core/source'; import { lucideIconsPlugin } from 'fumadocs-core/source/lucide-icons'; -import { openapiPlugin, openapiSource } from 'fumadocs-openapi/server'; +import { openapiPlugin } from 'fumadocs-openapi/server'; // See https://fumadocs.vercel.app/docs/headless/source-api for more info export const source = loader( From d979d9d2e61834e7be814e3e3182dee8a9981dc0 Mon Sep 17 00:00:00 2001 From: kschneider84 <77678452+kschneider84@users.noreply.github.com> Date: Wed, 1 Jul 2026 15:04:52 +0200 Subject: [PATCH 21/21] add participant-api and smtp bridge to default inputs --- lib/openapi.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/openapi.ts b/lib/openapi.ts index 869d402..f6658fa 100644 --- a/lib/openapi.ts +++ b/lib/openapi.ts @@ -1,6 +1,10 @@ import { createOpenAPI } from 'fumadocs-openapi/server'; -export const defaultOpenAPIInput = './openapi/management-api.yaml'; +export const defaultOpenAPIInputs = [ + './openapi/management-api.yaml', + './openapi/participant-api.yaml', + './openapi/smtp-bridge.yaml', +]; export function createDocsOpenAPI(input: string | string[]) { const normalizedInput = Array.isArray(input) ? input : [input]; @@ -10,4 +14,4 @@ export function createDocsOpenAPI(input: string | string[]) { }); } -export const openapi = createDocsOpenAPI(defaultOpenAPIInput); +export const openapi = createDocsOpenAPI(defaultOpenAPIInputs);