From 7b74c931fa0ac319c922a271c3f6fd630db86604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20D=C3=A9niz?= Date: Thu, 17 Sep 2026 16:12:31 +0100 Subject: [PATCH] Add Moodle Marketplace API documentation Co-Authored-By: Claude Sonnet 5.5 --- .github/workflows/update-marketplace-api.yml | 55 + .gitignore | 5 + .markdownlint-cli2.cjs | 4 + data/marketplace/openapi.json | 669 +++++++ docusaurus.config.js | 54 +- .../marketplace-api/_category_.yml | 9 + .../moodlemarketplaceapi.md | 232 --- .../pluginsdirectory/api.md | 2 +- package.json | 10 +- scripts/marketplace-openapi.mjs | 143 ++ src/theme/ApiExplorer/Request/index.js | 42 + src/theme/DocItem/index.js | 48 + static/_redirects | 4 + yarn.lock | 1603 ++++++++++++++++- 14 files changed, 2615 insertions(+), 265 deletions(-) create mode 100644 .github/workflows/update-marketplace-api.yml create mode 100644 data/marketplace/openapi.json create mode 100644 general/community/plugincontribution/marketplace-api/_category_.yml delete mode 100644 general/community/plugincontribution/moodlemarketplaceapi.md create mode 100755 scripts/marketplace-openapi.mjs create mode 100644 src/theme/ApiExplorer/Request/index.js create mode 100644 src/theme/DocItem/index.js diff --git a/.github/workflows/update-marketplace-api.yml b/.github/workflows/update-marketplace-api.yml new file mode 100644 index 0000000000..98a3397bc1 --- /dev/null +++ b/.github/workflows/update-marketplace-api.yml @@ -0,0 +1,55 @@ +name: "Scheduled - Update Moodle Marketplace API spec" + +on: + # Run on cron, every day at 6:00am UTC. + schedule: + - cron: '0 6 * * *' + + # Run on request. + workflow_dispatch: + +jobs: + run: + # Only run on the canonical repository. + if: github.repository == 'moodle/devdocs' + + name: Fetch the Moodle Marketplace OpenAPI spec + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + steps: + - name: Checkout DevDocs repo + uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: yarn + + - name: Install dependencies + run: yarn install --immutable + + - name: Fetch the spec + run: | + yarn openapi-fetch + + # Pull requests opened with the default token don't trigger other workflows, so + # check here that the reference can still be generated from the new spec. + - name: Generate the API reference + run: | + yarn openapi + + - name: Create Pull Request + uses: peter-evans/create-pull-request@38e0b6e68b4c852a5500a94740f0e535e0d7ba54 # v4.2.4 + with: + add-paths: | + data/marketplace/openapi.json + + # Dedicated branch: the default (create-pull-request/patch) is shared with + # update-moodle-metadata.yml, and the two jobs would overwrite each other's PRs. + branch: create-pull-request/marketplace-api-spec + commit-message: "[repo] Update Moodle Marketplace API spec" + title: "[repo] Update Moodle Marketplace API spec" + signoff: false + delete-branch: true diff --git a/.gitignore b/.gitignore index 57482cbe75..c7e2add928 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,11 @@ # Generated files .docusaurus .cache-loader +# Marketplace OpenAPI spec fetched by scripts/marketplace-openapi.mjs and the reference +# docusaurus-plugin-openapi-docs generates from it (see the `openapi` script in package.json) +/.openapi +/general/community/plugincontribution/marketplace-api/* +!/general/community/plugincontribution/marketplace-api/_category_.yml # Misc .DS_Store diff --git a/.markdownlint-cli2.cjs b/.markdownlint-cli2.cjs index 264f5451d4..16d236146a 100644 --- a/.markdownlint-cli2.cjs +++ b/.markdownlint-cli2.cjs @@ -266,6 +266,10 @@ config.renamedLinks = { module.exports = { config, + // Generated from the Marketplace OpenAPI spec at build time; not hand-written Markdown. + ignores: [ + 'general/community/plugincontribution/marketplace-api/**', + ], customRules: [ path.join(__dirname, '.markdownlint/no-directional-quotation-marks'), path.join(__dirname, '.markdownlint/fix-migrated-links'), diff --git a/data/marketplace/openapi.json b/data/marketplace/openapi.json new file mode 100644 index 0000000000..fe0095a2dd --- /dev/null +++ b/data/marketplace/openapi.json @@ -0,0 +1,669 @@ +{ + "openapi": "3.1.0", + "info": { + "title": "Moodle Marketplace API", + "description": "Programmatic access to the Moodle Marketplace: browse the plugin catalogue and submit new\nversions of the plugins you maintain.\n\n## Authenticating\n\nEvery request needs a bearer token. Create one from your account's\n[security settings](/account/security), under **API tokens**.\n\n> The raw token is shown **once**, in a dialog that stops offering it after 60 seconds. It is\n> stored hashed and cannot be retrieved later, only replaced. You may hold up to **10 active\n> tokens**; past that, revoke one before creating another.\n\nSend it on every call:\n\n```\nAuthorization: Bearer YOUR_TOKEN\n```\n\nTo try the endpoints from this page, click **Authorize** above and paste the raw token — with\nno `Bearer ` prefix, Swagger adds it for you.\n\nA missing, malformed, expired or revoked token gives `401`. Tokens act as you: an endpoint\nreturns exactly what your user account is allowed to see or do.\n\n## Responses\n\nEverything is plain JSON (`application/json`). Collections are **bare JSON arrays**.\n\nThere is **no pagination**: a collection returns everything you are allowed to see in one\nresponse.\n\n## Errors\n\nFailures answer with the appropriate status code and an\n[RFC 9457](https://www.rfc-editor.org/rfc/rfc9457) `application/problem+json` body. There is no\nsuccess flag to check in the body — the status code is the answer.\n\n```json\n{\n \"status\": 422,\n \"title\": \"An error occurred\",\n \"detail\": \"file: The archive does not contain a valid version.php.\",\n \"violations\": [\n { \"propertyPath\": \"file\", \"message\": \"The archive does not contain a valid version.php.\" }\n ]\n}\n```\n\n| Status | Meaning |\n| --- | --- |\n| `400` Bad request | The request itself was malformed. |\n| `401` Unauthorized | No token, or the token is not valid. |\n| `403` Forbidden | Authenticated, but not allowed to see or change this resource. |\n| `404` Not found | No such resource. |\n| `406` Not acceptable | You asked for a media type this API does not serve. |\n| `409` Conflict | The resource is in a state that does not allow this operation. |\n| `422` Unprocessable Content | The request was well formed but its contents were rejected. See `violations`. |\n\n`violations` lists one entry per problem, each with the offending `propertyPath` and a\nhuman-readable `message`. Show those to the user; do not parse the messages.\n\n## Stability\n\nThis is version 1 of a young API and it will grow. **New fields may be added to any response\nwithout notice**, so parse defensively and ignore what you do not recognise. Fields will not be\nremoved or change meaning within `v1`.", + "version": "1.0.0" + }, + "servers": [ + { + "url": "/", + "description": "" + } + ], + "paths": { + "/api/plugins/purchases": { + "get": { + "operationId": "listPurchasedPlugins", + "tags": [ + "Plugins purchased" + ], + "responses": { + "200": { + "description": "Plugin collection", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Plugin" + } + } + } + } + }, + "401": { + "description": "Missing or invalid token." + } + }, + "summary": "List of purchased plugins by the currently authenticated user.", + "description": "List of purchased plugins by the currently authenticated user.", + "parameters": [] + } + }, + "/api/plugins/{frankenStyle}/versions": { + "post": { + "operationId": "addPluginVersion", + "tags": [ + "Version" + ], + "responses": { + "201": { + "description": "The plugin version was submitted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VersionCreate" + } + } + }, + "links": {} + }, + "400": { + "description": "Invalid input", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + }, + "links": {} + }, + "401": { + "description": "Missing or invalid token." + }, + "403": { + "description": "You do not have permission to maintain this plugin." + }, + "404": { + "description": "No plugin with that frankenStyle exists." + }, + "409": { + "description": "The plugin state does not accept new versions." + }, + "422": { + "description": "The archive was rejected, or the request named no usable source for it. See \"violations\".", + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ConstraintViolation" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConstraintViolation" + } + } + }, + "links": {} + } + }, + "summary": "Adds a new version release of a plugin", + "description": "Submits a new version of a plugin you have permission to maintain, as `multipart/form-data`.\n\nGive the archive **exactly one** way: upload it in `file`, or point at it over HTTPS in `fileUrl`. Sending both, or neither, is a 422.\n\nThe build number, release name, maturity and supported Moodle versions are read out of the archive's `version.php` — do not send them, they cannot be overridden. The remaining fields are optional and are the only things the archive cannot tell us.\n\nOn success you get **201** with the created version. Its `status` normally reads `in_testing` rather than `uploaded`: submitting a version queues it for automated pre-check straight away, so `uploaded` is never observable. Do not poll for it.\n\nA rejected archive answers **422** with one entry per problem under `violations`. The same shape covers a bad URL, an unreachable one, and an archive over the size limit.", + "parameters": [ + { + "name": "frankenStyle", + "in": "path", + "description": "Component name of the plugin in its full frankenstyle format.", + "required": true, + "deprecated": false, + "schema": { + "type": "string" + }, + "style": "simple", + "explode": false + } + ], + "requestBody": { + "description": "The new VersionCreate resource", + "content": { + "multipart/form-data": { + "schema": { + "$ref": "#/components/schemas/VersionCreate.VersionCreateInput.multipart" + } + } + }, + "required": true + } + } + } + }, + "components": { + "schemas": { + "ConstraintViolation": { + "type": "object", + "description": "Unprocessable entity", + "properties": { + "status": { + "default": 422, + "type": "integer" + }, + "violations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "propertyPath": { + "type": "string", + "description": "The property path of the violation" + }, + "message": { + "type": "string", + "description": "The message associated with the violation" + }, + "code": { + "type": "string", + "description": "The code of the violation" + }, + "hint": { + "type": "string", + "description": "An extra hint to understand the violation" + }, + "payload": { + "type": "object", + "additionalProperties": true, + "description": "The serialized payload of the violation" + } + }, + "required": [ + "propertyPath", + "message" + ] + } + }, + "detail": { + "readOnly": true, + "type": "string" + }, + "type": { + "readOnly": true, + "type": "string" + }, + "title": { + "readOnly": true, + "type": [ + "string", + "null" + ] + }, + "instance": { + "readOnly": true, + "type": [ + "string", + "null" + ] + } + } + }, + "Error": { + "type": "object", + "description": "A representation of common errors.", + "properties": { + "title": { + "readOnly": true, + "description": "A short, human-readable summary of the problem.", + "type": [ + "string", + "null" + ] + }, + "detail": { + "readOnly": true, + "description": "A human-readable explanation specific to this occurrence of the problem.", + "type": [ + "string", + "null" + ] + }, + "status": { + "type": [ + "integer", + "null" + ], + "examples": [ + 404 + ], + "default": 400 + }, + "instance": { + "readOnly": true, + "description": "A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.", + "type": [ + "string", + "null" + ] + }, + "type": { + "readOnly": true, + "description": "A URI reference that identifies the problem type", + "type": "string" + } + } + }, + "Plugin": { + "type": "object", + "description": "A Moodle plugin submitted to the Marketplace.", + "properties": { + "frankenStyle": { + "description": "Component name of the plugin in its full frankenstyle format. Unique across the Marketplace.", + "example": "mod_quiz", + "type": "string" + }, + "name": { + "description": "The name of the plugin.", + "example": "Quiz", + "type": "string" + }, + "status": { + "description": "The status of the plugin.", + "example": "published", + "type": [ + "string", + "null" + ] + }, + "publishedAt": { + "description": "The date and time when the plugin was published.", + "example": "2024-06-01T12:00:00Z", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "versions": { + "description": "The versions of the plugin.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Version" + } + }, + "purchase": { + "description": "The purchase of the plugin.", + "anyOf": [ + { + "$ref": "#/components/schemas/Purchase" + }, + { + "type": "null" + } + ] + } + } + }, + "Purchase": { + "type": "object", + "description": "Purchase object.", + "properties": { + "id": { + "description": "The unique identifier of the purchase.", + "type": "integer" + }, + "purchaseDate": { + "description": "The date and time when the purchase was made.", + "type": "string", + "format": "date-time" + }, + "amountPaid": { + "description": "The amount paid for the purchase.", + "example": "100", + "type": "number" + }, + "currency": { + "description": "The currency used for the purchase.", + "example": "USD", + "type": "string" + }, + "isRecurring": { + "description": "Whether the purchase is recurring.", + "example": true, + "type": "boolean" + }, + "recurringInterval": { + "description": "The interval of the recurring purchase (e.g., month, year).", + "example": "month", + "type": [ + "string", + "null" + ] + }, + "provisionExpiry": { + "description": "The date and time when the provision expires.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "description": "The status of the purchase.", + "example": "complete", + "type": "string" + }, + "isProvisioned": { + "description": "Whether access to the plugin downloads is provisioned. When recurring payment cannot be collected, this will be false.", + "example": true, + "type": "boolean" + } + } + }, + "Version": { + "type": "object", + "description": "A released version of a plugin.", + "properties": { + "id": { + "description": "Marketplace identifier for this version.", + "example": 871, + "type": [ + "integer", + "null" + ] + }, + "version": { + "description": "The 10-digit build number declared in version.php.", + "example": "2025082100", + "type": "string" + }, + "releaseName": { + "description": "Human-readable release name, from version.php.", + "example": "1.4.0", + "type": [ + "string", + "null" + ] + }, + "maturity": { + "description": "Moodle maturity level declared by the release.", + "example": "STABLE", + "type": [ + "string", + "null" + ], + "enum": [ + "ALPHA", + "BETA", + "RC", + "STABLE" + ] + }, + "status": { + "description": "Release lifecycle state.", + "example": "ci_passed", + "type": [ + "string", + "null" + ], + "enum": [ + "uploaded", + "in_testing", + "ci_passed", + "ci_failed", + "discarded" + ] + }, + "releaseNotes": { + "description": "What changed in this release, as supplied by the maintainer.", + "example": "Fixes the grade calculation for group submissions.", + "type": [ + "string", + "null" + ] + }, + "moodleVersions": { + "description": "Moodle release names this version supports, from version.php.", + "example": [ + "4.5", + "5.0" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "vcsRepositoryUrl": { + "description": "Repository this release was built from.", + "example": "https://github.com/example/moodle-mod_quiz", + "type": [ + "string", + "null" + ] + }, + "vcsBranch": { + "description": "Branch this release was built from.", + "example": "main", + "type": [ + "string", + "null" + ] + }, + "vcsTag": { + "description": "Tag this release was built from.", + "example": "v1.4.0", + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "description": "When the version was submitted, ISO 8601.", + "example": "2025-08-21T14:03:00+00:00", + "type": [ + "string", + "null" + ], + "format": "date-time" + } + } + }, + "VersionCreate": { + "type": "object", + "description": "Adds a new version release of a plugin", + "properties": { + "id": { + "description": "Marketplace identifier for this version.", + "example": 871, + "type": [ + "integer", + "null" + ] + }, + "version": { + "description": "The 10-digit build number declared in version.php.", + "example": "2025082100", + "type": "string" + }, + "releaseName": { + "description": "Human-readable release name, from version.php.", + "example": "1.4.0", + "type": [ + "string", + "null" + ] + }, + "maturity": { + "description": "Moodle maturity level declared by the release.", + "example": "STABLE", + "type": [ + "string", + "null" + ], + "enum": [ + "ALPHA", + "BETA", + "RC", + "STABLE" + ] + }, + "status": { + "description": "Release lifecycle state.", + "example": "ci_passed", + "type": [ + "string", + "null" + ], + "enum": [ + "uploaded", + "in_testing", + "ci_passed", + "ci_failed", + "discarded" + ] + }, + "releaseNotes": { + "description": "What changed in this release, as supplied by the maintainer.", + "example": "Fixes the grade calculation for group submissions.", + "type": [ + "string", + "null" + ] + }, + "moodleVersions": { + "description": "Moodle release names this version supports, from version.php.", + "example": [ + "4.5", + "5.0" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "vcsRepositoryUrl": { + "description": "Repository this release was built from.", + "example": "https://github.com/example/moodle-mod_quiz", + "type": [ + "string", + "null" + ] + }, + "vcsBranch": { + "description": "Branch this release was built from.", + "example": "main", + "type": [ + "string", + "null" + ] + }, + "vcsTag": { + "description": "Tag this release was built from.", + "example": "v1.4.0", + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "description": "When the version was submitted, ISO 8601.", + "example": "2025-08-21T14:03:00+00:00", + "type": [ + "string", + "null" + ], + "format": "date-time" + } + } + }, + "VersionCreate.VersionCreateInput.multipart": { + "type": "object", + "description": "Adds a new version release of a plugin", + "properties": { + "file": { + "description": "The plugin zip, uploaded directly. Give this **or** `fileUrl`, not both.", + "type": [ + "string", + "null" + ], + "format": "binary" + }, + "fileUrl": { + "format": "uri", + "description": "HTTPS URL the Marketplace should download the plugin zip from. Give this **or** `file`, not both. Must be https and must resolve to a public address.", + "externalDocs": { + "url": "https://schema.org/url" + }, + "example": "https://github.com/example/moodle-mod_quiz/releases/download/v1.4.0/mod_quiz.zip", + "type": [ + "string", + "null" + ] + }, + "releaseNotes": { + "maxLength": 10000, + "description": "What changed in this release. Optional.", + "example": "Fixes the grade calculation for group submissions.", + "type": [ + "string", + "null" + ] + }, + "vcsRepositoryUrl": { + "format": "uri", + "maxLength": 255, + "description": "Repository this release was built from. Optional.", + "externalDocs": { + "url": "https://schema.org/url" + }, + "example": "https://github.com/example/moodle-mod_quiz", + "type": [ + "string", + "null" + ] + }, + "vcsBranch": { + "maxLength": 255, + "description": "Branch this release was built from. Optional.", + "example": "main", + "type": [ + "string", + "null" + ] + }, + "vcsTag": { + "maxLength": 255, + "description": "Tag this release was built from. Optional.", + "example": "v1.4.0", + "type": [ + "string", + "null" + ] + } + } + } + }, + "responses": {}, + "parameters": {}, + "examples": {}, + "requestBodies": {}, + "headers": {}, + "securitySchemes": { + "bearerAuth": { + "type": "http", + "description": "Value for the http bearer parameter.", + "scheme": "bearer", + "bearerFormat": "Opaque token" + } + } + }, + "security": [ + { + "bearerAuth": [] + } + ], + "tags": [ + { + "name": "Plugins purchased", + "description": "A Moodle plugin submitted to the Marketplace." + }, + { + "name": "Version", + "description": "A released version of a plugin." + } + ], + "webhooks": {} +} diff --git a/docusaurus.config.js b/docusaurus.config.js index eed2ee41d5..e2298dbf9c 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -89,7 +89,7 @@ const config = { }, }, - themes: ['@docusaurus/theme-mermaid'], + themes: ['@docusaurus/theme-mermaid', 'docusaurus-theme-openapi-docs'], presets: [ [ @@ -139,6 +139,29 @@ const config = { hideable: true, }, }, + // Languages offered for the code samples of the Marketplace API reference + // (docusaurus-theme-openapi-docs). The first one is shown by default. + // The PHP and Python variants left out generate samples without the multipart form fields + // (a limitation of the theme's sample generator), so only the complete ones are offered. + languageTabs: [ + { + highlight: 'php', + language: 'php', + logoClass: 'php', + variant: 'Guzzle', + variants: ['Guzzle'], + }, + { highlight: 'bash', language: 'curl', logoClass: 'curl' }, + { highlight: 'javascript', language: 'javascript', logoClass: 'javascript' }, + { highlight: 'javascript', language: 'nodejs', logoClass: 'nodejs' }, + { + highlight: 'python', + language: 'python', + logoClass: 'python', + variant: 'http.client', + variants: ['http.client'], + }, + ], }), /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ plugins: [ @@ -170,6 +193,35 @@ const config = { }, ], + // docusaurus-plugin-openapi-docs: generates reference docs for the Moodle + // Marketplace API from its OpenAPI spec, straight into the 'general' docs + // instance so they're picked up by the existing 'community' autogenerated + // sidebar like any other doc. The generated MDX relies on the components + // provided by docusaurus-theme-openapi-docs (registered in `themes` + // above); src/theme/DocItem renders the generated API pages with its + // ApiItem component and every other page as usual. + // The spec snapshot in data/ is prepared for the target environment by + // scripts/marketplace-openapi.mjs. Regenerate everything with: yarn openapi + [ + 'docusaurus-plugin-openapi-docs', + { + id: 'openapi', + docsPluginId: 'general', + config: { + marketplace: { + specPath: '.openapi/marketplace.json', + outputDir: 'general/community/plugincontribution/marketplace-api', + // The reference is read-only: this hides the send button, and + // src/theme/ApiExplorer/Request blocks the form submission. + hideSendButton: true, + sidebarOptions: { + groupPathsBy: 'tag', + }, + }, + }, + }, + ], + // This is the GA-4 tag for all Moodle properties. [ '@docusaurus/plugin-google-gtag', diff --git a/general/community/plugincontribution/marketplace-api/_category_.yml b/general/community/plugincontribution/marketplace-api/_category_.yml new file mode 100644 index 0000000000..935b66c6b9 --- /dev/null +++ b/general/community/plugincontribution/marketplace-api/_category_.yml @@ -0,0 +1,9 @@ +# The rest of this directory is generated from the Marketplace OpenAPI spec by +# docusaurus-plugin-openapi-docs (see the `openapi` script in package.json) and is +# git-ignored. This file is the only committed one: it turns the generated docs +# into a single sidebar entry that opens the API introduction page. +label: Moodle Marketplace API +position: 2 +link: + type: doc + id: moodle-marketplace-api diff --git a/general/community/plugincontribution/moodlemarketplaceapi.md b/general/community/plugincontribution/moodlemarketplaceapi.md deleted file mode 100644 index 019c7becac..0000000000 --- a/general/community/plugincontribution/moodlemarketplaceapi.md +++ /dev/null @@ -1,232 +0,0 @@ ---- -title: Moodle Marketplace API -sidebar_position: 2 -sidebar_label: Moodle Marketplace API -tags: - - Guidelines for contributors - - Plugins - - Plugin documentation - - Moodle Marketplace ---- - -Use the Moodle Marketplace API to access Moodle Marketplace data and automate tasks such as submitting new plugin versions. - -This guide explains how to authenticate with the API, submit plugin versions and automate plugin version submission from CI. - ---- - -## Contents - -- [Authentication](#authentication) -- [Conventions](#conventions) -- [Add a new plugin version](#add-a-new-plugin-version) -- [API limitations](#api-limitations) - ---- - -## Authentication - -All Moodle Marketplace API endpoints require a bearer token. - -### Create an API token - -1. Log in to Moodle Marketplace. -2. Go to **Account → Security** (https://marketplace.moodle.com/account/security). -3. Under **API tokens**, create a token. Give it a name you'll recognise and, optionally, set an expiry date. - -> **Save your token when you create it.** The token is shown only once and is available for 60 seconds. If you lose it, you'll need to revoke it and create a new one. - -You can have up to 10 active API tokens. - -Treat API tokens like passwords. A token has the same access to Moodle Marketplace as the account that created it. - -### Use an API token - -Include the token as a bearer token in the `Authorization` header: - -```text -Authorization: Bearer YOUR_TOKEN -``` - -### Troubleshoot authentication - -A missing, malformed, expired or revoked token returns a `401` response from the API rather than redirecting you to the login page. - -If you receive an unexpected `401`, check that: - -- the token has not expired or been revoked -- your HTTP client is not removing the `Authorization` header when following a redirect - ---- - -## Conventions - -### Content type - -All responses use `application/json`. - -### Dates - -Dates use ISO 8601 format with a timezone offset: - -```text -2025-08-21T14:03:00+00:00 -``` - ---- - -## Add a new plugin version - -Use this endpoint to submit a new version of a plugin you maintain: - -```text -POST https://marketplace.moodle.com/api/plugins/{frankenstyle}/versions -``` - -You must be a maintainer of the plugin. Requests use `multipart/form-data`. - -You can submit a plugin ZIP package either by uploading the file or providing a URL. - -### Upload a plugin ZIP package - -```bash -curl -s -X POST \ - -H "Authorization: Bearer $MKPL_TOKEN" \ - -F "file=@mod_quiz.zip" \ - -F "releaseNotes=Fixes the grade calculation for group submissions" \ - -F "vcsTag=v1.4.0" \ - "https://marketplace.moodle.com/api/plugins/mod_quiz/versions" -``` - -### Submit a plugin ZIP package by URL - -If the plugin ZIP package is already available online, provide its URL and Moodle Marketplace will retrieve it: - -```bash -curl -s -X POST \ - -H "Authorization: Bearer $MKPL_TOKEN" \ - -F "fileUrl=https://github.com/example/moodle-mod_quiz/releases/download/v1.4.0/mod_quiz.zip" \ - "https://marketplace.moodle.com/api/plugins/mod_quiz/versions" -``` - -The URL must use `https` and resolve to a publicly accessible address. - -### What you send, and what you must not - -Submit a plugin ZIP package using **either** `file` or `fileUrl`. If you provide both or neither, the API returns a `422` response. - -Moodle Marketplace gets the following information from the package's `version.php` file: - -- build number -- release name -- maturity -- supported Moodle versions - -You can't provide or override these values through the API. - -The following fields are optional: - -| Field | Description | -| --- | --- | -| `releaseNotes` | What changed in this release | -| `vcsRepositoryUrl` | Repository the package was built from | -| `vcsBranch` | Branch the package was built from | -| `vcsTag` | Tag the package was built from | - -### Response - -A successful submission returns a `201` response with the created version: - -```json -{ - "id": 871, - "version": "2025082100", - "releaseName": "1.4.0", - "maturity": "STABLE", - "status": "in_testing", - "moodleVersions": ["4.5", "5.0"], - "releaseNotes": "Fixes the grade calculation for group submissions", - "vcsTag": "v1.4.0", - "createdAt": "2025-08-21T14:03:00+00:00" -} -``` - -The `status` is `in_testing`, not `uploaded`. Submitting a version immediately queues it for automated prechecks, so `uploaded` is an internal status that you won't see. Do not poll for it. - -### If it fails - -| Status | Cause | -| --- | --- | -| `403` Forbidden | You don't maintain this plugin. | -| `404` Not found | No plugin exists with this frankenstyle. | -| `409` Conflict | The plugin is in a state that does not accept new versions. | -| `422` Unprocessable Content | Both `file` and `fileUrl` were provided, or neither was provided. | -| `422` Unprocessable Content | The file isn't a ZIP file or doesn't contain a valid `version.php`. | -| `422` Unprocessable Content | The build number already exists for this plugin. | -| `422` Unprocessable Content | `fileUrl` doesn't use `https`, is unreachable or doesn't resolve to a public address. | -| `422` Unprocessable Content | The plugin ZIP package exceeds the Moodle Marketplace size limit. | - -If a submission fails, no version is created. Fix the issue and submit the version again. - ---- - -### Automate plugin version submission from CI - -You can use the Moodle Marketplace API to submit a new plugin version automatically as part of a continuous integration (CI) workflow. - -:::info - -For releasing a new plugin version using GitHub Actions, follow the setup instructions at [moodlehq/moodle-plugin-release](https://github.com/moodlehq/moodle-plugin-release) - -::: - -The following example shows a basic release job: - -```bash -#!/usr/bin/env bash -set -euo pipefail - -: "${MKPL_TOKEN:?set MKPL_TOKEN}" # a secret in your CI settings, never in the repo -PLUGIN_FRANKENSTYLE="mod_quiz" -BASE=https://marketplace.moodle.com/api - -response=$(curl -sS -w '\n%{http_code}' -X POST \ - -H "Authorization: Bearer $MKPL_TOKEN" \ - -F "file=@build/mod_quiz.zip" \ - -F "releaseNotes=$(git tag -l --format='%(contents)' "$GIT_TAG")" \ - -F "vcsRepositoryUrl=$REPO_URL" \ - -F "vcsTag=$GIT_TAG" \ - "$BASE/plugins/$PLUGIN_FRANKENSTYLE/versions") - -status=$(tail -n1 <<<"$response") -body=$(sed '$d' <<<"$response") - -if [[ "$status" != "201" ]]; then - echo "Submission failed ($status):" >&2 - jq -r '.violations[]? | " \(.propertyPath): \(.message)"' <<<"$body" >&2 || echo "$body" >&2 - exit 1 -fi - -echo "Submitted version $(jq -r .version <<<"$body"), status $(jq -r .status <<<"$body")" -``` - -### Recommendations - -- **Store the token as a CI secret.** Never store it in the repository. Give the token a name that identifies the pipeline so you can revoke it independently if the pipeline is compromised. -- **Fail the job on any response other than `201`.** Print `violations` to show the reason for the failure. -- **Do not retry a `422` response.** The request will fail again without changes. Retry only `5xx` responses and connection errors. -- **Submitting is not publishing.** A `201` response means the version has been accepted for automated prechecks. - ---- - -## API limitations - -- **Editing versions:** You cannot edit a version through the API after submitting it. To correct version information, edit the version in Moodle Marketplace. -- **Plugin ZIP package size:** The same size limit applies as when uploading a plugin ZIP package through Moodle Marketplace. If the package exceeds the limit, the API returns a `422` response. -- **Remote file retrieval:** Moodle Marketplace stops trying to retrieve a file after 10 seconds or as soon as it exceeds the size limit. If the host is slow, upload the plugin ZIP package instead. - -:::tip - -Something missing or not working as expected? [Contact](https://moodle.atlassian.net/servicedesk/customer/portal/166) the Moodle Marketplace team. The API is still evolving, and your feedback can help shape future improvements. - -::: diff --git a/general/community/plugincontribution/pluginsdirectory/api.md b/general/community/plugincontribution/pluginsdirectory/api.md index 2c78dd8618..9288eaac16 100644 --- a/general/community/plugincontribution/pluginsdirectory/api.md +++ b/general/community/plugincontribution/pluginsdirectory/api.md @@ -9,7 +9,7 @@ tags: :::warning -This page describes the Plugins Directory API, not [Moodle Marketplace APIs](general/community/plugincontribution/moodlemarketplaceapi.md). +This page describes the Plugins Directory API, not the [Moodle Marketplace API](../marketplace-api/moodle-marketplace-api). For current Moodle Marketplace documentation, see [Moodle Marketplace documentation](https://moodle.atlassian.net/wiki/external/YTI4MmY4MWU2MDQyNDk5MTllZWY4YTBiNjA5ZDRjNWY). diff --git a/package.json b/package.json index f2a766b794..431175843e 100644 --- a/package.json +++ b/package.json @@ -4,14 +4,18 @@ "private": true, "scripts": { "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", + "start": "yarn openapi && docusaurus start", + "build": "yarn openapi && docusaurus build", "swizzle": "docusaurus swizzle", "deploy": "docusaurus deploy", "clear": "docusaurus clear", "serve": "docusaurus serve", "write-translations": "docusaurus write-translations", "write-heading-ids": "docusaurus write-heading-ids", + "openapi": "scripts/marketplace-openapi.mjs prepare && docusaurus clean-api-docs all && docusaurus gen-api-docs all", + "openapi-fetch": "scripts/marketplace-openapi.mjs fetch", + "gen-api-docs": "docusaurus gen-api-docs", + "clean-api-docs": "docusaurus clean-api-docs", "wikimedia-sync": "scripts/wikimedia-sync.js", "component-spellings": "scripts/component-helper.js spelling", "test": "jest", @@ -45,6 +49,8 @@ "acorn": "^8.11.3", "clsx": "^1.2.1", "commander": "5.1.0", + "docusaurus-plugin-openapi-docs": "^5.2.0", + "docusaurus-theme-openapi-docs": "^5.2.0", "dotenv": "^16.0.3", "hast-util-from-parse5": "^7.1.0", "libxmljs2": "^0.35.0", diff --git a/scripts/marketplace-openapi.mjs b/scripts/marketplace-openapi.mjs new file mode 100755 index 0000000000..e2d509c7b1 --- /dev/null +++ b/scripts/marketplace-openapi.mjs @@ -0,0 +1,143 @@ +#!/usr/bin/env node +/** + * Copyright (c) Moodle Pty Ltd. + * + * Moodle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Moodle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Moodle. If not, see . + */ + +/** + * Manage the Moodle Marketplace OpenAPI spec used by docusaurus-plugin-openapi-docs. + * + * - `fetch` downloads the spec and stores it, unmodified, in the repository. It is run + * on a schedule by the update-marketplace-api workflow, which opens a pull request + * when the spec changes, so building the site never depends on the Marketplace + * being reachable. + * - `prepare` turns the stored spec into the one the plugin generates the reference + * from. The spec is environment-agnostic: its `servers` entry is a bare `/` and the + * Markdown in its descriptions uses root-relative links, so the public URL of the + * environment being documented is injected to show full endpoint URLs and working + * links. It only reads local files. + * + * Environment variables (a local `.env` file is honoured): + * - MARKETPLACE_OPENAPI_URL Where `fetch` downloads the spec from. + * - MARKETPLACE_URL Public base URL of that environment. Defaults to the + * origin of MARKETPLACE_OPENAPI_URL. + */ + +import { program } from 'commander'; +import { config as dotEnvConfig } from 'dotenv'; +import { mkdir, readFile, writeFile } from 'fs/promises'; +import path from 'path'; + +dotEnvConfig(); + +const specUrl = process.env.MARKETPLACE_OPENAPI_URL + || 'https://marketplace.moodle.com/api/docs.jsonopenapi'; +const publicUrl = (process.env.MARKETPLACE_URL || new URL(specUrl).origin).replace(/\/$/, ''); + +const fetchTimeout = 30 * 1000; + +const storedSpecFile = path.join('data', 'marketplace', 'openapi.json'); + +// Must match the `specPath` of the docusaurus-plugin-openapi-docs instance in docusaurus.config.js. +const preparedSpecFile = path.join('.openapi', 'marketplace.json'); + +/** + * Turn root-relative Markdown links (`[text](/path)`) into absolute ones on the public URL. + * + * @param {string} markdown + * @returns {string} + */ +const absolutiseLinks = (markdown) => markdown.replace(/\]\(\/(?!\/)/g, `](${publicUrl}/`); + +/** + * Apply absolutiseLinks to every `description` found anywhere in the spec. + * + * @param {unknown} node + */ +const rewriteDescriptions = (node) => { + if (Array.isArray(node)) { + node.forEach(rewriteDescriptions); + return; + } + if (node && typeof node === 'object') { + Object.entries(node).forEach(([key, value]) => { + if (key === 'description' && typeof value === 'string') { + node[key] = absolutiseLinks(value); + } else { + rewriteDescriptions(value); + } + }); + } +}; + +/** + * Guard against storing something that is not an OpenAPI 3 document, such as an error + * body or a maintenance page served with a 200 status. + * + * @param {unknown} spec + */ +const assertOpenApiSpec = (spec) => { + const isSpec = spec + && typeof spec.openapi === 'string' + && spec.openapi.startsWith('3.') + && spec.info && typeof spec.info.title === 'string' + && spec.paths && typeof spec.paths === 'object'; + if (!isSpec) { + throw new Error(`${specUrl} did not return an OpenAPI 3 document`); + } +}; + +const writeJson = async (file, data) => { + await mkdir(path.dirname(file), { recursive: true }); + await writeFile(file, `${JSON.stringify(data, null, 2)}\n`); +}; + +const fetchSpec = async () => { + const response = await fetch(specUrl, { signal: AbortSignal.timeout(fetchTimeout) }); + if (!response.ok) { + throw new Error(`Unable to fetch ${specUrl}: ${response.status} ${response.statusText}`); + } + const spec = await response.json(); + assertOpenApiSpec(spec); + + await writeJson(storedSpecFile, spec); + console.log(`Wrote ${storedSpecFile} from ${specUrl}`); +}; + +const prepareSpec = async () => { + const spec = JSON.parse(await readFile(storedSpecFile, 'utf-8')); + + spec.servers = [{ url: publicUrl }]; + rewriteDescriptions(spec); + + await writeJson(preparedSpecFile, spec); + console.log(`Wrote ${preparedSpecFile} from ${storedSpecFile} (server: ${publicUrl})`); +}; + +program + .name('marketplace-openapi') + .description('Manage the Moodle Marketplace OpenAPI spec'); + +program + .command('fetch') + .description(`Download the spec and store it in ${storedSpecFile}`) + .action(fetchSpec); + +program + .command('prepare') + .description(`Prepare ${storedSpecFile} for docusaurus-plugin-openapi-docs`) + .action(prepareSpec); + +await program.parseAsync(); diff --git a/src/theme/ApiExplorer/Request/index.js b/src/theme/ApiExplorer/Request/index.js new file mode 100644 index 0000000000..bc071ebc41 --- /dev/null +++ b/src/theme/ApiExplorer/Request/index.js @@ -0,0 +1,42 @@ +/** + * Copyright (c) Moodle Pty Ltd. + * + * Moodle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Moodle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Moodle. If not, see . + */ + +import React from 'react'; +import Request from '@theme-original/ApiExplorer/Request'; + +/** + * Keep the API reference read-only. + * + * The hideSendButton option only hides the submit button. The form of the original Request component still + * sends the request when it is submitted by any other means, for example by pressing Enter in the only text + * input of the form, so the submission is cancelled before it reaches that handler. + * + * @param {object} props + * @returns {React.ReactNode} + */ +export default function RequestWrapper(props) { + const preventSubmit = (event) => { + event.preventDefault(); + event.stopPropagation(); + }; + + return ( +
+ +
+ ); +} diff --git a/src/theme/DocItem/index.js b/src/theme/DocItem/index.js new file mode 100644 index 0000000000..0813b7950c --- /dev/null +++ b/src/theme/DocItem/index.js @@ -0,0 +1,48 @@ +/** + * Copyright (c) Moodle Pty Ltd. + * + * Moodle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Moodle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Moodle. If not, see . + */ + +import React, { Suspense } from 'react'; +import DocItem from '@theme-original/DocItem'; + +// ApiItem and its dependencies (code sample generators, Redux...) weigh several MB, so they are split into their +// own chunk and only downloaded by the pages that need them. The static build waits for the chunk, so the +// generated HTML still contains the full API reference. +const ApiItem = React.lazy(() => import('@theme/ApiItem')); + +/** + * Render the pages generated by docusaurus-plugin-openapi-docs with its ApiItem component, and every other + * page with the original DocItem. + * + * ApiItem provides the Redux store the generated API pages need. Setting it as the docItemComponent of a + * docs instance would make every page of that instance download its code and change their markup. + * + * @param {object} props + * @returns {React.ReactNode} + */ +export default function DocItemWrapper(props) { + const { frontMatter } = props.content; + + if (frontMatter.api || frontMatter.schema) { + return ( + + + + ); + } + + return ; +} diff --git a/static/_redirects b/static/_redirects index 1e1ee5d639..7b8ff5c872 100644 --- a/static/_redirects +++ b/static/_redirects @@ -63,6 +63,10 @@ /general/community/meetings/202210 /general/community/meetings/2022/10 /general/community/meetings/202206 /general/community/meetings/2022/06 +# MKPL-1735 +# Redirect the old hand-written Moodle Marketplace API page to the generated API reference +/general/community/plugincontribution/moodlemarketplaceapi /general/community/plugincontribution/marketplace-api/moodle-marketplace-api + ############################################################################ # Splats should go later for performance ############################################################################ diff --git a/yarn.lock b/yarn.lock index d8417995f9..9869df578f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -280,6 +280,18 @@ __metadata: languageName: node linkType: hard +"@apidevtools/json-schema-ref-parser@npm:^15.3.3": + version: 15.5.2 + resolution: "@apidevtools/json-schema-ref-parser@npm:15.5.2" + dependencies: + js-yaml: "npm:^5.2.2" + undici: "npm:^6.28.0" + peerDependencies: + "@types/json-schema": ^7.0.15 + checksum: 10/6c4d312f479f4ccca209a28d8674729c5470500cc347cf9e8b7fa474d6af81c6ef9d6ae6c42fbdca3fb44f9e505fa5c9542b7ab9fdb7647d969e1c4256deb85e + languageName: node + linkType: hard + "@apidevtools/json-schema-ref-parser@npm:^9.1.0": version: 9.1.2 resolution: "@apidevtools/json-schema-ref-parser@npm:9.1.2" @@ -3844,6 +3856,20 @@ __metadata: languageName: node linkType: hard +"@exodus/schemasafe@npm:^1.0.0-rc.2": + version: 1.3.0 + resolution: "@exodus/schemasafe@npm:1.3.0" + checksum: 10/791d9e4b437fe04c6d7cf028d145ed963b8fe973ba6d5811aedf7edea40d5a055a49522241efdafbc32f964c27beaddf1c85fbcc8bf5436cf394623b08e5518b + languageName: node + linkType: hard + +"@faker-js/faker@npm:5.5.3": + version: 5.5.3 + resolution: "@faker-js/faker@npm:5.5.3" + checksum: 10/1a4fd61d1a9132f5776b447a2bc9c14d9b472611ddf22f7060adcf103c76d2af238e0bc132e633601b19a00b4f3a23643c4f2b7671ab9866ae9f91221d191788 + languageName: node + linkType: hard + "@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0": version: 9.3.0 resolution: "@hapi/hoek@npm:9.3.0" @@ -3860,6 +3886,17 @@ __metadata: languageName: node linkType: hard +"@hookform/error-message@npm:^2.0.1": + version: 2.0.1 + resolution: "@hookform/error-message@npm:2.0.1" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + react-hook-form: ^7.0.0 + checksum: 10/96665a078471f68a9fcc78f55a024f4caf1db2e32b5ff36d1755b3e9bfbb54a4f114c76d7da27147cca281e96dc0773bcd904760e96df1fd5c336ff182b02633 + languageName: node + linkType: hard + "@humanwhocodes/config-array@npm:^0.13.0": version: 0.13.0 resolution: "@humanwhocodes/config-array@npm:0.13.0" @@ -4188,6 +4225,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.13 + resolution: "@jridgewell/gen-mapping@npm:0.3.13" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10/902f8261dcf450b4af7b93f9656918e02eec80a2169e155000cb2059f90113dd98f3ccf6efc6072cee1dd84cac48cade51da236972d942babc40e4c23da4d62a + languageName: node + linkType: hard + "@jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.8 resolution: "@jridgewell/gen-mapping@npm:0.3.8" @@ -4230,6 +4277,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.6.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.6.0" + checksum: 10/eb53fbf7eb4051302a599d6b91425f381168b2856f321336fb00852cea1e0c1904af2610c157b1535e94a61caa98f0bd068d1d0394dd46adf9e9c45c4e11af91 + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" @@ -4852,6 +4906,140 @@ __metadata: languageName: node linkType: hard +"@parcel/watcher-android-arm64@npm:2.6.0": + version: 2.6.0 + resolution: "@parcel/watcher-android-arm64@npm:2.6.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-arm64@npm:2.6.0": + version: 2.6.0 + resolution: "@parcel/watcher-darwin-arm64@npm:2.6.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-x64@npm:2.6.0": + version: 2.6.0 + resolution: "@parcel/watcher-darwin-x64@npm:2.6.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-freebsd-x64@npm:2.6.0": + version: 2.6.0 + resolution: "@parcel/watcher-freebsd-x64@npm:2.6.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm-glibc@npm:2.6.0": + version: 2.6.0 + resolution: "@parcel/watcher-linux-arm-glibc@npm:2.6.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm-musl@npm:2.6.0": + version: 2.6.0 + resolution: "@parcel/watcher-linux-arm-musl@npm:2.6.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-glibc@npm:2.6.0": + version: 2.6.0 + resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.6.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-musl@npm:2.6.0": + version: 2.6.0 + resolution: "@parcel/watcher-linux-arm64-musl@npm:2.6.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-glibc@npm:2.6.0": + version: 2.6.0 + resolution: "@parcel/watcher-linux-x64-glibc@npm:2.6.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-musl@npm:2.6.0": + version: 2.6.0 + resolution: "@parcel/watcher-linux-x64-musl@npm:2.6.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-win32-arm64@npm:2.6.0": + version: 2.6.0 + resolution: "@parcel/watcher-win32-arm64@npm:2.6.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-win32-x64@npm:2.6.0": + version: 2.6.0 + resolution: "@parcel/watcher-win32-x64@npm:2.6.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher@npm:^2.4.1": + version: 2.6.0 + resolution: "@parcel/watcher@npm:2.6.0" + dependencies: + "@parcel/watcher-android-arm64": "npm:2.6.0" + "@parcel/watcher-darwin-arm64": "npm:2.6.0" + "@parcel/watcher-darwin-x64": "npm:2.6.0" + "@parcel/watcher-freebsd-x64": "npm:2.6.0" + "@parcel/watcher-linux-arm-glibc": "npm:2.6.0" + "@parcel/watcher-linux-arm-musl": "npm:2.6.0" + "@parcel/watcher-linux-arm64-glibc": "npm:2.6.0" + "@parcel/watcher-linux-arm64-musl": "npm:2.6.0" + "@parcel/watcher-linux-x64-glibc": "npm:2.6.0" + "@parcel/watcher-linux-x64-musl": "npm:2.6.0" + "@parcel/watcher-win32-arm64": "npm:2.6.0" + "@parcel/watcher-win32-x64": "npm:2.6.0" + detect-libc: "npm:^2.0.3" + is-glob: "npm:^4.0.3" + node-addon-api: "npm:^7.0.0" + node-gyp: "npm:latest" + picomatch: "npm:^4.0.4" + dependenciesMeta: + "@parcel/watcher-android-arm64": + optional: true + "@parcel/watcher-darwin-arm64": + optional: true + "@parcel/watcher-darwin-x64": + optional: true + "@parcel/watcher-freebsd-x64": + optional: true + "@parcel/watcher-linux-arm-glibc": + optional: true + "@parcel/watcher-linux-arm-musl": + optional: true + "@parcel/watcher-linux-arm64-glibc": + optional: true + "@parcel/watcher-linux-arm64-musl": + optional: true + "@parcel/watcher-linux-x64-glibc": + optional: true + "@parcel/watcher-linux-x64-musl": + optional: true + "@parcel/watcher-win32-arm64": + optional: true + "@parcel/watcher-win32-x64": + optional: true + checksum: 10/0f5f8efcd963aa4c9a2edd8f542cb339075fc1d3dd5f09b1fbfdff82f2e0a6b7da29aa5e600710045eb8d9f0f92923e4ad1b1a38cbdcb455a3a40e5618cb11c3 + languageName: node + linkType: hard + "@peculiar/asn1-cms@npm:^2.6.0, @peculiar/asn1-cms@npm:^2.6.1": version: 2.6.1 resolution: "@peculiar/asn1-cms@npm:2.6.1" @@ -5045,6 +5233,68 @@ __metadata: languageName: node linkType: hard +"@redocly/ajv@npm:^8.18.3, ajv@npm:@redocly/ajv@^8.18.3": + version: 8.18.3 + resolution: "@redocly/ajv@npm:8.18.3" + dependencies: + fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + checksum: 10/5cdcc45c1a69d02fc3cd152a9c8b68f0a7346f80626254df937a43d86ee5279c991e5f7c21664adf46bae2be2fa137142a96dc3832f274c80d6ab745a5d0608a + languageName: node + linkType: hard + +"@redocly/config@npm:^0.66.0": + version: 0.66.0 + resolution: "@redocly/config@npm:0.66.0" + checksum: 10/e0b0c9c9d41834de2c32a4af823827354d7b1ccdf66bbc6e3e3e39bbd3d621387838f0498b2ce79c122e6c8e2d7d010952d6a3813ce9a47d816aa01f7b27f47d + languageName: node + linkType: hard + +"@redocly/openapi-core@npm:^2.25.2": + version: 2.64.1 + resolution: "@redocly/openapi-core@npm:2.64.1" + dependencies: + "@redocly/ajv": "npm:^8.18.3" + "@redocly/config": "npm:^0.66.0" + ajv: "npm:@redocly/ajv@^8.18.3" + ajv-formats: "npm:^3.0.1" + colorette: "npm:^1.2.0" + graphql: "npm:^16.14.1" + js-levenshtein: "npm:^1.1.6" + js-yaml: "npm:^5.2.2" + json-schema-to-ts: "npm:^3.1.0" + jsonpath-rfc9535: "npm:1.3.0" + picomatch: "npm:^4.0.4" + pluralize: "npm:^8.0.0" + yaml-ast-parser: "npm:0.0.43" + checksum: 10/efe47c3e49a7e595d8ed513ef9648a5a6fa553c80c88131718c501006fcb8c43c1c640e79cdb63cdcf8cdf603ee8704f0cfd4a31f816e48100a4d393c2d1c91e + languageName: node + linkType: hard + +"@reduxjs/toolkit@npm:^2.8.2": + version: 2.13.0 + resolution: "@reduxjs/toolkit@npm:2.13.0" + dependencies: + "@standard-schema/spec": "npm:^1.0.0" + "@standard-schema/utils": "npm:^0.3.0" + immer: "npm:^11.0.0" + redux: "npm:^5.0.1" + redux-thunk: "npm:^3.1.0" + reselect: "npm:^5.1.0" + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 || ^19 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + checksum: 10/0717fa56e5b11df6598a33ffd55169e5c7414234bc50a2059349808ac9f08eaeffa640af9290b03b78d306c6566d0c78a507c6c089f8842f51dfb166757d5759 + languageName: node + linkType: hard + "@rollup/plugin-babel@npm:^5.2.0": version: 5.3.1 resolution: "@rollup/plugin-babel@npm:5.3.1" @@ -5358,6 +5608,20 @@ __metadata: languageName: node linkType: hard +"@standard-schema/spec@npm:^1.0.0": + version: 1.1.0 + resolution: "@standard-schema/spec@npm:1.1.0" + checksum: 10/a209615c9e8b2ea535d7db0a5f6aa0f962fd4ab73ee86a46c100fb78116964af1f55a27c1794d4801e534a196794223daa25ff5135021e03c7828aa3d95e1763 + languageName: node + linkType: hard + +"@standard-schema/utils@npm:^0.3.0": + version: 0.3.0 + resolution: "@standard-schema/utils@npm:0.3.0" + checksum: 10/7084f875d322792f2e0a5904009434c8374b9345b09ba89828b68fd56fa3c2b366d35bf340d9e8c72736ef01793c2f70d350c372ed79845dc3566c58d34b4b51 + languageName: node + linkType: hard + "@surma/rollup-plugin-off-main-thread@npm:^2.2.3": version: 2.2.3 resolution: "@surma/rollup-plugin-off-main-thread@npm:2.2.3" @@ -6707,6 +6971,13 @@ __metadata: languageName: node linkType: hard +"@types/use-sync-external-store@npm:^0.0.6": + version: 0.0.6 + resolution: "@types/use-sync-external-store@npm:0.0.6" + checksum: 10/a95ce330668501ad9b1c5b7f2b14872ad201e552a0e567787b8f1588b22c7040c7c3d80f142cbb9f92d13c4ea41c46af57a20f2af4edf27f224d352abcfe4049 + languageName: node + linkType: hard + "@types/ws@npm:^8.5.10": version: 8.18.1 resolution: "@types/ws@npm:8.18.1" @@ -7140,7 +7411,19 @@ __metadata: languageName: node linkType: hard -"ajv-formats@npm:^2.1.1": +"ajv-draft-04@npm:1.0.0": + version: 1.0.0 + resolution: "ajv-draft-04@npm:1.0.0" + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10/3f11fa0e7f7359bef6608657f02ab78e9cc62b1fb7bdd860db0d00351b3863a1189c1a23b72466d2d82726cab4eb20725c76f5e7c134a89865e2bfd0e6828137 + languageName: node + linkType: hard + +"ajv-formats@npm:2.1.1, ajv-formats@npm:^2.1.1": version: 2.1.1 resolution: "ajv-formats@npm:2.1.1" dependencies: @@ -7154,6 +7437,20 @@ __metadata: languageName: node linkType: hard +"ajv-formats@npm:^3.0.1": + version: 3.0.1 + resolution: "ajv-formats@npm:3.0.1" + dependencies: + ajv: "npm:^8.0.0" + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10/5679b9f9ced9d0213a202a37f3aa91efcffe59a6de1a6e3da5c873344d3c161820a1f11cc29899661fee36271fd2895dd3851b6461c902a752ad661d1c1e8722 + languageName: node + linkType: hard + "ajv-keywords@npm:^3.5.2": version: 3.5.2 resolution: "ajv-keywords@npm:3.5.2" @@ -7198,6 +7495,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:^8.11.0": + version: 8.20.0 + resolution: "ajv@npm:8.20.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + checksum: 10/5ce59c0537f4c2aca9a758b412659ec70acb4d5dde971c10ecf21d2e3d799f99acdb4a08e1f5fb2e067c8542930398aae793bb996bb07d3feb81dae22fe2ada9 + languageName: node + linkType: hard + "algoliasearch-helper@npm:^3.26.0": version: 3.28.1 resolution: "algoliasearch-helper@npm:3.28.1" @@ -7231,6 +7540,15 @@ __metadata: languageName: node linkType: hard +"allof-merge@npm:^0.6.6": + version: 0.6.8 + resolution: "allof-merge@npm:0.6.8" + dependencies: + json-crawl: "npm:^0.5.3" + checksum: 10/3002f7ded03bf6d21bd2a704309ffaf5ff05e43a9abf8098fe1911d9d36dfa719d3cba17226ff3fd1e0c0e90de96c02f0a39a8b634c24a341143040c4fbffd8e + languageName: node + linkType: hard + "ansi-align@npm:^3.0.1": version: 3.0.1 resolution: "ansi-align@npm:3.0.1" @@ -7318,6 +7636,13 @@ __metadata: languageName: node linkType: hard +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 10/6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb + languageName: node + linkType: hard + "anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" @@ -7351,6 +7676,13 @@ __metadata: languageName: node linkType: hard +"argparse@npm:^3.0.3": + version: 3.0.3 + resolution: "argparse@npm:3.0.3" + checksum: 10/6834e247fe8a8d21a0061dc2b7134ae79625d9ab795eca043d8ba9434be3bc1e7d049c9a4aa01bd3d6bfc145b29addfb290d17b8b3f7b11710cc52ab13629f31 + languageName: node + linkType: hard + "aria-query@npm:^5.3.2": version: 5.3.2 resolution: "aria-query@npm:5.3.2" @@ -7548,7 +7880,7 @@ __metadata: languageName: node linkType: hard -"async@npm:^3.2.0, async@npm:^3.2.3": +"async@npm:3.2.6, async@npm:^3.2.0, async@npm:^3.2.2, async@npm:^3.2.3": version: 3.2.6 resolution: "async@npm:3.2.6" checksum: 10/cb6e0561a3c01c4b56a799cc8bab6ea5fef45f069ab32500b6e19508db270ef2dffa55e5aed5865c5526e9907b1f8be61b27530823b411ffafb5e1538c86c368 @@ -8013,6 +8345,16 @@ __metadata: languageName: node linkType: hard +"buffer@npm:^6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 10/b6bc68237ebf29bdacae48ce60e5e28fc53ae886301f2ad9496618efac49427ed79096750033e7eab1897a4f26ae374ace49106a5758f38fb70c78c9fda2c3b1 + languageName: node + linkType: hard + "bundle-name@npm:^4.1.0": version: 4.1.0 resolution: "bundle-name@npm:4.1.0" @@ -8274,6 +8616,13 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^5.6.2": + version: 5.6.2 + resolution: "chalk@npm:5.6.2" + checksum: 10/1b2f48f6fba1370670d5610f9cd54c391d6ede28f4b7062dd38244ea5768777af72e5be6b74fb6c6d54cb84c4a2dff3f3afa9b7cb5948f7f022cfd3d087989e0 + languageName: node + linkType: hard + "char-regex@npm:^1.0.2": version: 1.0.2 resolution: "char-regex@npm:1.0.2" @@ -8344,6 +8693,13 @@ __metadata: languageName: node linkType: hard +"charset@npm:^1.0.0": + version: 1.0.1 + resolution: "charset@npm:1.0.1" + checksum: 10/3b6a8ba900d6ecbaafd0684a619fa0232840d382d2ac9dad3d68d071d026eaa68dd121f6607f079b6e6387f1d0f3be8e43a3a4e6303587c8cd128637164eb5a4 + languageName: node + linkType: hard + "cheerio-select@npm:^2.1.0": version: 2.1.0 resolution: "cheerio-select@npm:2.1.0" @@ -8417,6 +8773,15 @@ __metadata: languageName: node linkType: hard +"chokidar@npm:^5.0.0": + version: 5.0.0 + resolution: "chokidar@npm:5.0.0" + dependencies: + readdirp: "npm:^5.0.0" + checksum: 10/a1c2a4ee6ee81ba6409712c295a47be055fb9de1186dfbab33c1e82f28619de962ba02fc5f9d433daaedc96c35747460d8b2079ac2907de2c95e3f7cce913113 + languageName: node + linkType: hard + "chownr@npm:^1.1.1": version: 1.1.4 resolution: "chownr@npm:1.1.4" @@ -8677,6 +9042,13 @@ __metadata: languageName: node linkType: hard +"colorette@npm:^1.2.0": + version: 1.4.0 + resolution: "colorette@npm:1.4.0" + checksum: 10/c8d6c8c3ef5a99acfc3dd9a68f48019f1479ec347551387e4a1762e40f69e98ce19d4dc321ffb4919d1f28a7bdc90c39d4e9a901f4c474fd2124ad93a00c0454 + languageName: node + linkType: hard + "colorette@npm:^2.0.10, colorette@npm:^2.0.20": version: 2.0.20 resolution: "colorette@npm:2.0.20" @@ -8724,6 +9096,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:2.20.3, commander@npm:^2.20.0": + version: 2.20.3 + resolution: "commander@npm:2.20.3" + checksum: 10/90c5b6898610cd075984c58c4f88418a4fb44af08c1b1415e9854c03171bec31b336b7f3e4cefe33de994b3f12b03c5e2d638da4316df83593b9e82554e7e95b + languageName: node + linkType: hard + "commander@npm:5.1.0, commander@npm:^5.1.0": version: 5.1.0 resolution: "commander@npm:5.1.0" @@ -8752,10 +9131,10 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.20.0": - version: 2.20.3 - resolution: "commander@npm:2.20.3" - checksum: 10/90c5b6898610cd075984c58c4f88418a4fb44af08c1b1415e9854c03171bec31b336b7f3e4cefe33de994b3f12b03c5e2d638da4316df83593b9e82554e7e95b +"commander@npm:^4.0.0": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: 10/3b2dc4125f387dab73b3294dbcb0ab2a862f9c0ad748ee2b27e3544d25325b7a8cdfbcc228d103a98a716960b14478114a5206b5415bd48cdafa38797891562c languageName: node linkType: hard @@ -8824,6 +9203,29 @@ __metadata: languageName: node linkType: hard +"compute-gcd@npm:^1.2.1": + version: 1.2.1 + resolution: "compute-gcd@npm:1.2.1" + dependencies: + validate.io-array: "npm:^1.0.3" + validate.io-function: "npm:^1.0.2" + validate.io-integer-array: "npm:^1.0.0" + checksum: 10/51cf33b75f7c8db5142fcb99a9d84a40260993fed8e02a7ab443834186c3ab99b3fd20b30ad9075a6a9d959d69df6da74dd3be8a59c78d9f2fe780ebda8242e1 + languageName: node + linkType: hard + +"compute-lcm@npm:^1.1.2": + version: 1.1.2 + resolution: "compute-lcm@npm:1.1.2" + dependencies: + compute-gcd: "npm:^1.2.1" + validate.io-array: "npm:^1.0.3" + validate.io-function: "npm:^1.0.2" + validate.io-integer-array: "npm:^1.0.0" + checksum: 10/d499ab57dcb48e8d0fd233b99844a06d1cc56115602c920c586e998ebba60293731f5b6976e8a1e83ae6cbfe86716f62d9432e8d94913fed8bd8352f447dc917 + languageName: node + linkType: hard + "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -9069,6 +9471,13 @@ __metadata: languageName: node linkType: hard +"crypto-js@npm:^4.2.0": + version: 4.2.0 + resolution: "crypto-js@npm:4.2.0" + checksum: 10/c7bcc56a6e01c3c397e95aa4a74e4241321f04677f9a618a8f48a63b5781617248afb9adb0629824792e7ec20ca0d4241a49b6b2938ae6f973ec4efc5c53c924 + languageName: node + linkType: hard + "crypto-random-string@npm:^2.0.0": version: 2.0.0 resolution: "crypto-random-string@npm:2.0.0" @@ -10202,6 +10611,15 @@ __metadata: languageName: node linkType: hard +"detect-package-manager@npm:^3.0.2": + version: 3.0.2 + resolution: "detect-package-manager@npm:3.0.2" + dependencies: + execa: "npm:^5.1.1" + checksum: 10/4147cb00e1c8f8b0df376bd1bf72dc13f61fbb157fbd2e7d54eb4ccd5413edc68706a5bbd982750dd519be38e76d2fe104609a57b9428f35c3e5cda36235a4b6 + languageName: node + linkType: hard + "detect-port@npm:^2.1.0": version: 2.1.0 resolution: "detect-port@npm:2.1.0" @@ -10243,6 +10661,8 @@ __metadata: clsx: "npm:^1.2.1" commander: "npm:5.1.0" cspell: "npm:^8.6.1" + docusaurus-plugin-openapi-docs: "npm:^5.2.0" + docusaurus-theme-openapi-docs: "npm:^5.2.0" dotenv: "npm:^16.0.3" eslint: "npm:^8.28.0" eslint-config-airbnb: "npm:^19.0.4" @@ -10345,6 +10765,76 @@ __metadata: languageName: node linkType: hard +"docusaurus-plugin-openapi-docs@npm:^5.2.0": + version: 5.2.0 + resolution: "docusaurus-plugin-openapi-docs@npm:5.2.0" + dependencies: + "@apidevtools/json-schema-ref-parser": "npm:^15.3.3" + "@redocly/openapi-core": "npm:^2.25.2" + allof-merge: "npm:^0.6.6" + chalk: "npm:^5.6.2" + clsx: "npm:^2.1.1" + fs-extra: "npm:^11.3.0" + json-pointer: "npm:^0.6.2" + json5: "npm:^2.2.3" + lodash: "npm:^4.17.21" + mustache: "npm:^4.2.0" + openapi-to-postmanv2: "npm:^6.0.0" + postman-collection: "npm:^5.0.2" + slugify: "npm:^1.6.6" + swagger2openapi: "npm:^7.0.8" + xml-formatter: "npm:^3.6.6" + peerDependencies: + "@docusaurus/plugin-content-docs": ^3.10.0 + "@docusaurus/utils": ^3.10.0 + "@docusaurus/utils-validation": ^3.10.0 + react: ^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10/5f54ee067d258cf64da5dfc28b6d9a69e6fa171a8979a21ddaa53f4740dc97f07e5d221eb89d714f316ae9b4b17877ae57c581b992880a0e6dd9fe2d12dbdc5b + languageName: node + linkType: hard + +"docusaurus-theme-openapi-docs@npm:^5.2.0": + version: 5.2.0 + resolution: "docusaurus-theme-openapi-docs@npm:5.2.0" + dependencies: + "@hookform/error-message": "npm:^2.0.1" + "@reduxjs/toolkit": "npm:^2.8.2" + allof-merge: "npm:^0.6.6" + buffer: "npm:^6.0.3" + clsx: "npm:^2.1.1" + copy-text-to-clipboard: "npm:^3.2.0" + crypto-js: "npm:^4.2.0" + file-saver: "npm:^2.0.5" + lodash: "npm:^4.17.21" + pako: "npm:^3.0.1" + path-browserify: "npm:^1.0.1" + postman-code-generators: "npm:^2.0.0" + postman-collection: "npm:^5.0.2" + prism-react-renderer: "npm:^2.4.1" + process: "npm:^0.11.10" + react-hook-form: "npm:^7.59.0" + react-live: "npm:^4.1.8" + react-magic-dropzone: "npm:^1.0.1" + react-markdown: "npm:^10.1.0" + react-modal: "npm:^3.16.3" + react-redux: "npm:^9.2.0" + rehype-raw: "npm:^7.0.0" + remark-gfm: "npm:4.0.1" + sass: "npm:^1.89.2" + sass-loader: "npm:^17.0.0" + unist-util-visit: "npm:^5.0.0" + url: "npm:^0.11.4" + xml-formatter: "npm:^3.6.6" + peerDependencies: + "@docusaurus/theme-common": ^3.10.0 + docusaurus-plugin-openapi-docs: ^5.0.0 + docusaurus-plugin-sass: ^0.2.3 + react: ^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10/6154b01cb8f75af0b771ec0c3dbfe8cec44b57891ef33fccc01769daa2aa87f1f2a35d026953bbb5577c696a09bfc2fe995dc901c0dd0387061dd91f35deb0a1 + languageName: node + linkType: hard + "dom-converter@npm:^0.2.0": version: 0.2.0 resolution: "dom-converter@npm:0.2.0" @@ -10811,6 +11301,13 @@ __metadata: languageName: node linkType: hard +"es6-promise@npm:^3.2.1": + version: 3.3.1 + resolution: "es6-promise@npm:3.3.1" + checksum: 10/14f46a0a20164d4d6f8a39133c7220688bb9ee2d89a78f2345694b8ac9b6ea7b94f73488e289a083dce732831f4040013b25222d1820580c7b10b698c50c8267 + languageName: node + linkType: hard + "esast-util-from-estree@npm:^2.0.0": version: 2.0.0 resolution: "esast-util-from-estree@npm:2.0.0" @@ -11415,7 +11912,14 @@ __metadata: languageName: node linkType: hard -"exit@npm:^0.1.2": +"exenv@npm:^1.2.0": + version: 1.2.2 + resolution: "exenv@npm:1.2.2" + checksum: 10/6840185e421394bcb143debb866d31d19c3e4a4bca87d2f319d68d61afff353b3c678f2eb389e3b98ab9aecbec19f6bebbdc4193984378af0a3366c498a7efc8 + languageName: node + linkType: hard + +"exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" checksum: 10/387555050c5b3c10e7a9e8df5f43194e95d7737c74532c409910e585d5554eaff34960c166643f5e23d042196529daad059c292dcf1fb61b8ca878d3677f4b87 @@ -11593,6 +12097,13 @@ __metadata: languageName: node linkType: hard +"fast-safe-stringify@npm:^2.0.7": + version: 2.1.1 + resolution: "fast-safe-stringify@npm:2.1.1" + checksum: 10/dc1f063c2c6ac9533aee14d406441f86783a8984b2ca09b19c2fe281f9ff59d315298bc7bc22fd1f83d26fe19ef2f20e2ddb68e96b15040292e555c5ced0c1e4 + languageName: node + linkType: hard + "fast-uri@npm:^3.0.1": version: 3.1.8 resolution: "fast-uri@npm:3.1.8" @@ -11655,6 +12166,18 @@ __metadata: languageName: node linkType: hard +"fdir@npm:^6.5.0": + version: 6.5.0 + resolution: "fdir@npm:6.5.0" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 10/14ca1c9f0a0e8f4f2e9bf4e8551065a164a09545dae548c12a18d238b72e51e5a7b39bd8e5494b56463a0877672d0a6c1ef62c6fa0677db1b0c847773be939b1 + languageName: node + linkType: hard + "fecha@npm:^4.2.0": version: 4.2.3 resolution: "fecha@npm:4.2.3" @@ -11720,6 +12243,20 @@ __metadata: languageName: node linkType: hard +"file-saver@npm:^2.0.5": + version: 2.0.5 + resolution: "file-saver@npm:2.0.5" + checksum: 10/fbba443d9b682fec0be6676c048a7ac688b9bd33b105c02e8e1a1cb3e354ed441198dc1f15dcbc137fa044bea73f8a7549f2617e3a952fa7d96390356d54a7c3 + languageName: node + linkType: hard + +"file-type@npm:3.9.0": + version: 3.9.0 + resolution: "file-type@npm:3.9.0" + checksum: 10/1c8bc99bbb9cfcf13d3489e0c0250188dde622658b5a990f2ba09e6c784f183556b37b7de22104b4b0fd87f478ce12f8dc199b988616ce7cdcb41248dc0a79f9 + languageName: node + linkType: hard + "file-uri-to-path@npm:1.0.0": version: 1.0.0 resolution: "file-uri-to-path@npm:1.0.0" @@ -11870,6 +12407,13 @@ __metadata: languageName: node linkType: hard +"foreach@npm:^2.0.4": + version: 2.0.6 + resolution: "foreach@npm:2.0.6" + checksum: 10/93b0e65b3f03d9f696418d45f589d0135268b97bf71b4c2628687ce77ce49c20abd60f3c1b23052306b4e789435683a467a7828beac486d2ea17ba8b80933d38 + languageName: node + linkType: hard + "foreground-child@npm:^3.1.0": version: 3.3.1 resolution: "foreground-child@npm:3.3.1" @@ -11960,6 +12504,17 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:^11.3.0": + version: 11.4.1 + resolution: "fs-extra@npm:11.4.1" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10/8805c7413442ed9e94fb25eeafd28d705e2a732deba3eeb7b43cf687ce60c94e8a298b882de38249034ca84db7d21a0e4a237a041e8141f8f24f0d5ac2c6056a + languageName: node + linkType: hard + "fs-extra@npm:^9.0.1": version: 9.1.0 resolution: "fs-extra@npm:9.1.0" @@ -12198,7 +12753,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.0, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": +"glob@npm:^7.0.0, glob@npm:^7.1.0, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -12385,6 +12940,22 @@ __metadata: languageName: node linkType: hard +"graphlib@npm:2.1.8": + version: 2.1.8 + resolution: "graphlib@npm:2.1.8" + dependencies: + lodash: "npm:^4.17.15" + checksum: 10/37cbd851d3c1fb99f3174750ccaa22305d23d11746e5df81a38ba3bf25c0ba29cd9658ba69a0159ea81d56c28e8e875033eeaaa7167d838419fae08d9cd2c62c + languageName: node + linkType: hard + +"graphql@npm:^16.14.1": + version: 16.14.2 + resolution: "graphql@npm:16.14.2" + checksum: 10/cd9a2581508f82621112a4dc625714e81ce725ab0a62502d97c14f61fee180e85276ac64bf9094f4fbf237737832ad4bb970aa26088f9dffece56f8919a49a29 + languageName: node + linkType: hard + "gzip-size@npm:^6.0.0": version: 6.0.0 resolution: "gzip-size@npm:6.0.0" @@ -12503,6 +13074,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.4": + version: 2.0.4 + resolution: "hasown@npm:2.0.4" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10/13823863ae48161068b4c51606a3128451c66f14545a5169d667fe9fca168dcd38c27570c7a299e32ef844b8da3d55def7fe88602f8970d4311fb543ee88001a + languageName: node + linkType: hard + "hast-util-from-parse5@npm:^7.1.0": version: 7.1.2 resolution: "hast-util-from-parse5@npm:7.1.2" @@ -12771,6 +13351,13 @@ __metadata: languageName: node linkType: hard +"html-url-attributes@npm:^3.0.0": + version: 3.0.1 + resolution: "html-url-attributes@npm:3.0.1" + checksum: 10/494074c2f730c5c0e517aa1b10111fb36732534a2d2b70427582c4a615472b47da472cf3a17562cc653826d378d20960f2783e0400f4f7cf0c3c2d91c6188d13 + languageName: node + linkType: hard + "html-void-elements@npm:^3.0.0": version: 3.0.0 resolution: "html-void-elements@npm:3.0.0" @@ -12908,6 +13495,13 @@ __metadata: languageName: node linkType: hard +"http-reasons@npm:0.1.0": + version: 0.1.0 + resolution: "http-reasons@npm:0.1.0" + checksum: 10/fb364d1e0ab685ca1fabdb0c31f9c7c38acc247d3c92d799a69c398ac1808ab1f6df9a909d0444cf9a19f6b9d3b6d9b56e5e5ad44d10cde35b9679244739ae10 + languageName: node + linkType: hard + "http-signature@npm:~1.2.0": version: 1.2.0 resolution: "http-signature@npm:1.2.0" @@ -12919,6 +13513,13 @@ __metadata: languageName: node linkType: hard +"http2-client@npm:^1.2.5": + version: 1.3.5 + resolution: "http2-client@npm:1.3.5" + checksum: 10/34ef17ea2814acbf9d9b5184f9e2c0767846d62abc357bd63c67b3d1f65e7b6ba772d4950ec4f5188686d3d8bfa15e3fb73721150db5bdb47bcefdba71734729 + languageName: node + linkType: hard + "http2-wrapper@npm:^2.1.10": version: 2.2.1 resolution: "http2-wrapper@npm:2.2.1" @@ -12969,7 +13570,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.6, iconv-lite@npm:^0.6.2": +"iconv-lite@npm:0.6, iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" dependencies: @@ -13003,7 +13604,7 @@ __metadata: languageName: node linkType: hard -"ieee754@npm:^1.1.13": +"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" checksum: 10/d9f2557a59036f16c282aaeb107832dc957a93d73397d89bbad4eb1130560560eb695060145e8e6b3b498b15ab95510226649a0b8f52ae06583575419fe10fc4 @@ -13026,6 +13627,20 @@ __metadata: languageName: node linkType: hard +"immer@npm:^11.0.0": + version: 11.1.21 + resolution: "immer@npm:11.1.21" + checksum: 10/debf433fb0c62a9e57078f5fc0d27c014e13cfabaadc5bfdd1d37d96aeadda57d834aa065586954dd4493e87ae411799938a940bee8c5f328b59e993541fa4dc + languageName: node + linkType: hard + +"immutable@npm:^5.1.5": + version: 5.1.9 + resolution: "immutable@npm:5.1.9" + checksum: 10/dc61ea6f79897320a048f193dec703dff25ad7bb633c3a0294677d2f258764c88da06e7c2b53d1aa51b6657c98d9f1c7341f49735b9b802fe6e834122cf78dcd + languageName: node + linkType: hard + "import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0, import-fresh@npm:^3.3.1": version: 3.3.1 resolution: "import-fresh@npm:3.3.1" @@ -13187,6 +13802,13 @@ __metadata: languageName: node linkType: hard +"interpret@npm:^1.0.0": + version: 1.4.0 + resolution: "interpret@npm:1.4.0" + checksum: 10/5beec568d3f60543d0f61f2c5969d44dffcb1a372fe5abcdb8013968114d4e4aaac06bc971a4c9f5bd52d150881d8ebad72a8c60686b1361f5f0522f39c0e1a3 + languageName: node + linkType: hard + "invariant@npm:^2.2.4": version: 2.2.4 resolution: "invariant@npm:2.2.4" @@ -13361,6 +13983,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.17.0": + version: 2.17.0 + resolution: "is-core-module@npm:2.17.0" + dependencies: + hasown: "npm:^2.0.4" + checksum: 10/0020f71b7eb525ccd684012cd1cfba235e7596e0addbc993732f7d8faff7ccd3a399e16dac7eb317b63459ea23f97efd661d6bf32584f6bf1d0a607fd8e21a6b + languageName: node + linkType: hard + "is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": version: 1.0.2 resolution: "is-data-view@npm:1.0.2" @@ -14423,6 +15054,13 @@ __metadata: languageName: node linkType: hard +"js-levenshtein@npm:^1.1.6": + version: 1.1.6 + resolution: "js-levenshtein@npm:1.1.6" + checksum: 10/bb034043fdebab606122fe5b5c0316036f1bb0ea352038af8b0ba4cda4b016303b24f64efb59d9918f66e3680eea97ff421396ff3c153cb00a6f982908f61f8a + languageName: node + linkType: hard + "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -14441,6 +15079,17 @@ __metadata: languageName: node linkType: hard +"js-yaml@npm:4.3.0": + version: 4.3.0 + resolution: "js-yaml@npm:4.3.0" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10/2bcec3a8118d7f744badeb04e14366578d234a736f353d41fe35d2305e4ce2409a8e041d277f07cd6bbc8aaa12128d650a68ce43247072519bede20962d2126f + languageName: node + linkType: hard + "js-yaml@npm:^3.13.1, js-yaml@npm:^3.14.0": version: 3.14.1 resolution: "js-yaml@npm:3.14.1" @@ -14464,6 +15113,17 @@ __metadata: languageName: node linkType: hard +"js-yaml@npm:^5.2.2": + version: 5.5.0 + resolution: "js-yaml@npm:5.5.0" + dependencies: + argparse: "npm:^3.0.3" + bin: + js-yaml: bin/js-yaml.mjs + checksum: 10/c01359a4fe69a1c032e9e57d7387a1cbdfbbd45bc69924885a3c9a9a020e066627dc125f7b46f7b929186b5a65471ae5fa478d3f773e35f7ccdf57d32fcf369f + languageName: node + linkType: hard + "jsbn@npm:1.1.0": version: 1.1.0 resolution: "jsbn@npm:1.1.0" @@ -14512,6 +15172,13 @@ __metadata: languageName: node linkType: hard +"json-crawl@npm:^0.5.3": + version: 0.5.3 + resolution: "json-crawl@npm:0.5.3" + checksum: 10/2de705356876d0c2175a9aae904985187cf510b1269d03f8c0b7f194dd5271d58bf6671d1c026527f3516aa716e50bb7adb8843bf2b330183089703eec5e96a7 + languageName: node + linkType: hard + "json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" @@ -14519,6 +15186,35 @@ __metadata: languageName: node linkType: hard +"json-pointer@npm:0.6.2, json-pointer@npm:^0.6.2": + version: 0.6.2 + resolution: "json-pointer@npm:0.6.2" + dependencies: + foreach: "npm:^2.0.4" + checksum: 10/1d8fc507008cf28815ad398baa7a6d62a73cce2d5ca7859097bb56043b3b6889e393bf5285db9674ddcdb8bc10551146cf8048d3d6430d55ce922105813661e2 + languageName: node + linkType: hard + +"json-schema-compare@npm:^0.2.2": + version: 0.2.2 + resolution: "json-schema-compare@npm:0.2.2" + dependencies: + lodash: "npm:^4.17.4" + checksum: 10/90af65174517b281ffe93fc398946f215a9c1a0a4fe15a50723755e347c4305a2c208ea07d6cee3108c2db22d82b8d5410c006b8dc9cd1a9b4a7d4eb9a727fc1 + languageName: node + linkType: hard + +"json-schema-merge-allof@npm:0.8.1": + version: 0.8.1 + resolution: "json-schema-merge-allof@npm:0.8.1" + dependencies: + compute-lcm: "npm:^1.1.2" + json-schema-compare: "npm:^0.2.2" + lodash: "npm:^4.17.20" + checksum: 10/a12d8690038cedd7391ac1f7d5897b2d7b8fb867174839ec7583f53b025ad0a90ccefab572bafdf0a5421b3434305c5797ffd6209edc835527b325e6a1a5d562 + languageName: node + linkType: hard + "json-schema-migrate@npm:^2.0.0": version: 2.0.0 resolution: "json-schema-migrate@npm:2.0.0" @@ -14528,6 +15224,16 @@ __metadata: languageName: node linkType: hard +"json-schema-to-ts@npm:^3.1.0": + version: 3.1.1 + resolution: "json-schema-to-ts@npm:3.1.1" + dependencies: + "@babel/runtime": "npm:^7.18.3" + ts-algebra: "npm:^2.0.0" + checksum: 10/9fd0490279d36ff8b4604cc10632df05e4e5f5ee1d0a77841c927623fc1e636c47eb4ace488018c4e9a2e7e5dde5520d0870e06dfc84b930d9c98c6eacd0f041 + languageName: node + linkType: hard + "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -14603,6 +15309,13 @@ __metadata: languageName: node linkType: hard +"jsonpath-rfc9535@npm:1.3.0": + version: 1.3.0 + resolution: "jsonpath-rfc9535@npm:1.3.0" + checksum: 10/9a0966d3ff62df710f0de08145606f150b628ccc482aa4a53e7f7a7bfef543668c4818022c4dfa00272032ca66369e6c7e4bd8d35bb680f4d7e806e8b3e069d8 + languageName: node + linkType: hard + "jsonpointer@npm:^5.0.0": version: 5.0.1 resolution: "jsonpointer@npm:5.0.1" @@ -14947,6 +15660,13 @@ __metadata: languageName: node linkType: hard +"liquid-json@npm:0.3.1": + version: 0.3.1 + resolution: "liquid-json@npm:0.3.1" + checksum: 10/c35bfb86d54b16e9ab2d2b679649a0a5ea162f043e7da356502f6a561114510d12753ecf54ba6e6b7e6b5e3def8a3781fcf29da0194c963684f3580fb362aab0 + languageName: node + linkType: hard + "listr2@npm:6.6.1": version: 6.6.1 resolution: "listr2@npm:6.6.1" @@ -15085,7 +15805,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21": +"lodash@npm:4.18.1, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4": version: 4.18.1 resolution: "lodash@npm:4.18.1" checksum: 10/306fea53dfd39dad1f03d45ba654a2405aebd35797b673077f401edb7df2543623dc44b9effbb98f69b32152295fff725a4cec99c684098947430600c6af0c3f @@ -16367,6 +17087,15 @@ __metadata: languageName: node linkType: hard +"mime-format@npm:2.0.2": + version: 2.0.2 + resolution: "mime-format@npm:2.0.2" + dependencies: + charset: "npm:^1.0.0" + checksum: 10/8dfcb4310f0fad63b85455314972ad6660f40fa527056e45e633c5956189db44c9c73568d03cb2d68fb12e3fbe88f92ad92ab695e22121c7a37a299b3d4d38cc + languageName: node + linkType: hard + "mime-types@npm:2.1.18": version: 2.1.18 resolution: "mime-types@npm:2.1.18" @@ -16403,6 +17132,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: 10/b2d31580deb58be89adaa1877cbbf152b7604b980fd7ef8f08b9e96bfedf7d605d9c23a8ba62aa12c8580b910cd7c1d27b7331d0f40f7a14e17d5a0bbec3b49f + languageName: node + linkType: hard + "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -16696,6 +17434,15 @@ __metadata: languageName: node linkType: hard +"mustache@npm:^4.2.0": + version: 4.2.0 + resolution: "mustache@npm:4.2.0" + bin: + mustache: bin/mustache + checksum: 10/6e668bd5803255ab0779c3983b9412b5c4f4f90e822230e0e8f414f5449ed7a137eed29430e835aa689886f663385cfe05f808eb34b16e1f3a95525889b05cd3 + languageName: node + linkType: hard + "mute-stream@npm:1.0.0": version: 1.0.0 resolution: "mute-stream@npm:1.0.0" @@ -16703,6 +17450,17 @@ __metadata: languageName: node linkType: hard +"mz@npm:^2.7.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: "npm:^1.0.0" + object-assign: "npm:^4.0.1" + thenify-all: "npm:^1.0.0" + checksum: 10/8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87 + languageName: node + linkType: hard + "nan@npm:~2.20.0": version: 2.20.0 resolution: "nan@npm:2.20.0" @@ -16770,6 +17528,13 @@ __metadata: languageName: node linkType: hard +"neotraverse@npm:0.6.15": + version: 0.6.15 + resolution: "neotraverse@npm:0.6.15" + checksum: 10/246bbd1bdc2ba4a871b3663d5fa8ec6600153c4d174d3aeeb1be9f0875d0619868cf8735e6344eb15fec168f71a42d675ab67d6ffc58bd97fdbb7ff4a5ba4725 + languageName: node + linkType: hard + "no-case@npm:^3.0.4": version: 3.0.4 resolution: "no-case@npm:3.0.4" @@ -16789,6 +17554,15 @@ __metadata: languageName: node linkType: hard +"node-addon-api@npm:^7.0.0": + version: 7.1.1 + resolution: "node-addon-api@npm:7.1.1" + dependencies: + node-gyp: "npm:latest" + checksum: 10/ee1e1ed6284a2f8cd1d59ac6175ecbabf8978dcf570345e9a8095a9d0a2b9ced591074ae77f9009287b00c402352b38aa9322a34f2199cdc9f567b842a636b94 + languageName: node + linkType: hard + "node-domexception@npm:^1.0.0": version: 1.0.0 resolution: "node-domexception@npm:1.0.0" @@ -16808,6 +17582,29 @@ __metadata: languageName: node linkType: hard +"node-fetch-h2@npm:^2.3.0": + version: 2.3.0 + resolution: "node-fetch-h2@npm:2.3.0" + dependencies: + http2-client: "npm:^1.2.5" + checksum: 10/9495b4e52cfb23241a1bca187640a15bcaacb7a0667a825074f9dbf2c1a9b10fedd5344d775d57dea8944eeee1049959a3f662492e2f57d6d5f34c7d296e7c65 + languageName: node + linkType: hard + +"node-fetch@npm:^2.6.1": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: "npm:^5.0.0" + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 10/b24f8a3dc937f388192e59bcf9d0857d7b6940a2496f328381641cb616efccc9866e89ec43f2ec956bbd6c3d3ee05524ce77fe7b29ccd34692b3a16f237d6676 + languageName: node + linkType: hard + "node-fetch@npm:^3.3.0": version: 3.3.2 resolution: "node-fetch@npm:3.3.2" @@ -16866,6 +17663,15 @@ __metadata: languageName: node linkType: hard +"node-readfiles@npm:^0.2.0": + version: 0.2.0 + resolution: "node-readfiles@npm:0.2.0" + dependencies: + es6-promise: "npm:^3.2.1" + checksum: 10/1db0f009955665e63983395f38c2479ef18b4ea8db1d12e03c155238ebe567f2e83981c0e47ac7c6d29ab4a3628082d5e02683e62d26e1af79852e0d8b77e3fb + languageName: node + linkType: hard + "node-releases@npm:^2.0.57": version: 2.0.57 resolution: "node-releases@npm:2.0.57" @@ -16996,6 +17802,80 @@ __metadata: languageName: node linkType: hard +"oas-kit-common@npm:^1.0.8": + version: 1.0.8 + resolution: "oas-kit-common@npm:1.0.8" + dependencies: + fast-safe-stringify: "npm:^2.0.7" + checksum: 10/576ab5f7c7fde551a9c780fde9392cb9dec5159b62c3ad4499e334bffdb12e089e97dccf2a9d0d1ac5be208f9d6f0e72da5ac3744d878134ef0177eed135cc52 + languageName: node + linkType: hard + +"oas-linter@npm:^3.2.2": + version: 3.2.2 + resolution: "oas-linter@npm:3.2.2" + dependencies: + "@exodus/schemasafe": "npm:^1.0.0-rc.2" + should: "npm:^13.2.1" + yaml: "npm:^1.10.0" + checksum: 10/8111c6c759648215b466e0e507e21e3c125762caf925dff28628c1ac0144bc82fe7f231a3249dd0400dff051574b4d5a7bbcc64b95d2f2f7e41a3377e859c395 + languageName: node + linkType: hard + +"oas-resolver-browser@npm:2.5.6": + version: 2.5.6 + resolution: "oas-resolver-browser@npm:2.5.6" + dependencies: + node-fetch-h2: "npm:^2.3.0" + oas-kit-common: "npm:^1.0.8" + path-browserify: "npm:^1.0.1" + reftools: "npm:^1.1.9" + yaml: "npm:^1.10.0" + yargs: "npm:^17.0.1" + bin: + resolve: resolve.js + checksum: 10/ecefe4414796a38c9d0e6ddd94712dabbbefcb65032e7feda17dd94e51cb660a3ee5880600e0772e110374030019d525bad7190006f6c8b80b42ec30e04bc9b9 + languageName: node + linkType: hard + +"oas-resolver@npm:^2.5.6": + version: 2.5.6 + resolution: "oas-resolver@npm:2.5.6" + dependencies: + node-fetch-h2: "npm:^2.3.0" + oas-kit-common: "npm:^1.0.8" + reftools: "npm:^1.1.9" + yaml: "npm:^1.10.0" + yargs: "npm:^17.0.1" + bin: + resolve: resolve.js + checksum: 10/9e20118bf722cb9e9f71a7079336ce705259eb380fa9c2a776d9647b93725314c23abdb6b7b3bc3c91a3559485bbb729447f72ce0c3ca9ce48281b8214a9612d + languageName: node + linkType: hard + +"oas-schema-walker@npm:^1.1.5": + version: 1.1.5 + resolution: "oas-schema-walker@npm:1.1.5" + checksum: 10/27bdeda1ebcf557b90cfb5d2ac3ca8e851f601d96215747c19ce0ae8f8458ad8012701b615fe313eacf4665b733f46ec12870f72d453251217b8a3ceb2be9abf + languageName: node + linkType: hard + +"oas-validator@npm:^5.0.8": + version: 5.0.8 + resolution: "oas-validator@npm:5.0.8" + dependencies: + call-me-maybe: "npm:^1.0.1" + oas-kit-common: "npm:^1.0.8" + oas-linter: "npm:^3.2.2" + oas-resolver: "npm:^2.5.6" + oas-schema-walker: "npm:^1.1.5" + reftools: "npm:^1.1.9" + should: "npm:^13.2.1" + yaml: "npm:^1.10.0" + checksum: 10/3e392d6c99659e58860b78ef1a46eaf8ad782449fe9a21ccb594b74f88a2c211d39ab9d016ec08c995d8728a250229aba84cb02ca3381f0fb2cc1e6782f4e21a + languageName: node + linkType: hard + "oauth-sign@npm:~0.9.0": version: 0.9.0 resolution: "oauth-sign@npm:0.9.0" @@ -17003,13 +17883,20 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4.1.1": +"object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f languageName: node linkType: hard +"object-hash@npm:3.0.0": + version: 3.0.0 + resolution: "object-hash@npm:3.0.0" + checksum: 10/f498d456a20512ba7be500cef4cf7b3c183cc72c65372a549c9a0e6dd78ce26f375e9b1315c07592d3fde8f10d5019986eba35970570d477ed9a2a702514432a + languageName: node + linkType: hard + "object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": version: 1.13.4 resolution: "object-inspect@npm:1.13.4" @@ -17167,6 +18054,41 @@ __metadata: languageName: node linkType: hard +"openapi-to-postmanv2@npm:^6.0.0": + version: 6.4.0 + resolution: "openapi-to-postmanv2@npm:6.4.0" + dependencies: + ajv: "npm:^8.11.0" + ajv-draft-04: "npm:1.0.0" + ajv-formats: "npm:2.1.1" + async: "npm:3.2.6" + commander: "npm:2.20.3" + graphlib: "npm:2.1.8" + js-yaml: "npm:4.3.0" + json-pointer: "npm:0.6.2" + json-schema-merge-allof: "npm:0.8.1" + lodash: "npm:4.18.1" + neotraverse: "npm:0.6.15" + oas-resolver-browser: "npm:2.5.6" + object-hash: "npm:3.0.0" + openapi-types: "npm:^12.1.3" + path-browserify: "npm:1.0.1" + postman-collection: "npm:^5.0.0" + swagger2openapi: "npm:7.0.8" + yaml: "npm:1.10.2" + bin: + openapi2postmanv2: bin/openapi2postmanv2.js + checksum: 10/bfc980f7aa525544cc4e80724b19776fa4bcd46c6391bacfae81121bbc6a1bf5c5b2d9c1e163869cd6b75ec57948733a431c1f560a1b32222c23c5e86aaeb8dd + languageName: node + linkType: hard + +"openapi-types@npm:^12.1.3": + version: 12.1.3 + resolution: "openapi-types@npm:12.1.3" + checksum: 10/9d1d7ed848622b63d0a4c3f881689161b99427133054e46b8e3241e137f1c78bb0031c5d80b420ee79ac2e91d2e727ffd6fc13c553d1b0488ddc8ad389dcbef8 + languageName: node + linkType: hard + "opener@npm:^1.5.2": version: 1.5.2 resolution: "opener@npm:1.5.2" @@ -17372,6 +18294,13 @@ __metadata: languageName: node linkType: hard +"pako@npm:^3.0.1": + version: 3.0.2 + resolution: "pako@npm:3.0.2" + checksum: 10/907cc3d7196724329065ee71a6ba482a14710e8db028f203b54398079bd1d4ae02e84edebc6f0cb270c85e172c108ec7d26d87efc8750d20378b28e719e69a12 + languageName: node + linkType: hard + "param-case@npm:^3.0.4": version: 3.0.4 resolution: "param-case@npm:3.0.4" @@ -17484,6 +18413,13 @@ __metadata: languageName: node linkType: hard +"path-browserify@npm:1.0.1, path-browserify@npm:^1.0.1": + version: 1.0.1 + resolution: "path-browserify@npm:1.0.1" + checksum: 10/7e7368a5207e7c6b9051ef045711d0dc3c2b6203e96057e408e6e74d09f383061010d2be95cb8593fe6258a767c3e9fc6b2bfc7ce8d48ae8c3d9f6994cca9ad8 + languageName: node + linkType: hard + "path-data-parser@npm:0.1.0, path-data-parser@npm:^0.1.0": version: 0.1.0 resolution: "path-data-parser@npm:0.1.0" @@ -17622,6 +18558,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.4": + version: 4.0.7 + resolution: "picomatch@npm:4.0.7" + checksum: 10/66e1df34bc39c72fa3756be4069f7887ea3e35e94bba1c3f6167763007698cb04b8a0a365161d186fda6e9571a2d3efb606b2966eb6a7dea6252911224dc2f48 + languageName: node + linkType: hard + "pidtree@npm:0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" @@ -17631,7 +18574,7 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.4": +"pirates@npm:^4.0.1, pirates@npm:^4.0.4": version: 4.0.7 resolution: "pirates@npm:4.0.7" checksum: 10/2427f371366081ae42feb58214f04805d6b41d6b84d74480ebcc9e0ddbd7105a139f7c653daeaf83ad8a1a77214cf07f64178e76de048128fec501eab3305a96 @@ -17692,6 +18635,13 @@ __metadata: languageName: node linkType: hard +"pluralize@npm:^8.0.0": + version: 8.0.0 + resolution: "pluralize@npm:8.0.0" + checksum: 10/17877fdfdb7ddb3639ce257ad73a7c51a30a966091e40f56ea9f2f545b5727ce548d4928f8cb3ce38e7dc0c5150407d318af6a4ed0ea5265d378473b4c2c61ec + languageName: node + linkType: hard + "points-on-curve@npm:0.2.0, points-on-curve@npm:^0.2.0": version: 0.2.0 resolution: "points-on-curve@npm:0.2.0" @@ -18550,6 +19500,47 @@ __metadata: languageName: node linkType: hard +"postman-code-generators@npm:^2.0.0": + version: 2.1.1 + resolution: "postman-code-generators@npm:2.1.1" + dependencies: + async: "npm:^3.2.2" + detect-package-manager: "npm:^3.0.2" + lodash: "npm:^4.17.21" + postman-collection: "npm:^5.0.0" + shelljs: "npm:^0.8.5" + checksum: 10/78cd4cd7c03e3c5ea04d94b108a0d03488f5e7ba28f49308ac4e9c1371dadfd5586ffa2f2ed6e1981e1d4e0b52c673cfba431649c9d731dbfe5efed37530d587 + languageName: node + linkType: hard + +"postman-collection@npm:^5.0.0, postman-collection@npm:^5.0.2": + version: 5.3.1 + resolution: "postman-collection@npm:5.3.1" + dependencies: + "@faker-js/faker": "npm:5.5.3" + file-type: "npm:3.9.0" + http-reasons: "npm:0.1.0" + iconv-lite: "npm:0.6.3" + liquid-json: "npm:0.3.1" + lodash: "npm:4.18.1" + mime: "npm:3.0.0" + mime-format: "npm:2.0.2" + postman-url-encoder: "npm:3.0.8" + semver: "npm:7.7.1" + uuid: "npm:8.3.2" + checksum: 10/e45c48f6cf0b4cd00ceddac70f5c10070be26400bdf0cab53a1f860bf147dfa133d92e5a39270c5d3bb3761af2818bb5d1d9e7a4e8f352b592f6648b78412dc5 + languageName: node + linkType: hard + +"postman-url-encoder@npm:3.0.8": + version: 3.0.8 + resolution: "postman-url-encoder@npm:3.0.8" + dependencies: + punycode: "npm:^2.3.1" + checksum: 10/9873c95137ef3f69081cfa466ca8ee8793385770a82889e15524592607f05782bcbf385a69afe31d5730de2886e8f0071728443baca0c5bbf32608dc8dda79b3 + languageName: node + linkType: hard + "prebuild-install@npm:^7.1.2": version: 7.1.3 resolution: "prebuild-install@npm:7.1.3" @@ -18614,7 +19605,7 @@ __metadata: languageName: node linkType: hard -"prism-react-renderer@npm:2, prism-react-renderer@npm:^2.3.0": +"prism-react-renderer@npm:2, prism-react-renderer@npm:^2.3.0, prism-react-renderer@npm:^2.4.0, prism-react-renderer@npm:^2.4.1": version: 2.4.1 resolution: "prism-react-renderer@npm:2.4.1" dependencies: @@ -18654,6 +19645,13 @@ __metadata: languageName: node linkType: hard +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: 10/dbaa7e8d1d5cf375c36963ff43116772a989ef2bb47c9bdee20f38fd8fc061119cf38140631cf90c781aca4d3f0f0d2c834711952b728953f04fd7d238f59f5b + languageName: node + linkType: hard + "promise-retry@npm:^2.0.1": version: 2.0.1 resolution: "promise-retry@npm:2.0.1" @@ -18742,6 +19740,13 @@ __metadata: languageName: node linkType: hard +"punycode@npm:^1.4.1": + version: 1.4.1 + resolution: "punycode@npm:1.4.1" + checksum: 10/af2700dde1a116791ff8301348ff344c47d6c224e875057237d1b5112035655fb07a6175cfdb8bf0e3a8cdfd2dc82b3a622e0aefd605566c0e949a6d0d1256a4 + languageName: node + linkType: hard + "punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.1": version: 2.3.1 resolution: "punycode@npm:2.3.1" @@ -18781,6 +19786,16 @@ __metadata: languageName: node linkType: hard +"qs@npm:^6.12.3": + version: 6.16.1 + resolution: "qs@npm:6.16.1" + dependencies: + es-define-property: "npm:^1.0.1" + side-channel: "npm:^1.1.1" + checksum: 10/e33e0a5ceecb7bef81ea1f855365482045f55ba55278f40b8dbf9ee18eae8ef82d44246fe4e4009d6b6f102cbf2885a34b88c4272536cd628cde40b4ac9912c2 + languageName: node + linkType: hard + "qs@npm:~6.14.0": version: 6.14.2 resolution: "qs@npm:6.14.2" @@ -18923,6 +19938,19 @@ __metadata: languageName: node linkType: hard +"react-hook-form@npm:^7.59.0": + version: 7.90.0 + resolution: "react-hook-form@npm:7.90.0" + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17 || ^18 || ^19 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/407576c6ffac5cbbe3c15b6a6e1274e2417e85a175b5de55f80c526367cd924f22c0c0f5d164f1e403420ac7b7c81f418322f9c1d3e6f02dc6eb7319a148a756 + languageName: node + linkType: hard + "react-is@npm:^16.13.1, react-is@npm:^16.6.0, react-is@npm:^16.7.0": version: 16.13.1 resolution: "react-is@npm:16.13.1" @@ -18953,6 +19981,27 @@ __metadata: languageName: node linkType: hard +"react-lifecycles-compat@npm:^3.0.0": + version: 3.0.4 + resolution: "react-lifecycles-compat@npm:3.0.4" + checksum: 10/c66b9c98c15cd6b0d0a4402df5f665e8cc7562fb7033c34508865bea51fd7b623f7139b5b7e708515d3cd665f264a6a9403e1fa7e6d61a05759066f5e9f07783 + languageName: node + linkType: hard + +"react-live@npm:^4.1.8": + version: 4.1.8 + resolution: "react-live@npm:4.1.8" + dependencies: + prism-react-renderer: "npm:^2.4.0" + sucrase: "npm:^3.35.0" + use-editable: "npm:^2.3.3" + peerDependencies: + react: ">=18.0.0" + react-dom: ">=18.0.0" + checksum: 10/594aa527940819d7c756f92d541d08a4ba476201594694bedd4327ed20e31c54c16b896404bcb8aa56ae137d489859a3e81004050cf5a8b8e7fb3fd8c9807a16 + languageName: node + linkType: hard + "react-loadable-ssr-addon-v5-slorber@npm:^1.0.3": version: 1.0.3 resolution: "react-loadable-ssr-addon-v5-slorber@npm:1.0.3" @@ -18976,6 +20025,50 @@ __metadata: languageName: node linkType: hard +"react-magic-dropzone@npm:^1.0.1": + version: 1.0.1 + resolution: "react-magic-dropzone@npm:1.0.1" + checksum: 10/7b5f049f44c3544e15002bba8e347b297d233fe3fabc3a4a78907959cc50e225edf9ef3237c689effe8f9ef75b750278c1486796e721f268f553c5fe89471239 + languageName: node + linkType: hard + +"react-markdown@npm:^10.1.0": + version: 10.1.0 + resolution: "react-markdown@npm:10.1.0" + dependencies: + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.0.0" + hast-util-to-jsx-runtime: "npm:^2.0.0" + html-url-attributes: "npm:^3.0.0" + mdast-util-to-hast: "npm:^13.0.0" + remark-parse: "npm:^11.0.0" + remark-rehype: "npm:^11.0.0" + unified: "npm:^11.0.0" + unist-util-visit: "npm:^5.0.0" + vfile: "npm:^6.0.0" + peerDependencies: + "@types/react": ">=18" + react: ">=18" + checksum: 10/886c037d18266e94750abbc00c6096435bccd4da5f2d1727984bcbdf83e9f2a5cc9a6b0eecfe6c30456dc26546fee41c7f6aecbf176e6d7453963df4abefd7df + languageName: node + linkType: hard + +"react-modal@npm:^3.16.3": + version: 3.16.3 + resolution: "react-modal@npm:3.16.3" + dependencies: + exenv: "npm:^1.2.0" + prop-types: "npm:^15.7.2" + react-lifecycles-compat: "npm:^3.0.0" + warning: "npm:^4.0.3" + peerDependencies: + react: ^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19 + react-dom: ^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19 + checksum: 10/2882ced4ede7af4c1e8bab5b556b61c05525639200e3d332b001c7a97b9e9e0db9129fc9d93761b32c8351a3a474490904584bac9e5a84f068596c620d22a209 + languageName: node + linkType: hard + "react-player@npm:^2.16.0": version: 2.16.0 resolution: "react-player@npm:2.16.0" @@ -18991,6 +20084,25 @@ __metadata: languageName: node linkType: hard +"react-redux@npm:^9.2.0": + version: 9.3.0 + resolution: "react-redux@npm:9.3.0" + dependencies: + "@types/use-sync-external-store": "npm:^0.0.6" + use-sync-external-store: "npm:^1.4.0" + peerDependencies: + "@types/react": ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + redux: + optional: true + checksum: 10/3384e98e382ddb2f2a8f35bc7145fabd60f2fb0ccd999df5587bd926de9590f52cd3a29c4a01fe191d710a9c8f9d7293efff8d5fc32debc84de25c911b70fc45 + languageName: node + linkType: hard + "react-router-config@npm:^5.1.1": version: 5.1.1 resolution: "react-router-config@npm:5.1.1" @@ -19110,6 +20222,13 @@ __metadata: languageName: node linkType: hard +"readdirp@npm:^5.0.0": + version: 5.1.1 + resolution: "readdirp@npm:5.1.1" + checksum: 10/4a6a61272c6db332db361166b42be34ce8480542073061f04f405ed2f703e517e90dfafe33843f647e91d20090c575aee04a823e9ed9d9d9a01ec3603ca45a8b + languageName: node + linkType: hard + "readdirp@npm:~3.6.0": version: 3.6.0 resolution: "readdirp@npm:3.6.0" @@ -19119,6 +20238,15 @@ __metadata: languageName: node linkType: hard +"rechoir@npm:^0.6.2": + version: 0.6.2 + resolution: "rechoir@npm:0.6.2" + dependencies: + resolve: "npm:^1.1.6" + checksum: 10/fe76bf9c21875ac16e235defedd7cbd34f333c02a92546142b7911a0f7c7059d2e16f441fe6fb9ae203f459c05a31b2bcf26202896d89e390eda7514d5d2702b + languageName: node + linkType: hard + "recma-build-jsx@npm:^1.0.0": version: 1.0.0 resolution: "recma-build-jsx@npm:1.0.0" @@ -19177,6 +20305,22 @@ __metadata: languageName: node linkType: hard +"redux-thunk@npm:^3.1.0": + version: 3.1.0 + resolution: "redux-thunk@npm:3.1.0" + peerDependencies: + redux: ^5.0.0 + checksum: 10/38c563db5f0bbec90d2e65cc27f3c870c1b6102e0c071258734fac41cb0e51d31d894125815c2f4133b20aff231f51f028ad99bccc05a7e3249f1a5d5a959ed3 + languageName: node + linkType: hard + +"redux@npm:^5.0.1": + version: 5.0.1 + resolution: "redux@npm:5.0.1" + checksum: 10/a373f9ed65693ead58bea5ef61c1d6bef39da9f2706db3be6f84815f3a1283230ecd1184efb1b3daa7f807d8211b0181564ca8f336fc6ee0b1e2fa0ba06737c2 + languageName: node + linkType: hard + "refa@npm:^0.11.0": version: 0.11.0 resolution: "refa@npm:0.11.0" @@ -19209,6 +20353,13 @@ __metadata: languageName: node linkType: hard +"reftools@npm:^1.1.9": + version: 1.1.9 + resolution: "reftools@npm:1.1.9" + checksum: 10/6a124748f1c4af84bf651c31c76b7ed0a7f766533530a80cbf2d2517b26e6bfaadc0b1b3e399675343328ab861ab04881e64c8bc3c2f40fc7be27a8aacf8775e + languageName: node + linkType: hard + "regenerate-unicode-properties@npm:^10.2.0": version: 10.2.0 resolution: "regenerate-unicode-properties@npm:10.2.0" @@ -19365,7 +20516,7 @@ __metadata: languageName: node linkType: hard -"remark-gfm@npm:^4.0.0": +"remark-gfm@npm:4.0.1, remark-gfm@npm:^4.0.0": version: 4.0.1 resolution: "remark-gfm@npm:4.0.1" dependencies: @@ -19563,6 +20714,13 @@ __metadata: languageName: node linkType: hard +"reselect@npm:^5.1.0": + version: 5.3.0 + resolution: "reselect@npm:5.3.0" + checksum: 10/743d82c7012133d035e13343cb33e6b45c26cd0b0f95868d692ac9736973b1b8050f28938c1d36f51105926a1a947a0f56c4f52d6c66a61db4995535efb3837b + languageName: node + linkType: hard + "resolve-alpn@npm:^1.2.0": version: 1.2.1 resolution: "resolve-alpn@npm:1.2.1" @@ -19607,6 +20765,20 @@ __metadata: languageName: node linkType: hard +"resolve@npm:^1.1.6": + version: 1.22.13 + resolution: "resolve@npm:1.22.13" + dependencies: + es-errors: "npm:^1.3.0" + is-core-module: "npm:^2.17.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/4fc4242f448c5a679921bbac6e74268ca76893d7379cb9cfaa49f40ce6b1cea884c2df901d0617c92d927375fe66a05ccbbf17bbb0262cdcd6cb196e33fa1baa + languageName: node + linkType: hard + "resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:^1.3.2": version: 1.22.10 resolution: "resolve@npm:1.22.10" @@ -19633,6 +20805,20 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin": + version: 1.22.13 + resolution: "resolve@patch:resolve@npm%3A1.22.13#optional!builtin::version=1.22.13&hash=c3c19d" + dependencies: + es-errors: "npm:^1.3.0" + is-core-module: "npm:^2.17.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/f0b8e2c897327b5edc4b277c90d19c7bd06975817183ef51f5c79367b8b8e6d637f6ca20ba6eb3ef964944157cc2eb6970fef1c2202edbe65e6e7be4f268fc7f + languageName: node + linkType: hard + "resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.3.2#optional!builtin": version: 1.22.10 resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d" @@ -19875,6 +21061,44 @@ __metadata: languageName: node linkType: hard +"sass-loader@npm:^17.0.0": + version: 17.0.1 + resolution: "sass-loader@npm:17.0.1" + peerDependencies: + "@rspack/core": 0.x || ^1.0.0 || ^2.0.0-0 + sass: ^1.3.0 + sass-embedded: "*" + webpack: ^5.0.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + sass: + optional: true + sass-embedded: + optional: true + webpack: + optional: true + checksum: 10/c5e97f75f6dfab2b8fc9a9ea1f75005b1333475bf7142422ff39b2b610963c2cee9049f915c1e63d5a57b9da0ea7135ec364f3e764a48aaa47f787b07220089f + languageName: node + linkType: hard + +"sass@npm:^1.89.2": + version: 1.105.2 + resolution: "sass@npm:1.105.2" + dependencies: + "@parcel/watcher": "npm:^2.4.1" + chokidar: "npm:^5.0.0" + immutable: "npm:^5.1.5" + source-map-js: "npm:>=0.6.2 <2.0.0" + dependenciesMeta: + "@parcel/watcher": + optional: true + bin: + sass: sass.js + checksum: 10/56171caf55cefcfa1fe7b17c993ac2255054e0f13e40cac222bae43d927519c8d6b32773ebf80ead1f1823ffaf5cb878561d9700962d912e0a477a042e71a4ab + languageName: node + linkType: hard + "sax@npm:^1.2.4": version: 1.4.1 resolution: "sax@npm:1.4.1" @@ -19985,6 +21209,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:7.7.1": + version: 7.7.1 + resolution: "semver@npm:7.7.1" + bin: + semver: bin/semver.js + checksum: 10/4cfa1eb91ef3751e20fc52e47a935a0118d56d6f15a837ab814da0c150778ba2ca4f1a4d9068b33070ea4273629e615066664c2cfcd7c272caf7a8a0f6518b2c + languageName: node + linkType: hard + "semver@npm:^5.4.1": version: 5.7.2 resolution: "semver@npm:5.7.2" @@ -20174,6 +21407,75 @@ __metadata: languageName: node linkType: hard +"shelljs@npm:^0.8.5": + version: 0.8.5 + resolution: "shelljs@npm:0.8.5" + dependencies: + glob: "npm:^7.0.0" + interpret: "npm:^1.0.0" + rechoir: "npm:^0.6.2" + bin: + shjs: bin/shjs + checksum: 10/f2178274b97b44332bbe9ddb78161137054f55ecf701c7a99db9552cb5478fe279ad5f5131d8a7c2f0730e01ccf0c629d01094143f0541962ce1a3d0243d23f7 + languageName: node + linkType: hard + +"should-equal@npm:^2.0.0": + version: 2.0.0 + resolution: "should-equal@npm:2.0.0" + dependencies: + should-type: "npm:^1.4.0" + checksum: 10/700e38f7815937f15e415b29df45ae22929c98c87979eb71e3a1085ba94cd0c601f435272eef3c9399ff74fa2d424df37ff03672f61ceda21630edcc77810744 + languageName: node + linkType: hard + +"should-format@npm:^3.0.3": + version: 3.0.3 + resolution: "should-format@npm:3.0.3" + dependencies: + should-type: "npm:^1.3.0" + should-type-adaptors: "npm:^1.0.1" + checksum: 10/099157f4f9bf458919bce8e981438e139c21789bb45f8b5cd8cf4bf01c5df498f1a1e666211bfd906b72b77d645a187563554ab38af807f8cd1aaf270e326186 + languageName: node + linkType: hard + +"should-type-adaptors@npm:^1.0.1": + version: 1.1.0 + resolution: "should-type-adaptors@npm:1.1.0" + dependencies: + should-type: "npm:^1.3.0" + should-util: "npm:^1.0.0" + checksum: 10/ca0fc7b24b916373e987b46e0c54db4aa824a80090a2fbff201679fd059240f4efabe415ffef9f5cfb99d85bf4241bdc3f212a9939724413203258a7dd73c24e + languageName: node + linkType: hard + +"should-type@npm:^1.3.0, should-type@npm:^1.4.0": + version: 1.4.0 + resolution: "should-type@npm:1.4.0" + checksum: 10/3e99a930fd43a47b0967fb5e8d0be31d9e2339c49267d3eabae014717012f4bd7cd942686fc49675114982240dcbfedba94ef49d0811b8f491c7cd74343bf97f + languageName: node + linkType: hard + +"should-util@npm:^1.0.0": + version: 1.0.1 + resolution: "should-util@npm:1.0.1" + checksum: 10/c3be15e0fdc851f8338676b3f8b590d330bbea94ec41c1343cc9983dea295915073f69a215795454b6adda6579ec8927c7c0ab178b83f9f11a0247ccdba53381 + languageName: node + linkType: hard + +"should@npm:^13.2.1": + version: 13.2.3 + resolution: "should@npm:13.2.3" + dependencies: + should-equal: "npm:^2.0.0" + should-format: "npm:^3.0.3" + should-type: "npm:^1.4.0" + should-type-adaptors: "npm:^1.0.1" + should-util: "npm:^1.0.0" + checksum: 10/4d3da94f11fee3db17be09673a73cd1939b0b75ebde102161eecef5559991deed691071ccab1d9289f4b69a45ef1a9d2362686a5f1ac530a43161d5832f6aa7d + languageName: node + linkType: hard + "side-channel-list@npm:^1.0.0": version: 1.0.0 resolution: "side-channel-list@npm:1.0.0" @@ -20369,6 +21671,13 @@ __metadata: languageName: node linkType: hard +"slugify@npm:^1.6.6": + version: 1.6.9 + resolution: "slugify@npm:1.6.9" + checksum: 10/101599a77585ac3b3fe49662db8666260c8ee1c5090d28a13c6ecabf16b42057e69ea209654797f46b13faee4c53224f48784044bd734a9443b7b88e0357110e + languageName: node + linkType: hard + "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -20432,6 +21741,13 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:>=0.6.2 <2.0.0": + version: 1.2.2 + resolution: "source-map-js@npm:1.2.2" + checksum: 10/4807c894bb6280c8b84886159b96080e3996f42c6e8015e647881edfd4f955f6024ceebb8bb40d33ce8b106e24b2e29c133575e1c60c01c8aae57a05fdf17761 + languageName: node + linkType: hard + "source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.1": version: 1.2.1 resolution: "source-map-js@npm:1.2.1" @@ -21041,6 +22357,24 @@ __metadata: languageName: node linkType: hard +"sucrase@npm:^3.35.0": + version: 3.35.1 + resolution: "sucrase@npm:3.35.1" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.2" + commander: "npm:^4.0.0" + lines-and-columns: "npm:^1.1.6" + mz: "npm:^2.7.0" + pirates: "npm:^4.0.1" + tinyglobby: "npm:^0.2.11" + ts-interface-checker: "npm:^0.1.9" + bin: + sucrase: bin/sucrase + sucrase-node: bin/sucrase-node + checksum: 10/539f5c6ebc1ff8d449a89eb52b8c8944a730b9840ddadbd299a7d89ebcf16c3f4bc9aa59e1f2e112a502e5cf1508f7e02065f0e97c0435eb9a7058e997dfff5a + languageName: node + linkType: hard + "supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -21107,6 +22441,29 @@ __metadata: languageName: node linkType: hard +"swagger2openapi@npm:7.0.8, swagger2openapi@npm:^7.0.8": + version: 7.0.8 + resolution: "swagger2openapi@npm:7.0.8" + dependencies: + call-me-maybe: "npm:^1.0.1" + node-fetch: "npm:^2.6.1" + node-fetch-h2: "npm:^2.3.0" + node-readfiles: "npm:^0.2.0" + oas-kit-common: "npm:^1.0.8" + oas-resolver: "npm:^2.5.6" + oas-schema-walker: "npm:^1.1.5" + oas-validator: "npm:^5.0.8" + reftools: "npm:^1.1.9" + yaml: "npm:^1.10.0" + yargs: "npm:^17.0.1" + bin: + boast: boast.js + oas-validate: oas-validate.js + swagger2openapi: swagger2openapi.js + checksum: 10/f95fe71d306ff2b5763aaa488465c4f111810a6a19f233d3ed63495a544c040d544b914921d8362e31137290bb249585e07944bd91fbb1ecad2ad6e60e9c5a72 + languageName: node + linkType: hard + "swc-loader@npm:^0.2.6": version: 0.2.6 resolution: "swc-loader@npm:0.2.6" @@ -21311,6 +22668,24 @@ __metadata: languageName: node linkType: hard +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: "npm:>= 3.1.0 < 4" + checksum: 10/dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: "npm:^1.0.0" + checksum: 10/486e1283a867440a904e36741ff1a177faa827cf94d69506f7e3ae4187b9afdf9ec368b3d8da225c192bfe2eb943f3f0080594156bf39f21b57cd1411e2e7f6d + languageName: node + linkType: hard + "thingies@npm:^2.5.0": version: 2.6.0 resolution: "thingies@npm:2.6.0" @@ -21348,6 +22723,16 @@ __metadata: languageName: node linkType: hard +"tinyglobby@npm:^0.2.11": + version: 0.2.17 + resolution: "tinyglobby@npm:0.2.17" + dependencies: + fdir: "npm:^6.5.0" + picomatch: "npm:^4.0.4" + checksum: 10/f85e8a217d675c3f78d5f0ad25ea4557e7e023ed13ddc2b014da10bd0312eea53a34cd52356af07ccdff777f1243012547656282a4ca70936f68bf5065fbaa71 + languageName: node + linkType: hard + "tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13": version: 0.2.14 resolution: "tinyglobby@npm:0.2.14" @@ -21423,6 +22808,13 @@ __metadata: languageName: node linkType: hard +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 10/8f1f5aa6cb232f9e1bdc86f485f916b7aa38caee8a778b378ffec0b70d9307873f253f5cbadbe2955ece2ac5c83d0dc14a77513166ccd0a0c7fe197e21396695 + languageName: node + linkType: hard + "tree-dump@npm:^1.0.3, tree-dump@npm:^1.1.0": version: 1.1.0 resolution: "tree-dump@npm:1.1.0" @@ -21481,6 +22873,13 @@ __metadata: languageName: node linkType: hard +"ts-algebra@npm:^2.0.0": + version: 2.0.0 + resolution: "ts-algebra@npm:2.0.0" + checksum: 10/b970eef64ca9594a77337e03b9c1732c1b7a0d2c4d316638b654e921a47b40c4cc42f41821445e9e54408d5dfdf4ecca27ffa59554373033b9c92dee8b52066d + languageName: node + linkType: hard + "ts-dedent@npm:^2.2.0": version: 2.2.0 resolution: "ts-dedent@npm:2.2.0" @@ -21488,6 +22887,13 @@ __metadata: languageName: node linkType: hard +"ts-interface-checker@npm:^0.1.9": + version: 0.1.13 + resolution: "ts-interface-checker@npm:0.1.13" + checksum: 10/9f7346b9e25bade7a1050c001ec5a4f7023909c0e1644c5a96ae20703a131627f081479e6622a4ecee2177283d0069e651e507bedadd3904fc4010ab28ffce00 + languageName: node + linkType: hard + "ts-jest@npm:^29.0.3": version: 29.3.4 resolution: "ts-jest@npm:29.3.4" @@ -21785,6 +23191,13 @@ __metadata: languageName: node linkType: hard +"undici@npm:^6.28.0": + version: 6.29.1 + resolution: "undici@npm:6.29.1" + checksum: 10/92acb64ec190fe3499dec69830fdfc48e28f6f19627bad7563cfd57c37b4e95379c12b8ac15a2e6a8739eaac358f17503a229c160d3dc8774141b1e270d8aa57 + languageName: node + linkType: hard + "unherit@npm:^1.0.4": version: 1.1.3 resolution: "unherit@npm:1.1.3" @@ -22152,6 +23565,34 @@ __metadata: languageName: node linkType: hard +"url@npm:^0.11.4": + version: 0.11.4 + resolution: "url@npm:0.11.4" + dependencies: + punycode: "npm:^1.4.1" + qs: "npm:^6.12.3" + checksum: 10/e787d070f0756518b982a4653ef6cdf4d9030d8691eee2d483344faf2b530b71d302287fa63b292299455fea5075c502a5ad5f920cb790e95605847f957a65e4 + languageName: node + linkType: hard + +"use-editable@npm:^2.3.3": + version: 2.3.3 + resolution: "use-editable@npm:2.3.3" + peerDependencies: + react: ">= 16.8.0" + checksum: 10/626ae826f0d1258d71026d0fc8cc96613f0b8f38b7bb489d6376f678cddc7e37db008cf87e0653c40116be984266dbc93bd9603e55413b38de8ad91ec8882545 + languageName: node + linkType: hard + +"use-sync-external-store@npm:^1.4.0": + version: 1.7.0 + resolution: "use-sync-external-store@npm:1.7.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10/cc102e193d079dda118846627f97ac8d34059ae7e1112188ed6330bd42a6b31c209cbb39923d4d663ddc42e5969913015778397131fcd3249909756c88ba9906 + languageName: node + linkType: hard + "util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -22180,6 +23621,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:8.3.2, uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 10/9a5f7aa1d6f56dd1e8d5f2478f855f25c645e64e26e347a98e98d95781d5ed20062d6cca2eecb58ba7c84bc3910be95c0451ef4161906abaab44f9cb68ffbdd1 + languageName: node + linkType: hard + "uuid@npm:^11.1.0": version: 11.1.1 resolution: "uuid@npm:11.1.1" @@ -22198,15 +23648,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^8.3.2": - version: 8.3.2 - resolution: "uuid@npm:8.3.2" - bin: - uuid: dist/bin/uuid - checksum: 10/9a5f7aa1d6f56dd1e8d5f2478f855f25c645e64e26e347a98e98d95781d5ed20062d6cca2eecb58ba7c84bc3910be95c0451ef4161906abaab44f9cb68ffbdd1 - languageName: node - linkType: hard - "v8-to-istanbul@npm:^9.0.1": version: 9.3.0 resolution: "v8-to-istanbul@npm:9.3.0" @@ -22228,6 +23669,46 @@ __metadata: languageName: node linkType: hard +"validate.io-array@npm:^1.0.3": + version: 1.0.6 + resolution: "validate.io-array@npm:1.0.6" + checksum: 10/54eca83ebc702e3e46499f9d9e77287a95ae25c4e727cd2fafee29c7333b3a36cca0c5d8f090b9406262786de80750fba85e7e7ef41e20bf8cc67d5570de449b + languageName: node + linkType: hard + +"validate.io-function@npm:^1.0.2": + version: 1.0.2 + resolution: "validate.io-function@npm:1.0.2" + checksum: 10/e4cce2479a20cb7c42e8630c777fb107059c27bc32925f769e3a73ca5fd62b4892d897b3c80227e14d5fcd1c5b7d05544e0579d63e59f14034c0052cda7f7c44 + languageName: node + linkType: hard + +"validate.io-integer-array@npm:^1.0.0": + version: 1.0.0 + resolution: "validate.io-integer-array@npm:1.0.0" + dependencies: + validate.io-array: "npm:^1.0.3" + validate.io-integer: "npm:^1.0.4" + checksum: 10/5f6d7fab8df7d2bf546a05e830201768464605539c75a2c2417b632b4411a00df84b462f81eac75e1be95303e7e0ac92f244c137424739f4e15cd21c2eb52c7f + languageName: node + linkType: hard + +"validate.io-integer@npm:^1.0.4": + version: 1.0.5 + resolution: "validate.io-integer@npm:1.0.5" + dependencies: + validate.io-number: "npm:^1.0.3" + checksum: 10/88b3f8bb5a5277a95305d64abbfc437079220ce4f57a148cc6113e7ccec03dd86b10a69d413982602aa90a62b8d516148a78716f550dcd3aff863ac1c2a7a5e6 + languageName: node + linkType: hard + +"validate.io-number@npm:^1.0.3": + version: 1.0.3 + resolution: "validate.io-number@npm:1.0.3" + checksum: 10/42418aeb6c969efa745475154fe576809b02eccd0961aad0421b090d6e7a12d23a3e28b0d5dddd2c6347c1a6bdccb82bba5048c716131cd20207244d50e07282 + languageName: node + linkType: hard + "value-equal@npm:^1.0.1": version: 1.0.1 resolution: "value-equal@npm:1.0.1" @@ -22409,6 +23890,15 @@ __metadata: languageName: node linkType: hard +"warning@npm:^4.0.3": + version: 4.0.3 + resolution: "warning@npm:4.0.3" + dependencies: + loose-envify: "npm:^1.0.0" + checksum: 10/e7842aff036e2e07ce7a6cc3225e707775b969fe3d0577ad64bd24660e3a9ce3017f0b8c22a136566dcd3a151f37b8ed1ccee103b3bd82bd8a571bf80b247bc4 + languageName: node + linkType: hard + "watchpack@npm:^2.5.1": version: 2.5.1 resolution: "watchpack@npm:2.5.1" @@ -22451,6 +23941,13 @@ __metadata: languageName: node linkType: hard +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: 10/b65b9f8d6854572a84a5c69615152b63371395f0c5dcd6729c45789052296df54314db2bc3e977df41705eacb8bc79c247cee139a63fa695192f95816ed528ad + languageName: node + linkType: hard + "webidl-conversions@npm:^4.0.2": version: 4.0.2 resolution: "webidl-conversions@npm:4.0.2" @@ -22649,6 +24146,16 @@ __metadata: languageName: node linkType: hard +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: "npm:~0.0.3" + webidl-conversions: "npm:^3.0.0" + checksum: 10/f95adbc1e80820828b45cc671d97da7cd5e4ef9deb426c31bcd5ab00dc7103042291613b3ef3caec0a2335ed09e0d5ed026c940755dbb6d404e2b27f940fdf07 + languageName: node + linkType: hard + "whatwg-url@npm:^7.0.0": version: 7.1.0 resolution: "whatwg-url@npm:7.1.0" @@ -23126,6 +24633,15 @@ __metadata: languageName: node linkType: hard +"xml-formatter@npm:^3.6.6": + version: 3.7.0 + resolution: "xml-formatter@npm:3.7.0" + dependencies: + xml-parser-xo: "npm:^4.1.5" + checksum: 10/8ddbd08e483d2a93a59c4a6f8b4845230bdea184f0e2d356d1dd11833738d2107cf43fae213f7ab8bb650da388916224887a1e846778bf3afbee9d3bbf05383a + languageName: node + linkType: hard + "xml-js@npm:^1.6.11": version: 1.6.11 resolution: "xml-js@npm:1.6.11" @@ -23137,6 +24653,13 @@ __metadata: languageName: node linkType: hard +"xml-parser-xo@npm:^4.1.5": + version: 4.1.6 + resolution: "xml-parser-xo@npm:4.1.6" + checksum: 10/ff035a42d87c636051fcbdb47c0ed07056be92cd5e079f9e52dc79cc749ffc2ba63ccc08eeec3f5814c3e67bb299680a02430c15d0e315f559c7eb5b1ef239da + languageName: node + linkType: hard + "xtend@npm:^4.0.0, xtend@npm:^4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" @@ -23172,20 +24695,27 @@ __metadata: languageName: node linkType: hard -"yaml@npm:2.3.1": - version: 2.3.1 - resolution: "yaml@npm:2.3.1" - checksum: 10/66501d597e43766eb94dc175d28ec8b2c63087d6a78783e59b4218eee32b9172740f9f27d54b7bc0ca8af61422f7134929f9974faeaac99d583787e793852fd2 +"yaml-ast-parser@npm:0.0.43": + version: 0.0.43 + resolution: "yaml-ast-parser@npm:0.0.43" + checksum: 10/a54d00c8e0716a392c6e76eee965b3b4bba434494196490946e416fc47f20a1d89820461afacd9431edbb8209e28fce33bcff1fb42dd83f90e51fc31e80251c9 languageName: node linkType: hard -"yaml@npm:^1.10.0": +"yaml@npm:1.10.2, yaml@npm:^1.10.0": version: 1.10.2 resolution: "yaml@npm:1.10.2" checksum: 10/e088b37b4d4885b70b50c9fa1b7e54bd2e27f5c87205f9deaffd1fb293ab263d9c964feadb9817a7b129a5bf30a06582cb08750f810568ecc14f3cdbabb79cb3 languageName: node linkType: hard +"yaml@npm:2.3.1": + version: 2.3.1 + resolution: "yaml@npm:2.3.1" + checksum: 10/66501d597e43766eb94dc175d28ec8b2c63087d6a78783e59b4218eee32b9172740f9f27d54b7bc0ca8af61422f7134929f9974faeaac99d583787e793852fd2 + languageName: node + linkType: hard + "yaml@npm:^2.7.1": version: 2.8.0 resolution: "yaml@npm:2.8.0" @@ -23209,6 +24739,21 @@ __metadata: languageName: node linkType: hard +"yargs@npm:^17.0.1": + version: 17.7.3 + resolution: "yargs@npm:17.7.3" + dependencies: + cliui: "npm:^8.0.1" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.3" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^21.1.1" + checksum: 10/a3826798c03b159e139d0580a3b2733953889a9a1bac8e4e1ca7a1a249b55315b213c323a6a1dbdb305f6e59496a9eaa810742c87e34abcf1a0584d8f59212a1 + languageName: node + linkType: hard + "yargs@npm:^17.3.1": version: 17.7.2 resolution: "yargs@npm:17.7.2"