diff --git a/.github/workflows/copilot-autofix.yml b/.github/workflows/copilot-autofix.yml new file mode 100644 index 0000000..db59e74 --- /dev/null +++ b/.github/workflows/copilot-autofix.yml @@ -0,0 +1,34 @@ +# .github/workflows/copilot-autofix.yml (in consumer repo) +name: Copilot Dependency Autofix + +on: + workflow_dispatch: + inputs: + PACKAGE_NAME: + description: "npm package name (e.g. aws-sdk)" + required: true + type: string + FIXED_VERSION: + description: "Target fixed version (e.g. 3.0.1)" + required: true + type: string + +permissions: + contents: write + pull-requests: write + +concurrency: + group: copilot-autofix-${{ github.ref }}-${{ inputs.package_name }} + cancel-in-progress: true + +jobs: + copilot-autofix: + runs-on: ubuntu-latest + timeout-minutes: 45 + steps: + - uses: scheduleonce/github-workflows/.github/actions/copilot-dependency-autofix@main + with: + PACKAGE_NAME: ${{ inputs.PACKAGE_NAME }} + FIXED_VERSION: ${{ inputs.FIXED_VERSION }} + SO_INTEGRATION_TOKEN: ${{ secrets.SO_INTEGRATION_TOKEN }} + COPILOT_GITHUB_TOKEN: ${{ secrets.DEEPAK_TOKEN_POC }} diff --git a/docs/client-side-api/embedded-chatbot-events.md b/docs/client-side-api/embedded-chatbot-events.md index 37f573b..e0597ae 100644 --- a/docs/client-side-api/embedded-chatbot-events.md +++ b/docs/client-side-api/embedded-chatbot-events.md @@ -7,13 +7,13 @@ description: Listen to real-time events from embedded OnceHub chatbot widgets in ## List of supported events -| Event name | Fires when | -| :------------------------------- | :---------------------------------------------------------- | -| `oncehub.chatbot.loaded` | Chatbot widget is first loaded, on page load. | -| `oncehub.chatbot.opened` | Visitor clicks anywhere to interact with the chatbot. | -| `oncehub.chatbot.started` | Visitor starts interacting with the chatbot. | -| `oncehub.chatbot.closed` | Visitor closes the chatbot widget. | -| `oncehub.chatbot.button_clicked` | Visitor clicks on a button during the chatbot conversation. | +| Event name | Fires when | +| :------------------------------- | :----------------------------------------------------------------------------- | +| `oncehub.chatbot.loaded` | Chatbot widget is first loaded, on page load. | +| `oncehub.chatbot.opened` | Visitor clicks anywhere to interact with the chatbot. | +| `oncehub.chatbot.started` | Visitor starts interacting with the chatbot. | +| `oncehub.chatbot.closed` | Visitor closes the chatbot widget. | +| `oncehub.chatbot.button_clicked` | Visitor submits an answer in the chatbot (by clicking send or pressing enter). | ## Events payloads @@ -84,7 +84,14 @@ Payload example: "bot_id": "BOT-1234", "bot_name": "example bot", "button_text": "confirm", - "interaction_label": "schedule" + "interaction_label": "single_choice", + "booking_calendar_name": "Sales Team Calendar", + "question_text": "How many people are in your organization?", + "answer": "100-500" } } ``` + +:::note +This event triggers whenever a visitor submits an answer in the chatbot (e.g., selecting an option, typing a response, or confirming), but does not trigger for AI-generated responses or live chat sessions with human agents. +::: diff --git a/docs/recipes/embed-calendar-cohosts.md b/docs/recipes/embed-calendar-cohosts.md new file mode 100644 index 0000000..248bffc --- /dev/null +++ b/docs/recipes/embed-calendar-cohosts.md @@ -0,0 +1,169 @@ +--- +id: dynamic-co-host-selection +title: Dynamic co-host selection +description: Add checkboxes that update an embedded OnceHub calendar to include co-hosts. +slug: /recipes/dynamic-co-host-selection/ +--- + +# Dynamic Co-Host selection + +This recipe shows how to dynamically update the OnceHub Booking Calendar to show availability for specific team members based on user-selected checkboxes at runtime. It’s useful when you want guests to pick one or more team members and only show availability for the chosen co‑hosts. + +## Prerequisites + +- An active OnceHub Booking Calendar for the primary host. This Booking Calendar acts as the base for the booking and determines the meeting's primary configuration. +- An active seat/license and configured availability for all potential co-hosts. +- The standard OnceHub embed script integrated into your host page. +- A list of team member email addresses (as configured in OnceHub) to map to your checkbox values in the HTML. + +## Example HTML + +This implementation uses a list of checkboxes to dynamically update the Booking Calendar by appending the `co_hosts` parameter to the iframe URL. The JavaScript listens for selection changes and refreshes the iframe content in real-time. + +```html +
+

Select Team Members

+

+ Choose who you would like to meet with: +

+ +
+ + + +
+
+ +
+
+ + +
+ + +``` + +:::info +The code below uses a placeholder. Replace YOUR-BOOKING-CALENDAR-ID with your actual booking calendar ID to initialize the embed correctly. Ensure the custom script is placed after the OnceHub embed script so the target container is available in the DOM. +::: + +## How It Works + +1. **Capture Base State:** The script identifies the OnceHub iframe and saves its initial URL. +2. **Filter Logic:** When a user toggles a checkbox, the script aggregates the selected email addresses. +3. **URL Update:** The `co_hosts` query parameter is appended to the iframe URL, triggering an automatic refresh of the calendar with filtered availability. + +## Tips + +- **Case Sensitivity:** While the email address itself is not case-sensitive, the `co_hosts` parameter and checkbox `value` attributes are. Ensure these exactly match the OnceHub user's email; if the case or spelling is incorrect, the parameter will be ignored. +- **Asynchronous Loading:** Because the OnceHub script injects the iframe asynchronously, the script includes a safety check (if (!iframe)) to ensure the calendar is present before attempting an update. +- **URL Integrity:** The script uses a `baseIframeSrc` variable to store the original URL. This prevents query parameters from "stacking" or duplicating during multiple selections. +- **Availability Logic:** Selecting multiple `co_hosts` will only display time slots where all chosen team members are simultaneously free. + +--- + +See also: + +- [Embedding a calendar](../client-side-api/embedded-booking-calendar-events.md) diff --git a/docs/recipes/index.md b/docs/recipes/index.md new file mode 100644 index 0000000..be63945 --- /dev/null +++ b/docs/recipes/index.md @@ -0,0 +1,28 @@ +--- +id: recipes-index +title: Recipes +slug: /recipes/ +--- + +# Recipes + +Practical how-to guides to help you build common workflows with the OnceHub APIs. + +## Featured Solutions + +### [Fetch Bookings Periodically](./fetch-bookings-periodically) + +Learn how to poll the API for new or updated bookings with automatic pagination. + +### [Dynamic Co-Host selection](./dynamic-co-host-selection) + +Dynamically adjust your booking interface based on team availability. + +## Getting Started + +All recipes assume you have: + +- A OnceHub API Key +- Node.js 18+ or a modern development environment + +For authentication details, refer to the [API Reference](https://developers.oncehub.com/docs/overview/authentication/). diff --git a/docs/webhooks/using-webhooks.md b/docs/webhooks/using-webhooks.md index ba19073..9251741 100644 --- a/docs/webhooks/using-webhooks.md +++ b/docs/webhooks/using-webhooks.md @@ -15,6 +15,20 @@ You can register webhooks to send an HTTP POST request for specific types of boo > 🚧 POST messages may contain sensitive customer data. Always use HTTPS when providing the receiving POST URL. +## Webhook Delivery Retries + +If your endpoint does not return a successful `2xx` status code, the delivery is treated as failed and OnceHub retries it automatically. + +Retries use exponential backoff, so the time between attempts increases over time. + +Retries continue for up to about 3 days. If delivery still does not succeed within that retry window, the webhook is automatically disabled. + +To avoid missed events, make sure your endpoint: + +- Returns a `2xx` response as soon as the payload is accepted. +- Handles temporary errors and downtime gracefully. +- Logs failed deliveries so you can investigate and recover quickly. + ## Check That Your Webhook is Configured Correctly Once you have created your webhook subscription, you can check that it is configured correctly by using a service like Webhook Tester. diff --git a/openapi/index.yaml b/openapi/index.yaml index 8f992da..a2ba464 100644 --- a/openapi/index.yaml +++ b/openapi/index.yaml @@ -38,6 +38,8 @@ paths: $ref: "./resources/bookings/cancel.yaml#/bookings--id--cancel" /bookings/{id}/request-reschedule: $ref: "./resources/bookings/reschedule.yaml#/bookings--id--request-reschedule" + /bookings/{id}/reassign: + $ref: "./resources/bookings/reassign.yaml#/bookings--id--reassign" /bookings/{id}/no-show: $ref: "./resources/bookings/no-show.yaml#/bookings--id--no-show" diff --git a/openapi/resources/bookings/reassign.yaml b/openapi/resources/bookings/reassign.yaml new file mode 100644 index 0000000..dddc82e --- /dev/null +++ b/openapi/resources/bookings/reassign.yaml @@ -0,0 +1,116 @@ +bookings--id--reassign: + post: + tags: + - Bookings + summary: Reassign a booking + description: Reassign a booking to a new host by ID + operationId: reassign-booking + parameters: + - name: id + in: path + description: ID of the booking + schema: + type: string + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + new_host: + type: string + description: "The OnceHub user ID for the new host. The user must belong to the same account, hold an active seat license, and cannot be the current host of the booking." + location: + type: object + description: "Optional. The virtual location for the reassigned booking. If omitted, the system automatically assigns a location based on the new host's defaults." + properties: + type: + type: string + enum: [virtual] + description: "Must be virtual." + value: + type: string + description: "The virtual conferencing service (e.g. google_meet, microsoft_teams, webex, gotomeeting, zoom)." + required: + - type + - value + required: + - new_host + responses: + "401": + $ref: "../../components/responses/errors.yaml#/Unauthorized" + "429": + $ref: "../../components/responses/errors.yaml#/TooManyRequests" + "200": + description: "200" + content: + application/json: + schema: + $ref: "../../components/schemas/booking.yaml#/Booking" + "404": + description: "404" + content: + application/json: + examples: + BookingNotFound: + value: + type: invalid_request_error + message: "No such booking: '123'" + param: id + UserNotFound: + value: + type: invalid_request_error + message: "No such user: 'USR-XXXXXXXXXX'" + param: new_host + schema: + $ref: "../../components/schemas/common.yaml#/Error" + "422": + description: "422" + content: + application/json: + examples: + UserInactive: + value: + type: invalid_request_error + message: "User is inactive." + param: new_host + PlanRestriction: + value: + type: invalid_request_error + message: "Reassign is available on the Route plan and above." + SameHost: + value: + type: invalid_request_error + message: "Booking cannot be reassigned to the same host." + param: new_host + BookingsStatus: + value: + type: invalid_request_error + message: "Booking cannot be reassigned in its current status." + param: id + InvalidLocation: + value: + type: invalid_request_error + message: "Invalid location: 'Webex' is not connected for this user. Connected video conferencing options: google_meet, microsoft_teams." + param: location.value + HostSeat: + value: + type: invalid_request_error + message: "Cannot reassign booking: The new host requires an assigned seat." + schema: + $ref: "../../components/schemas/common.yaml#/Error" + "400": + description: "400" + content: + application/json: + examples: + InvalidLocationType: + value: + type: invalid_request_error + message: "location.type must be 'virtual'" + param: location.type + schema: + $ref: "../../components/schemas/common.yaml#/Error" + deprecated: false diff --git a/package-lock.json b/package-lock.json index b68b1b6..2e54e0a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,8 @@ "@docusaurus/core": "3.9.2", "@docusaurus/preset-classic": "3.9.2", "@mdx-js/react": "3.1.1", - "@scalar/api-reference": "1.44.25", - "@scalar/docusaurus": "0.7.40", + "@scalar/api-reference": "1.46.4", + "@scalar/docusaurus": "0.7.44", "@signalwire/docusaurus-plugin-llms-txt": "2.0.0-alpha.7", "@signalwire/docusaurus-theme-llms-txt": "1.0.0-alpha.9", "clsx": "2.1.1", @@ -25,11 +25,11 @@ "@docusaurus/module-type-aliases": "3.9.2", "@docusaurus/tsconfig": "3.9.2", "@docusaurus/types": "3.9.2", - "@redocly/cli": "2.19.2", - "@types/node": "25.3.0", + "@redocly/cli": "2.20.3", + "@types/node": "25.3.3", "concurrently": "9.2.1", "husky": "9.1.7", - "lint-staged": "16.2.7", + "lint-staged": "16.3.2", "prettier": "3.8.1", "typescript": "5.9.3" }, @@ -2131,9 +2131,9 @@ } }, "node_modules/@codemirror/autocomplete": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.0.tgz", - "integrity": "sha512-bOwvTOIJcG5FVo5gUUupiwYh8MioPLQ4UcqbcRf7UQ98X90tCa9E1kZ3Z7tqwpZxYyOvh1YTYbmZE9RTfTp5hg==", + "version": "6.20.1", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.1.tgz", + "integrity": "sha512-1cvg3Vz1dSSToCNlJfRA2WSI4ht3K+WplO0UMOgmUYPivCyy2oueZY6Lx7M9wThm7SDUBViRmuT+OG/i8+ON9A==", "license": "MIT", "dependencies": { "@codemirror/language": "^6.0.0", @@ -2185,9 +2185,9 @@ } }, "node_modules/@codemirror/lang-javascript": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.4.tgz", - "integrity": "sha512-0WVmhp1QOqZ4Rt6GlVGwKJN3KW7Xh4H2q8ZZNGZaP6lRdxXJzmjm4FqvmOojVj6khWJHIb9sp7U/72W7xQgqAA==", + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.5.tgz", + "integrity": "sha512-zD4e5mS+50htS7F+TYjBPsiIFGanfVqg4HyUz6WNFikgOPf2BgKlx+TQedI1w6n/IqRBVBbBWmGFdLB/7uxO4A==", "license": "MIT", "dependencies": { "@codemirror/autocomplete": "^6.0.0", @@ -2239,9 +2239,9 @@ } }, "node_modules/@codemirror/language": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.12.1.tgz", - "integrity": "sha512-Fa6xkSiuGKc8XC8Cn96T+TQHYj4ZZ7RdFmXA3i9xe/3hLHfwPZdM+dqfX0Cp0zQklBKhVD8Yzc8LS45rkqcwpQ==", + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.12.2.tgz", + "integrity": "sha512-jEPmz2nGGDxhRTg3lTpzmIyGKxz3Gp3SJES4b0nAuE5SWQoKdT5GoQ69cwMmFd+wvFUhYirtDTr0/DRHpQAyWg==", "license": "MIT", "dependencies": { "@codemirror/state": "^6.0.0", @@ -2253,9 +2253,9 @@ } }, "node_modules/@codemirror/lint": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.4.tgz", - "integrity": "sha512-ABc9vJ8DEmvOWuH26P3i8FpMWPQkduD9Rvba5iwb6O3hxASgclm3T3krGo8NASXkHCidz6b++LWlzWIUfEPSWw==", + "version": "6.9.5", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.5.tgz", + "integrity": "sha512-GElsbU9G7QT9xXhpUg1zWGmftA/7jamh+7+ydKRuT0ORpWS3wOSP0yT1FOlIZa7mIJjpVPipErsyvVqB9cfTFA==", "license": "MIT", "dependencies": { "@codemirror/state": "^6.0.0", @@ -2273,9 +2273,9 @@ } }, "node_modules/@codemirror/view": { - "version": "6.39.15", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.39.15.tgz", - "integrity": "sha512-aCWjgweIIXLBHh7bY6cACvXuyrZ0xGafjQ2VInjp4RM4gMfscK5uESiNdrH0pE+e1lZr2B4ONGsjchl2KsKZzg==", + "version": "6.39.16", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.39.16.tgz", + "integrity": "sha512-m6S22fFpKtOWhq8HuhzsI1WzUP/hB9THbDj0Tl5KX4gbO6Y91hwBl7Yky33NdvB6IffuRFiBxf1R8kJMyXmA4Q==", "license": "MIT", "dependencies": { "@codemirror/state": "^6.5.0", @@ -4313,24 +4313,36 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz", - "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.10" + "@floating-ui/utils": "^0.2.11" } }, + "node_modules/@floating-ui/core/node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, "node_modules/@floating-ui/dom": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz", - "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==", + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.7.4", - "@floating-ui/utils": "^0.2.10" + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" } }, + "node_modules/@floating-ui/dom/node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, "node_modules/@floating-ui/utils": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", @@ -5155,9 +5167,9 @@ "license": "BSD-3-Clause" }, "node_modules/@redocly/ajv": { - "version": "8.17.4", - "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.17.4.tgz", - "integrity": "sha512-BieiCML/IgP6x99HZByJSt7fJE4ipgzO7KAFss92Bs+PEI35BhY7vGIysFXLT+YmS7nHtQjZjhOQyPPEf7xGHA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-F+LMD2IDIXuHxgpLJh3nkLj9+tSaEzoUWd+7fONGq5pe2169FUDjpEkOfEpoGLz1sbZni/69p07OsecNfAOpqA==", "dev": true, "license": "MIT", "dependencies": { @@ -5172,9 +5184,9 @@ } }, "node_modules/@redocly/cli": { - "version": "2.19.2", - "resolved": "https://registry.npmjs.org/@redocly/cli/-/cli-2.19.2.tgz", - "integrity": "sha512-eT0hDCFwXceOUD7UxMltCk6baE9cOlCJ0LsBWFMHlaUYhkBztts0BoLx+nQTSqDUPCMGg0BKRLuNuHe3CR4HeA==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/@redocly/cli/-/cli-2.20.3.tgz", + "integrity": "sha512-Jp2FtUMsfdg536XlxLQJdsGFapfMNtK8+Jve4hVCmMfC3brlb+xZUhC9Wt0CHIRw1RYf1aI4E5V0EO0i3x3/nQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5182,10 +5194,10 @@ "@opentelemetry/resources": "2.0.1", "@opentelemetry/sdk-trace-node": "2.0.1", "@opentelemetry/semantic-conventions": "1.34.0", - "@redocly/openapi-core": "2.19.2", - "@redocly/respect-core": "2.19.2", + "@redocly/openapi-core": "2.20.3", + "@redocly/respect-core": "2.20.3", "abort-controller": "^3.0.0", - "ajv": "npm:@redocly/ajv@8.17.4", + "ajv": "npm:@redocly/ajv@8.18.0", "ajv-formats": "^3.0.1", "colorette": "^1.2.0", "cookie": "^0.7.2", @@ -5270,9 +5282,9 @@ } }, "node_modules/@redocly/cli/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -5283,9 +5295,9 @@ } }, "node_modules/@redocly/config": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.43.0.tgz", - "integrity": "sha512-AbyFKRHKJ2VBmh9nO2lrG9tO2Gu/Lmnfdj4Uwoh7h/a7jWr1104t4fBgQZs/NwgGBAOkGmyQYAvardwyBeRGZA==", + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.44.0.tgz", + "integrity": "sha512-UHKkWcCNZrGiKBbrQ1CE08ElrOUGm5H97Zn8+wkp80Uu2AT/go5In1sbqvhHxViPYtu1MLdy7qKiifSyOL3W/A==", "dev": true, "license": "MIT", "dependencies": { @@ -5293,15 +5305,15 @@ } }, "node_modules/@redocly/openapi-core": { - "version": "2.19.2", - "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-2.19.2.tgz", - "integrity": "sha512-eooTSDKyN0F4YOjLPh/ajcvpzg/Rv7y5+Os/EyyCc2yu+zA+gZhSykQnOAIXcrSzrjn1bNpe4QF9eZNFLX4q0A==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-2.20.3.tgz", + "integrity": "sha512-i+yVsGvieqfL5ySq9N0+qQ1nxNTW0e1uTH9B+EIgkWNogV6Fuj1tcMZKlhUX7CGRIOZ+lR1AXDcAFuWVYlp9YA==", "dev": true, "license": "MIT", "dependencies": { - "@redocly/ajv": "^8.17.4", - "@redocly/config": "^0.43.0", - "ajv": "npm:@redocly/ajv@8.17.4", + "@redocly/ajv": "^8.18.0", + "@redocly/config": "^0.44.0", + "ajv": "npm:@redocly/ajv@8.18.0", "ajv-formats": "^3.0.1", "colorette": "^1.2.0", "js-levenshtein": "^1.1.6", @@ -5315,24 +5327,6 @@ "npm": ">=10" } }, - "node_modules/@redocly/openapi-core/node_modules/ajv": { - "name": "@redocly/ajv", - "version": "8.17.4", - "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.17.4.tgz", - "integrity": "sha512-BieiCML/IgP6x99HZByJSt7fJE4ipgzO7KAFss92Bs+PEI35BhY7vGIysFXLT+YmS7nHtQjZjhOQyPPEf7xGHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/@redocly/openapi-core/node_modules/ajv-formats": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", @@ -5359,9 +5353,9 @@ "license": "MIT" }, "node_modules/@redocly/openapi-core/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -5372,22 +5366,22 @@ } }, "node_modules/@redocly/respect-core": { - "version": "2.19.2", - "resolved": "https://registry.npmjs.org/@redocly/respect-core/-/respect-core-2.19.2.tgz", - "integrity": "sha512-Ng5m9Sh+6PNW5rFrGQMucphRK/1EtMwLGeJVZBMDGe7YofiyqziDLQvJbI4aHzN2RKrYA585PKGZOQekWfoaCA==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/@redocly/respect-core/-/respect-core-2.20.3.tgz", + "integrity": "sha512-6HVHhDNW4B73V9p4F45Ykbq7d+6QZB+IYLElyMnQ5arBHrPfLAGRVlqE2NCd6gDciE/Y57XuZ+neY5qk1VmYNQ==", "dev": true, "license": "MIT", "dependencies": { "@faker-js/faker": "^7.6.0", "@noble/hashes": "^1.8.0", - "@redocly/ajv": "8.17.4", - "@redocly/openapi-core": "2.19.2", - "ajv": "npm:@redocly/ajv@8.17.4", + "@redocly/ajv": "^8.18.0", + "@redocly/openapi-core": "2.20.3", + "ajv": "npm:@redocly/ajv@8.18.0", "better-ajv-errors": "^1.2.0", "colorette": "^2.0.20", "json-pointer": "^0.6.2", "jsonpath-rfc9535": "1.3.0", - "openapi-sampler": "^1.7.0", + "openapi-sampler": "^1.7.1", "outdent": "^0.8.0", "picomatch": "^4.0.3" }, @@ -5396,28 +5390,10 @@ "npm": ">=10" } }, - "node_modules/@redocly/respect-core/node_modules/ajv": { - "name": "@redocly/ajv", - "version": "8.17.4", - "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.17.4.tgz", - "integrity": "sha512-BieiCML/IgP6x99HZByJSt7fJE4ipgzO7KAFss92Bs+PEI35BhY7vGIysFXLT+YmS7nHtQjZjhOQyPPEf7xGHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/@redocly/respect-core/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -5439,22 +5415,22 @@ } }, "node_modules/@scalar/agent-chat": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/@scalar/agent-chat/-/agent-chat-0.5.16.tgz", - "integrity": "sha512-GNM7riKeYWprb4eV3bhglONmCUbeHXBigm/r61mP2PGC0uHsuYUTfpFu6sf42D7uTA72XNJiopPTDbVMzUVXfw==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@scalar/agent-chat/-/agent-chat-0.7.3.tgz", + "integrity": "sha512-r8lF7vHm0Oee8y3MgYTEOKfJF8WwdiApLICuzcqKLt0YayEURiSMB36J1SPtzISO7t66WbFi3xru8MdOa3FmUw==", "license": "MIT", "dependencies": { "@ai-sdk/vue": "3.0.33", - "@scalar/api-client": "2.29.2", - "@scalar/components": "0.19.8", - "@scalar/helpers": "0.2.15", + "@scalar/api-client": "2.31.3", + "@scalar/components": "0.19.15", + "@scalar/helpers": "0.2.18", "@scalar/icons": "0.5.3", - "@scalar/json-magic": "0.11.4", - "@scalar/openapi-types": "0.5.3", - "@scalar/themes": "0.14.0", - "@scalar/types": "0.6.6", + "@scalar/json-magic": "0.11.7", + "@scalar/openapi-types": "0.5.4", + "@scalar/themes": "0.14.3", + "@scalar/types": "0.6.10", "@scalar/use-toasts": "0.9.1", - "@scalar/workspace-store": "0.34.2", + "@scalar/workspace-store": "0.35.3", "@vueuse/core": "13.9.0", "ai": "6.0.33", "neverpanic": "0.0.5", @@ -5553,34 +5529,34 @@ } }, "node_modules/@scalar/api-client": { - "version": "2.29.2", - "resolved": "https://registry.npmjs.org/@scalar/api-client/-/api-client-2.29.2.tgz", - "integrity": "sha512-loBBYeir46ZygDRjrJoIYfjMohNzY1u+m76opIkTOtCd0tDNPx7To+Sg2DCYxctrzRiXQtVjthcuxEkGuhZ3sQ==", + "version": "2.31.3", + "resolved": "https://registry.npmjs.org/@scalar/api-client/-/api-client-2.31.3.tgz", + "integrity": "sha512-Qyy7C6Vt+9GHA4hOSdn2E0DkXB/6EjyCuqW9Vn063Wg8PIlkNAyOkszZtDtDUc0KI+c4J1iwCUVelrZr5lrnwQ==", "license": "MIT", "dependencies": { "@headlessui/tailwindcss": "^0.2.2", "@headlessui/vue": "1.7.23", "@scalar/analytics-client": "1.0.1", - "@scalar/components": "0.19.8", + "@scalar/components": "0.19.15", "@scalar/draggable": "0.3.0", - "@scalar/helpers": "0.2.15", + "@scalar/helpers": "0.2.18", "@scalar/icons": "0.5.3", - "@scalar/import": "0.4.52", - "@scalar/json-magic": "0.11.4", - "@scalar/oas-utils": "0.6.46", - "@scalar/object-utils": "1.2.29", - "@scalar/openapi-parser": "0.24.13", - "@scalar/openapi-types": "0.5.3", - "@scalar/postman-to-openapi": "0.4.7", - "@scalar/sidebar": "0.7.39", - "@scalar/snippetz": "0.6.15", - "@scalar/themes": "0.14.0", + "@scalar/import": "0.4.55", + "@scalar/json-magic": "0.11.7", + "@scalar/oas-utils": "0.8.3", + "@scalar/object-utils": "1.2.32", + "@scalar/openapi-parser": "0.24.17", + "@scalar/openapi-types": "0.5.4", + "@scalar/postman-to-openapi": "0.4.10", + "@scalar/sidebar": "0.7.46", + "@scalar/snippetz": "0.6.19", + "@scalar/themes": "0.14.3", "@scalar/typebox": "^0.1.3", - "@scalar/types": "0.6.6", - "@scalar/use-codemirror": "0.13.43", + "@scalar/types": "0.6.10", + "@scalar/use-codemirror": "0.13.50", "@scalar/use-hooks": "0.3.7", "@scalar/use-toasts": "0.9.1", - "@scalar/workspace-store": "0.34.2", + "@scalar/workspace-store": "0.35.3", "@types/har-format": "^1.2.15", "@vueuse/core": "13.9.0", "@vueuse/integrations": "13.9.0", @@ -5637,9 +5613,9 @@ } }, "node_modules/@scalar/api-client/node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -5652,32 +5628,32 @@ } }, "node_modules/@scalar/api-reference": { - "version": "1.44.25", - "resolved": "https://registry.npmjs.org/@scalar/api-reference/-/api-reference-1.44.25.tgz", - "integrity": "sha512-G3jLlUkjcic7mwwPMmYB1ve5RNoXLo1dqwH5UNq+1JvLvFrzjdQV825pejWWld/XRw3dG2rnglUGyT0Kj+pYwA==", + "version": "1.46.4", + "resolved": "https://registry.npmjs.org/@scalar/api-reference/-/api-reference-1.46.4.tgz", + "integrity": "sha512-EpCcOG15Ry8DKNs/f5AdRA97s1B5kGPekzANpnK0j1IpyU4Sb/mfdyfB00WC+vUo7hfc4BFRSkkiPa5SSM7fng==", "license": "MIT", "dependencies": { "@headlessui/vue": "1.7.23", - "@scalar/agent-chat": "0.5.16", - "@scalar/api-client": "2.29.2", - "@scalar/code-highlight": "0.2.3", - "@scalar/components": "0.19.8", - "@scalar/helpers": "0.2.15", + "@scalar/agent-chat": "0.7.3", + "@scalar/api-client": "2.31.3", + "@scalar/code-highlight": "0.2.4", + "@scalar/components": "0.19.15", + "@scalar/helpers": "0.2.18", "@scalar/icons": "0.5.3", - "@scalar/oas-utils": "0.6.46", - "@scalar/openapi-parser": "0.24.13", - "@scalar/openapi-types": "0.5.3", - "@scalar/sidebar": "0.7.39", - "@scalar/snippetz": "0.6.15", - "@scalar/themes": "0.14.0", - "@scalar/types": "0.6.6", + "@scalar/oas-utils": "0.8.3", + "@scalar/openapi-parser": "0.24.17", + "@scalar/openapi-types": "0.5.4", + "@scalar/sidebar": "0.7.46", + "@scalar/snippetz": "0.6.19", + "@scalar/themes": "0.14.3", + "@scalar/types": "0.6.10", "@scalar/use-hooks": "0.3.7", "@scalar/use-toasts": "0.9.1", - "@scalar/workspace-store": "0.34.2", + "@scalar/workspace-store": "0.35.3", "@unhead/vue": "^2.1.4", "@vueuse/core": "13.9.0", "fuse.js": "^7.1.0", - "github-slugger": "^2.0.0", + "github-slugger": "2.0.0", "microdiff": "^1.5.0", "nanoid": "^5.1.6", "vue": "^3.5.26" @@ -5711,9 +5687,9 @@ } }, "node_modules/@scalar/code-highlight": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@scalar/code-highlight/-/code-highlight-0.2.3.tgz", - "integrity": "sha512-xZbQ+8wlTzjSgm7DvedN9f4yHXjO5pM2Ib3rhIJY8GWNOVnWHEw58r6Lon/FFAR1+kxc4Dw3LOGHM7qxBpHIIg==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@scalar/code-highlight/-/code-highlight-0.2.4.tgz", + "integrity": "sha512-sF9kpxyeh+jwh0ZpXias9UrPBbZf0zgY8Y2nlQqYAwVdGbFdO/bIzjKTi9vWCkKS78NsBfz7rLnJsQ+UP/11rA==", "license": "MIT", "dependencies": { "hast-util-to-text": "^4.0.2", @@ -5738,19 +5714,19 @@ } }, "node_modules/@scalar/components": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@scalar/components/-/components-0.19.8.tgz", - "integrity": "sha512-d7ce6Yxr1beoeczXvtD+WpbGri5mW9+2UIgFGd/e9H+DIsfuuukAKsnaso82WYa0j/ZtN0nWEu0LM7G5+frg7A==", + "version": "0.19.15", + "resolved": "https://registry.npmjs.org/@scalar/components/-/components-0.19.15.tgz", + "integrity": "sha512-oYK5zJarMJ5HvNGJsr6/Y7lz9TPy6Q+g3bQ1PxbaGURcKItXWlR+Yki1kZQ1A6/3b1XpBoMkMUHYp1bBOPW4KQ==", "license": "MIT", "dependencies": { "@floating-ui/utils": "0.2.10", "@floating-ui/vue": "1.1.9", "@headlessui/vue": "1.7.23", - "@scalar/code-highlight": "0.2.3", - "@scalar/helpers": "0.2.15", + "@scalar/code-highlight": "0.2.4", + "@scalar/helpers": "0.2.18", "@scalar/icons": "0.5.3", - "@scalar/oas-utils": "0.6.46", - "@scalar/themes": "0.14.0", + "@scalar/oas-utils": "0.8.3", + "@scalar/themes": "0.14.3", "@scalar/use-hooks": "0.3.7", "@vueuse/core": "13.9.0", "cva": "1.0.0-beta.4", @@ -5783,12 +5759,12 @@ } }, "node_modules/@scalar/docusaurus": { - "version": "0.7.40", - "resolved": "https://registry.npmjs.org/@scalar/docusaurus/-/docusaurus-0.7.40.tgz", - "integrity": "sha512-Oxxt7iNci1XLHhe6taergG69xorn4QS6OPRDCr5RIund/CkG7Z0kzlDrY5h+jBFEcj5L3CjL6YQo3MI4gwSymw==", + "version": "0.7.44", + "resolved": "https://registry.npmjs.org/@scalar/docusaurus/-/docusaurus-0.7.44.tgz", + "integrity": "sha512-GUop+mdVe761bcUw/PDdyhR969dF948REosp7JyiQ+6TnlaDfg/7C3lUbwV8sGa1DTNrjKeXqHBh8AOMgubIWQ==", "license": "MIT", "dependencies": { - "@scalar/types": "0.6.6" + "@scalar/types": "0.6.10" }, "engines": { "node": ">=20" @@ -5811,9 +5787,9 @@ } }, "node_modules/@scalar/helpers": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/@scalar/helpers/-/helpers-0.2.15.tgz", - "integrity": "sha512-hMHXejGFVOS4HwCo7C2qddChuvMJs3sEOALo7gNOvwLS4dGLrW8flbSglDki4ttyremlKQstP5WJuPxmHQU3sA==", + "version": "0.2.18", + "resolved": "https://registry.npmjs.org/@scalar/helpers/-/helpers-0.2.18.tgz", + "integrity": "sha512-w1d4tpNEVZ293oB2BAgLrS0kVPUtG3eByNmOCJA5eK9vcT4D3cmsGtWjUaaqit0BQCsBFHK51rasGvSWnApYTw==", "license": "MIT", "engines": { "node": ">=20" @@ -5835,9 +5811,9 @@ } }, "node_modules/@scalar/icons/node_modules/@types/node": { - "version": "22.19.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.11.tgz", - "integrity": "sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==", + "version": "22.19.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.13.tgz", + "integrity": "sha512-akNQMv0wW5uyRpD2v2IEyRSZiR+BeGuoB6L310EgGObO44HSMNT8z1xzio28V8qOrgYaopIDNA18YgdXd+qTiw==", "license": "MIT", "dependencies": { "undici-types": "~6.21.0" @@ -5862,12 +5838,12 @@ "license": "MIT" }, "node_modules/@scalar/import": { - "version": "0.4.52", - "resolved": "https://registry.npmjs.org/@scalar/import/-/import-0.4.52.tgz", - "integrity": "sha512-9N5cwGWpsi4jABAVeuQijtaal0TPDrznWjIJKLvOh6W+UrOdx9Em78UmdpSbtcYrtIOxQDSTr6dIswnX1uaJ7A==", + "version": "0.4.55", + "resolved": "https://registry.npmjs.org/@scalar/import/-/import-0.4.55.tgz", + "integrity": "sha512-XCn7OwoFNWkEpIJHYMuoUvtR5gLtaKf8AXrcHVVNmQG5TcAd+PfzSYCYwNcRtPEmaBKIyt5Vc5zsgPS8wTFyBw==", "license": "MIT", "dependencies": { - "@scalar/helpers": "0.2.15", + "@scalar/helpers": "0.2.18", "yaml": "^2.8.0" }, "engines": { @@ -5875,9 +5851,9 @@ } }, "node_modules/@scalar/import/node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -5890,12 +5866,12 @@ } }, "node_modules/@scalar/json-magic": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/@scalar/json-magic/-/json-magic-0.11.4.tgz", - "integrity": "sha512-F40E18vp6GIcJU5kV9UOKGhIrzN2IYdEMCcG3vw3INvvkXqJGqVPnCjcnSWFk27MByaD5Dzjlc3TvkgTiqNGYw==", + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@scalar/json-magic/-/json-magic-0.11.7.tgz", + "integrity": "sha512-GVz9E0vXu+ecypkdn0biK1gbQVkK4QTTX1Hq3eMgxlLQC91wwiqWfCqwfhuX0LRu+Z5OmYhLhufDJEEh56rVgA==", "license": "MIT", "dependencies": { - "@scalar/helpers": "0.2.15", + "@scalar/helpers": "0.2.18", "pathe": "^2.0.3", "yaml": "^2.8.0" }, @@ -5904,9 +5880,9 @@ } }, "node_modules/@scalar/json-magic/node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -5919,19 +5895,20 @@ } }, "node_modules/@scalar/oas-utils": { - "version": "0.6.46", - "resolved": "https://registry.npmjs.org/@scalar/oas-utils/-/oas-utils-0.6.46.tgz", - "integrity": "sha512-EVB9/plWeM2nkNUCZtfmaJjdG8F95OtI3MTgnxqIW36o4MNYuNOcllBVkr7UlZDoNg5vZKHDfmZiab4Ho2L4ZA==", - "license": "MIT", - "dependencies": { - "@scalar/helpers": "0.2.15", - "@scalar/json-magic": "0.11.4", - "@scalar/object-utils": "1.2.29", - "@scalar/openapi-types": "0.5.3", - "@scalar/themes": "0.14.0", - "@scalar/types": "0.6.6", - "@scalar/workspace-store": "0.34.2", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@scalar/oas-utils/-/oas-utils-0.8.3.tgz", + "integrity": "sha512-FQLZzY+c1tOkXsYtht3MyFJMpLqymhnUvrd7uk0FI659JAu5bDtcasJ1ZM2MbqALS0n7ta1u417ADEagTugPWQ==", + "license": "MIT", + "dependencies": { + "@scalar/helpers": "0.2.18", + "@scalar/json-magic": "0.11.7", + "@scalar/object-utils": "1.2.32", + "@scalar/openapi-types": "0.5.4", + "@scalar/themes": "0.14.3", + "@scalar/types": "0.6.10", + "@scalar/workspace-store": "0.35.3", "flatted": "^3.3.3", + "github-slugger": "2.0.0", "type-fest": "^5.3.1", "vue": "^3.5.26", "yaml": "^2.8.0", @@ -5941,6 +5918,12 @@ "node": ">=20" } }, + "node_modules/@scalar/oas-utils/node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, "node_modules/@scalar/oas-utils/node_modules/type-fest": { "version": "5.4.4", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.4.4.tgz", @@ -5957,9 +5940,9 @@ } }, "node_modules/@scalar/oas-utils/node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -5972,12 +5955,12 @@ } }, "node_modules/@scalar/object-utils": { - "version": "1.2.29", - "resolved": "https://registry.npmjs.org/@scalar/object-utils/-/object-utils-1.2.29.tgz", - "integrity": "sha512-9yOGPDfl/Aj0hayhuCoFvAFhVV9KFGOM1tffDNTROSezo2wRrwq7K/8Qd5hsZJHdjYX20VIuc/QPyRB6krstDA==", + "version": "1.2.32", + "resolved": "https://registry.npmjs.org/@scalar/object-utils/-/object-utils-1.2.32.tgz", + "integrity": "sha512-t3qTaI2Jd4xhXS42KTS9VqKJ4YENxLidemy+E9Y1voJmVScG+A9qHn4LSkXUrS2sYhOGuwERjxRZr2P7zgCMqA==", "license": "MIT", "dependencies": { - "@scalar/helpers": "0.2.15", + "@scalar/helpers": "0.2.18", "flatted": "^3.3.3", "just-clone": "^6.2.0", "ts-deepmerge": "^7.0.3" @@ -5987,15 +5970,15 @@ } }, "node_modules/@scalar/openapi-parser": { - "version": "0.24.13", - "resolved": "https://registry.npmjs.org/@scalar/openapi-parser/-/openapi-parser-0.24.13.tgz", - "integrity": "sha512-PMrvJRZeosQ35LX8wbbmIU07fxjnWuIe2Yk9suzH+dGbeV/IrGKJZiZZ4Cj9EK1olwBuNZ9YHBl+P0ZlvcHc8A==", + "version": "0.24.17", + "resolved": "https://registry.npmjs.org/@scalar/openapi-parser/-/openapi-parser-0.24.17.tgz", + "integrity": "sha512-aM9UVrzlMreC3X/sZbyj+7XDZmat3ecGC3RpU8dqEO/HIH+CEX0xMLuP+41DhePCYg5+9TtDomSfWuMq4x1Z1A==", "license": "MIT", "dependencies": { - "@scalar/helpers": "0.2.15", - "@scalar/json-magic": "0.11.4", - "@scalar/openapi-types": "0.5.3", - "@scalar/openapi-upgrader": "0.1.8", + "@scalar/helpers": "0.2.18", + "@scalar/json-magic": "0.11.7", + "@scalar/openapi-types": "0.5.4", + "@scalar/openapi-upgrader": "0.1.11", "ajv": "^8.17.1", "ajv-draft-04": "^1.0.0", "ajv-formats": "^3.0.1", @@ -6037,9 +6020,9 @@ } }, "node_modules/@scalar/openapi-parser/node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -6052,54 +6035,54 @@ } }, "node_modules/@scalar/openapi-types": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@scalar/openapi-types/-/openapi-types-0.5.3.tgz", - "integrity": "sha512-m4n/Su3K01d15dmdWO1LlqecdSPKuNjuokrJLdiQ485kW/hRHbXW1QP6tJL75myhw/XhX5YhYAR+jrwnGjXiMw==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@scalar/openapi-types/-/openapi-types-0.5.4.tgz", + "integrity": "sha512-2pEbhprh8lLGDfUI6mNm9EV104pjb3+aJsXrFaqfgOSre7r6NlgM5HcSbsLjzDAnTikjJhJ3IMal1Rz8WVwiOw==", "license": "MIT", "dependencies": { - "zod": "^4.1.11" + "zod": "^4.3.5" }, "engines": { "node": ">=20" } }, "node_modules/@scalar/openapi-upgrader": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@scalar/openapi-upgrader/-/openapi-upgrader-0.1.8.tgz", - "integrity": "sha512-2xuYLLs0fBadLIk4I1ObjMiCnOyLPEMPf24A1HtHQvhKGDnGlvT63F2rU2Xw8lxCjgHnzveMPnOJEbwIy64RCg==", + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@scalar/openapi-upgrader/-/openapi-upgrader-0.1.11.tgz", + "integrity": "sha512-ngJcHGoCHmpWgYtNy08vmzFfLdQEkMpvaCQqNPPMNKq0QEXOv89e/rn+TZJZgPnRlY7fDIoIhn9lNgr+azBW+w==", "license": "MIT", "dependencies": { - "@scalar/openapi-types": "0.5.3" + "@scalar/openapi-types": "0.5.4" }, "engines": { "node": ">=20" } }, "node_modules/@scalar/postman-to-openapi": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@scalar/postman-to-openapi/-/postman-to-openapi-0.4.7.tgz", - "integrity": "sha512-FLYXI+1Xr1FXQou/VzFDbtoewEL8g0lrjOV1cF4CTtilPbDbS48sd3+WVXJfWj90PYxnYX2zyDv1TPrtZ7Mciw==", + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/@scalar/postman-to-openapi/-/postman-to-openapi-0.4.10.tgz", + "integrity": "sha512-s7TECz1DLSXggRYEEVjoBXLxY3nKCU9n4zA7FxRywxsG485qmr2gMHqU5plFJDC59RUxcIOo+V+LbOpKo1EQUQ==", "license": "MIT", "dependencies": { - "@scalar/helpers": "0.2.15", - "@scalar/openapi-types": "0.5.3" + "@scalar/helpers": "0.2.18", + "@scalar/openapi-types": "0.5.4" }, "engines": { "node": ">=20" } }, "node_modules/@scalar/sidebar": { - "version": "0.7.39", - "resolved": "https://registry.npmjs.org/@scalar/sidebar/-/sidebar-0.7.39.tgz", - "integrity": "sha512-x9ItC8v72JCyBDNHGVC647g5ctcej4wv3YNBOfiFqzPwjv7z7mdh6/SKAd7sNuUUs5JKLpdypoYn9Wc27qekJQ==", + "version": "0.7.46", + "resolved": "https://registry.npmjs.org/@scalar/sidebar/-/sidebar-0.7.46.tgz", + "integrity": "sha512-80+28tW2qM0mH1v/dAZu1DMmv8nj/Rz88PDW4fRY8yMP6xoNi8IpKhnFJ4dnGOBMqu7/2VsOAIGADLVA6ZC4jw==", "license": "MIT", "dependencies": { - "@scalar/components": "0.19.8", - "@scalar/helpers": "0.2.15", + "@scalar/components": "0.19.15", + "@scalar/helpers": "0.2.18", "@scalar/icons": "0.5.3", - "@scalar/themes": "0.14.0", + "@scalar/themes": "0.14.3", "@scalar/use-hooks": "0.3.7", - "@scalar/workspace-store": "0.34.2", + "@scalar/workspace-store": "0.35.3", "vue": "^3.5.26" }, "engines": { @@ -6107,12 +6090,12 @@ } }, "node_modules/@scalar/snippetz": { - "version": "0.6.15", - "resolved": "https://registry.npmjs.org/@scalar/snippetz/-/snippetz-0.6.15.tgz", - "integrity": "sha512-cuDyspVqyAJNnZKfoo1UY44EnBqEYYyklR40fuCXao3HweikT7EAY/bCVdRh22b3fTmNb5JnMf7hSfXAkzR9XA==", + "version": "0.6.19", + "resolved": "https://registry.npmjs.org/@scalar/snippetz/-/snippetz-0.6.19.tgz", + "integrity": "sha512-eWZiCFrv2ExTgYBytSOmXbnY5zVSXRV0tGjFGtDL6ovv9TZIjOrIi0CVg6NLgcs9I1XHAYpE0JlWKQnQ+dGQYw==", "license": "MIT", "dependencies": { - "@scalar/types": "0.6.6", + "@scalar/types": "0.6.10", "js-base64": "^3.7.8", "stringify-object": "^6.0.0" }, @@ -6163,9 +6146,9 @@ } }, "node_modules/@scalar/themes": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@scalar/themes/-/themes-0.14.0.tgz", - "integrity": "sha512-VCEBYRnXqQdek+MGVNP+aNepdofDm6sMn5Yr+AUd3eKbakGsLbNjuK1RNvZ+7RiGPVF1xLltNazkExWHBwLCIw==", + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/@scalar/themes/-/themes-0.14.3.tgz", + "integrity": "sha512-QZpuopwlXSX2e4sxYSSQEm3CzanPzlNIhUONVaZQOo0wUSfyaC1V4QTGMigSPzdo505ouZNyh80bR0Glmn4fag==", "license": "MIT", "dependencies": { "nanoid": "^5.1.6" @@ -6199,12 +6182,12 @@ "license": "MIT" }, "node_modules/@scalar/types": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@scalar/types/-/types-0.6.6.tgz", - "integrity": "sha512-nr3m23p5MnGy4Wb4JFT7aA+jzvYSs/AS40NUEoQMBE1IwtuvG5gtLL0uu6kWpDq4UAfrWGntlAQNX7G8X9D4sg==", + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/@scalar/types/-/types-0.6.10.tgz", + "integrity": "sha512-fZkelRwcEeAhsn4c0wjYXWrzSzLaEyfxTn/eazXJ4XfCIsgJTQyK0FD8mnOBZJ2vEIbtT2E1mBKnCbDxrJIlxA==", "license": "MIT", "dependencies": { - "@scalar/helpers": "0.2.15", + "@scalar/helpers": "0.2.18", "nanoid": "^5.1.6", "type-fest": "^5.3.1", "zod": "^4.3.5" @@ -6247,9 +6230,9 @@ } }, "node_modules/@scalar/use-codemirror": { - "version": "0.13.43", - "resolved": "https://registry.npmjs.org/@scalar/use-codemirror/-/use-codemirror-0.13.43.tgz", - "integrity": "sha512-h3/T9GVJFkNO4YF+Mc+Y04EcrbkFS8KA/10L8RcyrwuBLvnzJwq8HU69jPxtv4zhWRGOb9MdnRizaHvzE2dF9w==", + "version": "0.13.50", + "resolved": "https://registry.npmjs.org/@scalar/use-codemirror/-/use-codemirror-0.13.50.tgz", + "integrity": "sha512-KaX8bixOz4sMy5a9XzjH03ffo6n905ol850bT8YRqBuPaTXoxq3M/Z0MipxvCRL+SQ/U07QiwJQnCO3jnXd+xQ==", "license": "MIT", "dependencies": { "@codemirror/autocomplete": "^6.18.3", @@ -6266,7 +6249,7 @@ "@lezer/common": "^1.2.3", "@lezer/highlight": "^1.2.1", "@replit/codemirror-css-color-picker": "^6.3.0", - "@scalar/components": "0.19.8", + "@scalar/components": "0.19.15", "vue": "^3.5.26" }, "engines": { @@ -6324,20 +6307,20 @@ } }, "node_modules/@scalar/workspace-store": { - "version": "0.34.2", - "resolved": "https://registry.npmjs.org/@scalar/workspace-store/-/workspace-store-0.34.2.tgz", - "integrity": "sha512-Cqq1OXrN8GG5UQKoGOUXQ8HciGq/Z2z/c8veqqLIwxOCWgt9TJ5AsqP/Jfb7tOE/GrIhOYCUZr6rwsuOFlnxgQ==", + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@scalar/workspace-store/-/workspace-store-0.35.3.tgz", + "integrity": "sha512-q/ZKiNQ+PSKiNO/2EGFJn1/+Hp75IN+E2KWyx9etS0YLLFNiW3IaKXB3sCX8hMZ8z7Tf+EL718ejrs9+Rvc92A==", "license": "MIT", "dependencies": { - "@scalar/code-highlight": "0.2.3", - "@scalar/helpers": "0.2.15", - "@scalar/json-magic": "0.11.4", - "@scalar/object-utils": "1.2.29", - "@scalar/openapi-upgrader": "0.1.8", - "@scalar/snippetz": "0.6.15", + "@scalar/code-highlight": "0.2.4", + "@scalar/helpers": "0.2.18", + "@scalar/json-magic": "0.11.7", + "@scalar/object-utils": "1.2.32", + "@scalar/openapi-upgrader": "0.1.11", + "@scalar/snippetz": "0.6.19", "@scalar/typebox": "0.1.3", - "@scalar/types": "0.6.6", - "github-slugger": "^2.0.0", + "@scalar/types": "0.6.10", + "github-slugger": "2.0.0", "type-fest": "^5.3.1", "vue": "^3.5.26", "yaml": "^2.8.0" @@ -6368,9 +6351,9 @@ } }, "node_modules/@scalar/workspace-store/node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -6799,15 +6782,6 @@ "vue": "^2.7.0 || ^3.0.0" } }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/@types/body-parser": { "version": "1.19.6", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", @@ -7026,9 +7000,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.0.tgz", - "integrity": "sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==", + "version": "25.3.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.3.tgz", + "integrity": "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==", "license": "MIT", "dependencies": { "undici-types": "~7.18.0" @@ -7214,13 +7188,13 @@ "license": "ISC" }, "node_modules/@unhead/vue": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-2.1.4.tgz", - "integrity": "sha512-MFvywgkHMt/AqbhmKOqRuzvuHBTcmmmnUa7Wm/Sg11leXAeRShv2PcmY7IiYdeeJqBMCm1jwhcs6201jj6ggZg==", + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-2.1.12.tgz", + "integrity": "sha512-zEWqg0nZM8acpuTZE40wkeUl8AhIe0tU0OkilVi1D4fmVjACrwoh5HP6aNqJ8kUnKsoy6D+R3Vi/O+fmdNGO7g==", "license": "MIT", "dependencies": { "hookable": "^6.0.1", - "unhead": "2.1.4" + "unhead": "2.1.12" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" @@ -7782,9 +7756,9 @@ } }, "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", @@ -8339,13 +8313,26 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/brace-expansion/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/braces": { @@ -10330,11 +10317,14 @@ } }, "node_modules/dompurify": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.7.tgz", - "integrity": "sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.3.tgz", + "integrity": "sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==", "dev": true, "license": "(MPL-2.0 OR Apache-2.0)", + "engines": { + "node": ">=20" + }, "optionalDependencies": { "@types/trusted-types": "^2.0.7" } @@ -11054,10 +11044,26 @@ ], "license": "BSD-3-Clause" }, + "node_modules/fast-xml-builder": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.4.tgz", + "integrity": "sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "path-expression-matcher": "^1.1.3" + } + }, "node_modules/fast-xml-parser": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.7.tgz", - "integrity": "sha512-JzVLro9NQv92pOM/jTCR6mHlJh2FGwtomH8ZQjhFj/R29P2Fnj38OgPJVtcvYw6SuKClhgYuwUZf5b3rd8u2mA==", + "version": "5.5.7", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.5.7.tgz", + "integrity": "sha512-LteOsISQ2GEiDHZch6L9hB0+MLoYVLToR7xotrzU0opCICBkxOPgHAy1HxAvtxfJNXDJpgAsQN30mkrfpO2Prg==", "dev": true, "funding": [ { @@ -11067,7 +11073,9 @@ ], "license": "MIT", "dependencies": { - "strnum": "^2.1.2" + "fast-xml-builder": "^1.1.4", + "path-expression-matcher": "^1.1.3", + "strnum": "^2.2.0" }, "bin": { "fxparser": "src/cli/cli.js" @@ -11164,9 +11172,9 @@ } }, "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -11299,9 +11307,9 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "license": "ISC" }, "node_modules/focus-trap": { @@ -11603,45 +11611,6 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "license": "BSD-2-Clause" }, - "node_modules/glob/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz", - "integrity": "sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.2.tgz", - "integrity": "sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", @@ -11800,9 +11769,9 @@ "license": "MIT" }, "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "version": "4.7.9", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.9.tgz", + "integrity": "sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13514,19 +13483,18 @@ "license": "MIT" }, "node_modules/lint-staged": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.7.tgz", - "integrity": "sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==", + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.3.2.tgz", + "integrity": "sha512-xKqhC2AeXLwiAHXguxBjuChoTTWFC6Pees0SHPwOpwlvI3BH7ZADFPddAdN3pgo3aiKgPUx/bxE78JfUnxQnlg==", "dev": true, "license": "MIT", "dependencies": { - "commander": "^14.0.2", + "commander": "^14.0.3", "listr2": "^9.0.5", "micromatch": "^4.0.8", - "nano-spawn": "^2.0.0", - "pidtree": "^0.6.0", "string-argv": "^0.3.2", - "yaml": "^2.8.1" + "tinyexec": "^1.0.2", + "yaml": "^2.8.2" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -13539,9 +13507,9 @@ } }, "node_modules/lint-staged/node_modules/commander": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", - "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", "dev": true, "license": "MIT", "engines": { @@ -13549,9 +13517,9 @@ } }, "node_modules/lint-staged/node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "dev": true, "license": "ISC", "bin": { @@ -13952,14 +13920,14 @@ } }, "node_modules/make-asynchronous": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-asynchronous/-/make-asynchronous-1.0.1.tgz", - "integrity": "sha512-T9BPOmEOhp6SmV25SwLVcHK4E6JyG/coH3C6F1NjNXSziv/fd4GmsqMk8YR6qpPOswfaOCApSNkZv6fxoaYFcQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-asynchronous/-/make-asynchronous-1.1.0.tgz", + "integrity": "sha512-ayF7iT+44LXdxJLTrTd3TLQpFDDvPCBxXxbv+pMUSuHA5Q8zyAfwkRP6aHHwNVFBUFWtxAHqwNJxF8vMZLAbVg==", "license": "MIT", "dependencies": { "p-event": "^6.0.0", "type-fest": "^4.6.0", - "web-worker": "1.2.0" + "web-worker": "^1.5.0" }, "engines": { "node": ">=18" @@ -16396,15 +16364,19 @@ "license": "ISC" }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "*" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { @@ -16517,19 +16489,6 @@ "multicast-dns": "cli.js" } }, - "node_modules/nano-spawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz", - "integrity": "sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" - } - }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -16631,9 +16590,9 @@ } }, "node_modules/node-forge": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.2.tgz", - "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" @@ -16736,9 +16695,9 @@ } }, "node_modules/null-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -16969,14 +16928,14 @@ } }, "node_modules/openapi-sampler": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.7.0.tgz", - "integrity": "sha512-fWq32F5vqGpgRJYIarC/9Y1wC9tKnRDcCOjsDJ7MIcSv2HsE7kNifcXIZ8FVtNStBUWxYrEk/MKqVF0SwZ5gog==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.7.1.tgz", + "integrity": "sha512-pKFRROcYyxRt9GIn0NmS+GkWPS19l0CLQRYAnHk4m1Qp+G43ssVNcfRMs1sLkGrVMuFWO4P4F6YMXeXnfyFGuQ==", "dev": true, "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.7", - "fast-xml-parser": "^5.3.4", + "fast-xml-parser": "^5.3.8", "json-pointer": "0.6.2" } }, @@ -17304,6 +17263,22 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, + "node_modules/path-expression-matcher": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.1.3.tgz", + "integrity": "sha512-qdVgY8KXmVdJZRSS1JdEPOKPdTiEK/pi0RkcT2sw1RhXxohdujUlJFPuS1TSkevZ9vzd3ZlL7ULl1MHGTApKzQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", @@ -17390,9 +17365,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "license": "MIT", "engines": { "node": ">=8.6" @@ -17401,19 +17376,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/pkg-dir": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", @@ -19245,6 +19207,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" @@ -19696,9 +19659,9 @@ "license": "MIT" }, "node_modules/redoc/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "dev": true, "license": "ISC", "dependencies": { @@ -20444,10 +20407,13 @@ "license": "MIT" }, "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "license": "ISC" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz", + "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } }, "node_modules/scheduler": { "version": "0.27.0", @@ -20597,29 +20563,51 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.4.tgz", + "integrity": "sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==", "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" + "engines": { + "node": ">=20.0.0" } }, "node_modules/serve-handler": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", - "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.7.tgz", + "integrity": "sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg==", "license": "MIT", "dependencies": { "bytes": "3.0.0", "content-disposition": "0.5.2", "mime-types": "2.1.18", - "minimatch": "3.1.2", + "minimatch": "3.1.5", "path-is-inside": "1.0.2", "path-to-regexp": "3.3.0", "range-parser": "1.2.0" } }, + "node_modules/serve-handler/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/serve-handler/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/serve-handler/node_modules/path-to-regexp": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", @@ -21386,9 +21374,9 @@ } }, "node_modules/strnum": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.2.tgz", - "integrity": "sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.1.tgz", + "integrity": "sha512-BwRvNd5/QoAtyW1na1y1LsJGQNvRlkde6Q/ipqqEaivoMdV+B1OMOTVdwR+N/cwVUcIt9PYyHmV8HyexCZSupg==", "dev": true, "funding": [ { @@ -21556,18 +21544,18 @@ "license": "MIT" }, "node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.3.tgz", + "integrity": "sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==", "license": "MIT", "dependencies": { - "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^5.1.0", "css-tree": "^2.3.1", "css-what": "^6.1.0", "csso": "^5.0.5", - "picocolors": "^1.0.0" + "picocolors": "^1.0.0", + "sax": "^1.5.0" }, "bin": { "svgo": "bin/svgo" @@ -21699,15 +21687,14 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.16", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz", + "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==", "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "engines": { @@ -21828,6 +21815,16 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", "license": "MIT" }, + "node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/tinypool": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", @@ -22060,9 +22057,9 @@ } }, "node_modules/undici": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", - "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz", + "integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==", "dev": true, "license": "MIT", "engines": { @@ -22076,9 +22073,9 @@ "license": "MIT" }, "node_modules/unhead": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/unhead/-/unhead-2.1.4.tgz", - "integrity": "sha512-+5091sJqtNNmgfQ07zJOgUnMIMKzVKAWjeMlSrTdSGPB6JSozhpjUKuMfWEoLxlMAfhIvgOU8Me0XJvmMA/0fA==", + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/unhead/-/unhead-2.1.12.tgz", + "integrity": "sha512-iTHdWD9ztTunOErtfUFk6Wr11BxvzumcYJ0CzaSCBUOEtg+DUZ9+gnE99i8QkLFT2q1rZD48BYYGXpOZVDLYkA==", "license": "MIT", "dependencies": { "hookable": "^6.0.1" @@ -22424,9 +22421,9 @@ } }, "node_modules/url-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -22718,9 +22715,9 @@ } }, "node_modules/web-worker": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.2.0.tgz", - "integrity": "sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", + "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", "license": "Apache-2.0" }, "node_modules/webidl-conversions": { @@ -23342,9 +23339,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", "dev": true, "license": "ISC", "engines": { diff --git a/package.json b/package.json index 91eb625..31c890a 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,8 @@ "@docusaurus/core": "3.9.2", "@docusaurus/preset-classic": "3.9.2", "@mdx-js/react": "3.1.1", - "@scalar/api-reference": "1.44.25", - "@scalar/docusaurus": "0.7.40", + "@scalar/api-reference": "1.46.4", + "@scalar/docusaurus": "0.7.44", "@signalwire/docusaurus-plugin-llms-txt": "2.0.0-alpha.7", "@signalwire/docusaurus-theme-llms-txt": "1.0.0-alpha.9", "clsx": "2.1.1", @@ -41,11 +41,11 @@ "@docusaurus/module-type-aliases": "3.9.2", "@docusaurus/tsconfig": "3.9.2", "@docusaurus/types": "3.9.2", - "@redocly/cli": "2.19.2", - "@types/node": "25.3.0", + "@redocly/cli": "2.20.3", + "@types/node": "25.3.3", "concurrently": "9.2.1", "husky": "9.1.7", - "lint-staged": "16.2.7", + "lint-staged": "16.3.2", "prettier": "3.8.1", "typescript": "5.9.3" }, @@ -64,6 +64,9 @@ "engines": { "node": ">=20.0" }, + "overrides": { + "serialize-javascript": ">=7.0.3" + }, "lint-staged": { "*.{js,jsx,ts,tsx,json,css,md,yaml,yml}": "prettier --write" } diff --git a/sidebars.ts b/sidebars.ts index 0d028ba..3ecb833 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -59,8 +59,11 @@ const sidebars: SidebarsConfig = { { type: "category", label: "Recipes", - link: { type: "doc", id: "recipes/fetch-bookings-periodically" }, - items: [], + link: { type: "doc", id: "recipes/recipes-index" }, + items: [ + "recipes/fetch-bookings-periodically", + "recipes/dynamic-co-host-selection", + ], }, { type: "doc", diff --git a/static/booking-calendars-api.json b/static/booking-calendars-api.json index 7bdfe81..444de6b 100644 --- a/static/booking-calendars-api.json +++ b/static/booking-calendars-api.json @@ -585,6 +585,183 @@ "deprecated": false } }, + "/bookings/{id}/reassign": { + "post": { + "tags": [ + "Bookings" + ], + "summary": "Reassign a booking", + "description": "Reassign a booking to a new host by ID", + "operationId": "reassign-booking", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the booking", + "schema": { + "type": "string" + }, + "required": true + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_host": { + "type": "string", + "description": "The OnceHub user ID for the new host. The user must belong to the same account, hold an active seat license, and cannot be the current host of the booking." + }, + "location": { + "type": "object", + "description": "Optional. The virtual location for the reassigned booking. If omitted, the system automatically assigns a location based on the new host's defaults.", + "properties": { + "type": { + "type": "string", + "enum": [ + "virtual" + ], + "description": "Must be virtual." + }, + "value": { + "type": "string", + "description": "The virtual conferencing service (e.g. google_meet, microsoft_teams, webex, gotomeeting, zoom)." + } + }, + "required": [ + "type", + "value" + ] + } + }, + "required": [ + "new_host" + ] + } + } + } + }, + "responses": { + "200": { + "description": "200", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Booking" + } + } + } + }, + "400": { + "description": "400", + "content": { + "application/json": { + "examples": { + "InvalidLocationType": { + "value": { + "type": "invalid_request_error", + "message": "location.type must be 'virtual'", + "param": "location.type" + } + } + }, + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "description": "404", + "content": { + "application/json": { + "examples": { + "BookingNotFound": { + "value": { + "type": "invalid_request_error", + "message": "No such booking: '123'", + "param": "id" + } + }, + "UserNotFound": { + "value": { + "type": "invalid_request_error", + "message": "No such user: 'USR-XXXXXXXXXX'", + "param": "new_host" + } + } + }, + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "422": { + "description": "422", + "content": { + "application/json": { + "examples": { + "UserInactive": { + "value": { + "type": "invalid_request_error", + "message": "User is inactive.", + "param": "new_host" + } + }, + "PlanRestriction": { + "value": { + "type": "invalid_request_error", + "message": "Reassign is available on the Route plan and above." + } + }, + "SameHost": { + "value": { + "type": "invalid_request_error", + "message": "Booking cannot be reassigned to the same host.", + "param": "new_host" + } + }, + "BookingsStatus": { + "value": { + "type": "invalid_request_error", + "message": "Booking cannot be reassigned in its current status.", + "param": "id" + } + }, + "InvalidLocation": { + "value": { + "type": "invalid_request_error", + "message": "Invalid location: 'Webex' is not connected for this user. Connected video conferencing options: google_meet, microsoft_teams.", + "param": "location.value" + } + }, + "HostSeat": { + "value": { + "type": "invalid_request_error", + "message": "Cannot reassign booking: The new host requires an assigned seat." + } + } + }, + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + } + }, + "deprecated": false + } + }, "/bookings/{id}/no-show": { "post": { "tags": [ diff --git a/static/booking-calendars-api.yaml b/static/booking-calendars-api.yaml index cfeb43e..63b218d 100644 --- a/static/booking-calendars-api.yaml +++ b/static/booking-calendars-api.yaml @@ -404,6 +404,123 @@ paths: '429': $ref: '#/components/responses/TooManyRequests' deprecated: false + /bookings/{id}/reassign: + post: + tags: + - Bookings + summary: Reassign a booking + description: Reassign a booking to a new host by ID + operationId: reassign-booking + parameters: + - name: id + in: path + description: ID of the booking + schema: + type: string + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + new_host: + type: string + description: The OnceHub user ID for the new host. The user must belong to the same account, hold an active seat license, and cannot be the current host of the booking. + location: + type: object + description: Optional. The virtual location for the reassigned booking. If omitted, the system automatically assigns a location based on the new host's defaults. + properties: + type: + type: string + enum: + - virtual + description: Must be virtual. + value: + type: string + description: The virtual conferencing service (e.g. google_meet, microsoft_teams, webex, gotomeeting, zoom). + required: + - type + - value + required: + - new_host + responses: + '200': + description: '200' + content: + application/json: + schema: + $ref: '#/components/schemas/Booking' + '400': + description: '400' + content: + application/json: + examples: + InvalidLocationType: + value: + type: invalid_request_error + message: location.type must be 'virtual' + param: location.type + schema: + $ref: '#/components/schemas/Error' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: '404' + content: + application/json: + examples: + BookingNotFound: + value: + type: invalid_request_error + message: 'No such booking: ''123''' + param: id + UserNotFound: + value: + type: invalid_request_error + message: 'No such user: ''USR-XXXXXXXXXX''' + param: new_host + schema: + $ref: '#/components/schemas/Error' + '422': + description: '422' + content: + application/json: + examples: + UserInactive: + value: + type: invalid_request_error + message: User is inactive. + param: new_host + PlanRestriction: + value: + type: invalid_request_error + message: Reassign is available on the Route plan and above. + SameHost: + value: + type: invalid_request_error + message: Booking cannot be reassigned to the same host. + param: new_host + BookingsStatus: + value: + type: invalid_request_error + message: Booking cannot be reassigned in its current status. + param: id + InvalidLocation: + value: + type: invalid_request_error + message: 'Invalid location: ''Webex'' is not connected for this user. Connected video conferencing options: google_meet, microsoft_teams.' + param: location.value + HostSeat: + value: + type: invalid_request_error + message: 'Cannot reassign booking: The new host requires an assigned seat.' + schema: + $ref: '#/components/schemas/Error' + '429': + $ref: '#/components/responses/TooManyRequests' + deprecated: false /bookings/{id}/no-show: post: tags: diff --git a/static/booking-pages-api.json b/static/booking-pages-api.json index e9586ce..44dda9d 100644 --- a/static/booking-pages-api.json +++ b/static/booking-pages-api.json @@ -593,6 +593,183 @@ "deprecated": false } }, + "/bookings/{id}/reassign": { + "post": { + "tags": [ + "Bookings" + ], + "summary": "Reassign a booking", + "description": "Reassign a booking to a new host by ID", + "operationId": "reassign-booking", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the booking", + "schema": { + "type": "string" + }, + "required": true + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_host": { + "type": "string", + "description": "The OnceHub user ID for the new host. The user must belong to the same account, hold an active seat license, and cannot be the current host of the booking." + }, + "location": { + "type": "object", + "description": "Optional. The virtual location for the reassigned booking. If omitted, the system automatically assigns a location based on the new host's defaults.", + "properties": { + "type": { + "type": "string", + "enum": [ + "virtual" + ], + "description": "Must be virtual." + }, + "value": { + "type": "string", + "description": "The virtual conferencing service (e.g. google_meet, microsoft_teams, webex, gotomeeting, zoom)." + } + }, + "required": [ + "type", + "value" + ] + } + }, + "required": [ + "new_host" + ] + } + } + } + }, + "responses": { + "200": { + "description": "200", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Booking" + } + } + } + }, + "400": { + "description": "400", + "content": { + "application/json": { + "examples": { + "InvalidLocationType": { + "value": { + "type": "invalid_request_error", + "message": "location.type must be 'virtual'", + "param": "location.type" + } + } + }, + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "description": "404", + "content": { + "application/json": { + "examples": { + "BookingNotFound": { + "value": { + "type": "invalid_request_error", + "message": "No such booking: '123'", + "param": "id" + } + }, + "UserNotFound": { + "value": { + "type": "invalid_request_error", + "message": "No such user: 'USR-XXXXXXXXXX'", + "param": "new_host" + } + } + }, + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "422": { + "description": "422", + "content": { + "application/json": { + "examples": { + "UserInactive": { + "value": { + "type": "invalid_request_error", + "message": "User is inactive.", + "param": "new_host" + } + }, + "PlanRestriction": { + "value": { + "type": "invalid_request_error", + "message": "Reassign is available on the Route plan and above." + } + }, + "SameHost": { + "value": { + "type": "invalid_request_error", + "message": "Booking cannot be reassigned to the same host.", + "param": "new_host" + } + }, + "BookingsStatus": { + "value": { + "type": "invalid_request_error", + "message": "Booking cannot be reassigned in its current status.", + "param": "id" + } + }, + "InvalidLocation": { + "value": { + "type": "invalid_request_error", + "message": "Invalid location: 'Webex' is not connected for this user. Connected video conferencing options: google_meet, microsoft_teams.", + "param": "location.value" + } + }, + "HostSeat": { + "value": { + "type": "invalid_request_error", + "message": "Cannot reassign booking: The new host requires an assigned seat." + } + } + }, + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + } + }, + "deprecated": false + } + }, "/bookings/{id}/no-show": { "post": { "tags": [ diff --git a/static/booking-pages-api.yaml b/static/booking-pages-api.yaml index 8c24bbf..3a3ced1 100644 --- a/static/booking-pages-api.yaml +++ b/static/booking-pages-api.yaml @@ -413,6 +413,123 @@ paths: '429': $ref: '#/components/responses/TooManyRequests' deprecated: false + /bookings/{id}/reassign: + post: + tags: + - Bookings + summary: Reassign a booking + description: Reassign a booking to a new host by ID + operationId: reassign-booking + parameters: + - name: id + in: path + description: ID of the booking + schema: + type: string + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + new_host: + type: string + description: The OnceHub user ID for the new host. The user must belong to the same account, hold an active seat license, and cannot be the current host of the booking. + location: + type: object + description: Optional. The virtual location for the reassigned booking. If omitted, the system automatically assigns a location based on the new host's defaults. + properties: + type: + type: string + enum: + - virtual + description: Must be virtual. + value: + type: string + description: The virtual conferencing service (e.g. google_meet, microsoft_teams, webex, gotomeeting, zoom). + required: + - type + - value + required: + - new_host + responses: + '200': + description: '200' + content: + application/json: + schema: + $ref: '#/components/schemas/Booking' + '400': + description: '400' + content: + application/json: + examples: + InvalidLocationType: + value: + type: invalid_request_error + message: location.type must be 'virtual' + param: location.type + schema: + $ref: '#/components/schemas/Error' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: '404' + content: + application/json: + examples: + BookingNotFound: + value: + type: invalid_request_error + message: 'No such booking: ''123''' + param: id + UserNotFound: + value: + type: invalid_request_error + message: 'No such user: ''USR-XXXXXXXXXX''' + param: new_host + schema: + $ref: '#/components/schemas/Error' + '422': + description: '422' + content: + application/json: + examples: + UserInactive: + value: + type: invalid_request_error + message: User is inactive. + param: new_host + PlanRestriction: + value: + type: invalid_request_error + message: Reassign is available on the Route plan and above. + SameHost: + value: + type: invalid_request_error + message: Booking cannot be reassigned to the same host. + param: new_host + BookingsStatus: + value: + type: invalid_request_error + message: Booking cannot be reassigned in its current status. + param: id + InvalidLocation: + value: + type: invalid_request_error + message: 'Invalid location: ''Webex'' is not connected for this user. Connected video conferencing options: google_meet, microsoft_teams.' + param: location.value + HostSeat: + value: + type: invalid_request_error + message: 'Cannot reassign booking: The new host requires an assigned seat.' + schema: + $ref: '#/components/schemas/Error' + '429': + $ref: '#/components/responses/TooManyRequests' + deprecated: false /bookings/{id}/no-show: post: tags: diff --git a/static/oncehub-api.json b/static/oncehub-api.json index 04b63b7..1888164 100644 --- a/static/oncehub-api.json +++ b/static/oncehub-api.json @@ -597,6 +597,183 @@ "deprecated": false } }, + "/bookings/{id}/reassign": { + "post": { + "tags": [ + "Bookings" + ], + "summary": "Reassign a booking", + "description": "Reassign a booking to a new host by ID", + "operationId": "reassign-booking", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the booking", + "schema": { + "type": "string" + }, + "required": true + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "new_host": { + "type": "string", + "description": "The OnceHub user ID for the new host. The user must belong to the same account, hold an active seat license, and cannot be the current host of the booking." + }, + "location": { + "type": "object", + "description": "Optional. The virtual location for the reassigned booking. If omitted, the system automatically assigns a location based on the new host's defaults.", + "properties": { + "type": { + "type": "string", + "enum": [ + "virtual" + ], + "description": "Must be virtual." + }, + "value": { + "type": "string", + "description": "The virtual conferencing service (e.g. google_meet, microsoft_teams, webex, gotomeeting, zoom)." + } + }, + "required": [ + "type", + "value" + ] + } + }, + "required": [ + "new_host" + ] + } + } + } + }, + "responses": { + "200": { + "description": "200", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Booking" + } + } + } + }, + "400": { + "description": "400", + "content": { + "application/json": { + "examples": { + "InvalidLocationType": { + "value": { + "type": "invalid_request_error", + "message": "location.type must be 'virtual'", + "param": "location.type" + } + } + }, + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "404": { + "description": "404", + "content": { + "application/json": { + "examples": { + "BookingNotFound": { + "value": { + "type": "invalid_request_error", + "message": "No such booking: '123'", + "param": "id" + } + }, + "UserNotFound": { + "value": { + "type": "invalid_request_error", + "message": "No such user: 'USR-XXXXXXXXXX'", + "param": "new_host" + } + } + }, + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "422": { + "description": "422", + "content": { + "application/json": { + "examples": { + "UserInactive": { + "value": { + "type": "invalid_request_error", + "message": "User is inactive.", + "param": "new_host" + } + }, + "PlanRestriction": { + "value": { + "type": "invalid_request_error", + "message": "Reassign is available on the Route plan and above." + } + }, + "SameHost": { + "value": { + "type": "invalid_request_error", + "message": "Booking cannot be reassigned to the same host.", + "param": "new_host" + } + }, + "BookingsStatus": { + "value": { + "type": "invalid_request_error", + "message": "Booking cannot be reassigned in its current status.", + "param": "id" + } + }, + "InvalidLocation": { + "value": { + "type": "invalid_request_error", + "message": "Invalid location: 'Webex' is not connected for this user. Connected video conferencing options: google_meet, microsoft_teams.", + "param": "location.value" + } + }, + "HostSeat": { + "value": { + "type": "invalid_request_error", + "message": "Cannot reassign booking: The new host requires an assigned seat." + } + } + }, + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + } + }, + "deprecated": false + } + }, "/bookings/{id}/no-show": { "post": { "tags": [ diff --git a/static/oncehub-api.yaml b/static/oncehub-api.yaml index 24dc408..9412f4d 100644 --- a/static/oncehub-api.yaml +++ b/static/oncehub-api.yaml @@ -417,6 +417,123 @@ paths: '429': $ref: '#/components/responses/TooManyRequests' deprecated: false + /bookings/{id}/reassign: + post: + tags: + - Bookings + summary: Reassign a booking + description: Reassign a booking to a new host by ID + operationId: reassign-booking + parameters: + - name: id + in: path + description: ID of the booking + schema: + type: string + required: true + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + new_host: + type: string + description: The OnceHub user ID for the new host. The user must belong to the same account, hold an active seat license, and cannot be the current host of the booking. + location: + type: object + description: Optional. The virtual location for the reassigned booking. If omitted, the system automatically assigns a location based on the new host's defaults. + properties: + type: + type: string + enum: + - virtual + description: Must be virtual. + value: + type: string + description: The virtual conferencing service (e.g. google_meet, microsoft_teams, webex, gotomeeting, zoom). + required: + - type + - value + required: + - new_host + responses: + '200': + description: '200' + content: + application/json: + schema: + $ref: '#/components/schemas/Booking' + '400': + description: '400' + content: + application/json: + examples: + InvalidLocationType: + value: + type: invalid_request_error + message: location.type must be 'virtual' + param: location.type + schema: + $ref: '#/components/schemas/Error' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + description: '404' + content: + application/json: + examples: + BookingNotFound: + value: + type: invalid_request_error + message: 'No such booking: ''123''' + param: id + UserNotFound: + value: + type: invalid_request_error + message: 'No such user: ''USR-XXXXXXXXXX''' + param: new_host + schema: + $ref: '#/components/schemas/Error' + '422': + description: '422' + content: + application/json: + examples: + UserInactive: + value: + type: invalid_request_error + message: User is inactive. + param: new_host + PlanRestriction: + value: + type: invalid_request_error + message: Reassign is available on the Route plan and above. + SameHost: + value: + type: invalid_request_error + message: Booking cannot be reassigned to the same host. + param: new_host + BookingsStatus: + value: + type: invalid_request_error + message: Booking cannot be reassigned in its current status. + param: id + InvalidLocation: + value: + type: invalid_request_error + message: 'Invalid location: ''Webex'' is not connected for this user. Connected video conferencing options: google_meet, microsoft_teams.' + param: location.value + HostSeat: + value: + type: invalid_request_error + message: 'Cannot reassign booking: The new host requires an assigned seat.' + schema: + $ref: '#/components/schemas/Error' + '429': + $ref: '#/components/responses/TooManyRequests' + deprecated: false /bookings/{id}/no-show: post: tags: