From 820fa2c24d9bfbaedc5ab60a8cb3e3c71a520c56 Mon Sep 17 00:00:00 2001 From: b-long Date: Thu, 5 Jun 2025 14:44:34 -0400 Subject: [PATCH 01/37] Run 'npm add docusaurus-theme-openapi-docs' --- package-lock.json | 3425 +++++++++++++++++++++++++++++++++++++++++++-- package.json | 1 + 2 files changed, 3338 insertions(+), 88 deletions(-) diff --git a/package-lock.json b/package-lock.json index fbb6126..6049694 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,7 @@ "docusaurus-lunr-search": "^3.6.0", "docusaurus-plugin-remote-content": "^4.0.0", "docusaurus-theme-github-codeblock": "^2.0.2", + "docusaurus-theme-openapi-docs": "^4.4.0", "gray-matter": "^4.0.3", "minimatch": "^10.0.1", "octokit": "^4.0.2", @@ -426,6 +427,24 @@ "url": "https://github.com/sponsors/antfu" } }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz", + "integrity": "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + } + }, "node_modules/@babel/code-frame": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", @@ -3967,6 +3986,20 @@ "node": ">=18.0" } }, + "node_modules/@exodus/schemasafe": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", + "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", + "license": "MIT", + "peer": true + }, + "node_modules/@faker-js/faker": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-5.5.3.tgz", + "integrity": "sha512-R11tGE6yIFwqpaIqcfkcg7AICXzFg14+5h5v0TfF/9+RMDL6jhzCy/pxHVOfbALGdtVYdt6JdR21tuxEgl34dw==", + "deprecated": "Please update to a newer version.", + "license": "MIT" + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -3980,6 +4013,17 @@ "@hapi/hoek": "^9.0.0" } }, + "node_modules/@hookform/error-message": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@hookform/error-message/-/error-message-2.0.1.tgz", + "integrity": "sha512-U410sAr92xgxT1idlu9WWOVjndxLdgPUHEB8Schr27C9eh7/xUnITWpCMF93s+lGiG++D4JnbSnrb5A21AdSNg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0", + "react-hook-form": "^7.0.0" + } + }, "node_modules/@iconify-icon/react": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@iconify-icon/react/-/react-2.1.0.tgz", @@ -4170,6 +4214,13 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "license": "MIT", + "peer": true + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", @@ -4648,6 +4699,322 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/@parcel/watcher/node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT", + "optional": true + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -4699,6 +5066,96 @@ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==" }, + "node_modules/@redocly/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js-replace": "^1.0.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@redocly/config": { + "version": "0.22.2", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.22.2.tgz", + "integrity": "sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@redocly/openapi-core": { + "version": "1.34.3", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.34.3.tgz", + "integrity": "sha512-3arRdUp1fNx55itnjKiUhO6t4Mf91TsrTIYINDNLAZPS0TPd5YpiXRctwjel0qqWoOOhjA34cZ3m4dksLDFUYg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@redocly/ajv": "^8.11.2", + "@redocly/config": "^0.22.0", + "colorette": "^1.2.0", + "https-proxy-agent": "^7.0.5", + "js-levenshtein": "^1.1.6", + "js-yaml": "^4.1.0", + "minimatch": "^5.0.1", + "pluralize": "^8.0.0", + "yaml-ast-parser": "0.0.43" + }, + "engines": { + "node": ">=18.17.0", + "npm": ">=9.5.0" + } + }, + "node_modules/@redocly/openapi-core/node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "license": "MIT", + "peer": true + }, + "node_modules/@redocly/openapi-core/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", + "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==", + "license": "MIT", + "dependencies": { + "immer": "^9.0.21", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.8" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.0.2" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", @@ -5386,10 +5843,20 @@ "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", + "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", + "license": "MIT", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", @@ -5513,6 +5980,18 @@ "csstype": "^3.0.2" } }, + "node_modules/@types/react-redux": { + "version": "7.1.34", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.34.tgz", + "integrity": "sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==", + "license": "MIT", + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + } + }, "node_modules/@types/react-router": { "version": "5.1.20", "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", @@ -5849,6 +6328,16 @@ "node": ">= 10.0.0" } }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -5876,6 +6365,21 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", @@ -5971,6 +6475,15 @@ "@algolia/requester-common": "4.24.0" } }, + "node_modules/allof-merge": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/allof-merge/-/allof-merge-0.6.6.tgz", + "integrity": "sha512-116eZBf2he0/J4Tl7EYMz96I5Anaeio+VL0j/H2yxW9CoYQAMMv8gYcwkVRoO7XfIOv/qzSTfVzDVGAYxKFi3g==", + "license": "MIT", + "dependencies": { + "json-crawl": "^0.5.3" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -6055,6 +6568,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -6103,6 +6622,13 @@ "astring": "bin/astring" } }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "license": "MIT", + "peer": true + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -6610,6 +7136,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "license": "MIT", + "peer": true + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -6736,6 +7269,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/charset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/charset/-/charset-1.0.1.tgz", + "integrity": "sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/cheerio": { "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", @@ -6918,6 +7460,61 @@ "node": ">=8" } }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT", + "peer": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -7098,6 +7695,29 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "node_modules/compute-gcd": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz", + "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==", + "peer": true, + "dependencies": { + "validate.io-array": "^1.0.3", + "validate.io-function": "^1.0.2", + "validate.io-integer-array": "^1.0.0" + } + }, + "node_modules/compute-lcm": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz", + "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==", + "peer": true, + "dependencies": { + "compute-gcd": "^1.2.1", + "validate.io-array": "^1.0.3", + "validate.io-function": "^1.0.2", + "validate.io-integer-array": "^1.0.0" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -7353,6 +7973,12 @@ "node": ">= 8" } }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "license": "MIT" + }, "node_modules/crypto-random-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", @@ -8507,6 +9133,18 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, + "node_modules/detect-package-manager": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-3.0.2.tgz", + "integrity": "sha512-8JFjJHutStYrfWwzfretQoyNGoZVW1Fsrp4JO9spa7h/fBfwgTMEIy4/LBzRDGsxwVPHU0q+T9YvwLDJoOApLQ==", + "license": "MIT", + "dependencies": { + "execa": "^5.1.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/detect-port": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", @@ -8561,6 +9199,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -8741,6 +9388,65 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/docusaurus-plugin-openapi-docs": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-4.4.0.tgz", + "integrity": "sha512-VFW0euAyM6i6U6Q2WrNXkp1LnxQFGszZbmloMFYrs1qwBjPLkuHfQ4OJMXGDsGcGl4zNDJ9cwODmJlmdwl1hwg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^11.5.4", + "@redocly/openapi-core": "^1.10.5", + "allof-merge": "^0.6.6", + "chalk": "^4.1.2", + "clsx": "^1.1.1", + "fs-extra": "^9.0.1", + "json-pointer": "^0.6.2", + "json5": "^2.2.3", + "lodash": "^4.17.20", + "mustache": "^4.2.0", + "openapi-to-postmanv2": "^4.21.0", + "postman-collection": "^4.4.0", + "slugify": "^1.6.5", + "swagger2openapi": "^7.0.8", + "xml-formatter": "^2.6.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@docusaurus/plugin-content-docs": "^3.5.0", + "@docusaurus/utils": "^3.5.0", + "@docusaurus/utils-validation": "^3.5.0", + "react": "^16.8.4 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/docusaurus-plugin-openapi-docs/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/docusaurus-plugin-remote-content": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/docusaurus-plugin-remote-content/-/docusaurus-plugin-remote-content-4.0.0.tgz", @@ -8813,6 +9519,20 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/docusaurus-plugin-sass": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/docusaurus-plugin-sass/-/docusaurus-plugin-sass-0.2.6.tgz", + "integrity": "sha512-2hKQQDkrufMong9upKoG/kSHJhuwd+FA3iAe/qzS/BmWpbIpe7XKmq5wlz4J5CJaOPu4x+iDJbgAxZqcoQf0kg==", + "license": "MIT", + "peer": true, + "dependencies": { + "sass-loader": "^16.0.2" + }, + "peerDependencies": { + "@docusaurus/core": "^2.0.0-beta || ^3.0.0-alpha", + "sass": "^1.30.0" + } + }, "node_modules/docusaurus-theme-github-codeblock": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/docusaurus-theme-github-codeblock/-/docusaurus-theme-github-codeblock-2.0.2.tgz", @@ -8821,72 +9541,1291 @@ "@docusaurus/types": "^3.0.0" } }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "node_modules/docusaurus-theme-openapi-docs": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/docusaurus-theme-openapi-docs/-/docusaurus-theme-openapi-docs-4.4.0.tgz", + "integrity": "sha512-wmc2b946rqBcdjgEHi6Up7e8orasYk5RnIUerTfmZ/Hi006I8FIjMnJEmHAF6t5PbFiiYnlkB6vYK0CC5xBnCQ==", + "license": "MIT", "dependencies": { - "utila": "~0.4" + "@hookform/error-message": "^2.0.1", + "@reduxjs/toolkit": "^1.7.1", + "allof-merge": "^0.6.6", + "buffer": "^6.0.3", + "clsx": "^1.1.1", + "copy-text-to-clipboard": "^3.1.0", + "crypto-js": "^4.1.1", + "file-saver": "^2.0.5", + "lodash": "^4.17.20", + "pako": "^2.1.0", + "postman-code-generators": "^1.10.1", + "postman-collection": "^4.4.0", + "prism-react-renderer": "^2.3.0", + "process": "^0.11.10", + "react-hook-form": "^7.43.8", + "react-live": "^4.0.0", + "react-magic-dropzone": "^1.0.1", + "react-markdown": "^8.0.1", + "react-modal": "^3.15.1", + "react-redux": "^7.2.0", + "rehype-raw": "^6.1.1", + "remark-gfm": "3.0.1", + "sass": "^1.80.4", + "sass-loader": "^16.0.2", + "unist-util-visit": "^5.0.0", + "url": "^0.11.1", + "xml-formatter": "^2.6.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@docusaurus/theme-common": "^3.5.0", + "docusaurus-plugin-openapi-docs": "^4.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" } }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "license": "MIT", "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "@types/unist": "^2" } }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/parse5": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", + "license": "MIT" + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", - "url": "https://github.com/sponsors/fb55" + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + ], + "license": "MIT", "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/dompurify": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", - "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" + "node_modules/docusaurus-theme-openapi-docs/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" + "node_modules/docusaurus-theme-openapi-docs/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-from-parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz", + "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0", + "hastscript": "^7.0.0", + "property-information": "^6.0.0", + "vfile": "^5.0.0", + "vfile-location": "^4.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-parse-selector": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", + "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-raw": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz", + "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/parse5": "^6.0.0", + "hast-util-from-parse5": "^7.0.0", + "hast-util-to-parse5": "^7.0.0", + "html-void-elements": "^2.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-raw/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-to-parse5": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz", + "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/hast-util-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", + "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/hastscript": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz", + "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^3.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/html-void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-find-and-replace": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", + "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-from-markdown": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", + "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-gfm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", + "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-footnote": "^1.0.0", + "mdast-util-gfm-strikethrough": "^1.0.0", + "mdast-util-gfm-table": "^1.0.0", + "mdast-util-gfm-task-list-item": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-gfm-autolink-literal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-gfm-footnote": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", + "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0", + "micromark-util-normalize-identifier": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-gfm-strikethrough": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", + "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-gfm-table": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", + "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-gfm-task-list-item": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", + "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-phrasing": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-hast": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", + "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-definitions": "^5.0.0", + "micromark-util-sanitize-uri": "^1.1.0", + "trim-lines": "^3.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-hast/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-markdown": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", + "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", + "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-core-commonmark": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz", + "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-footnote": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm-autolink-literal": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz", + "integrity": "sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm-footnote": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz", + "integrity": "sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==", + "license": "MIT", + "dependencies": { + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm-strikethrough": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz", + "integrity": "sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==", + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm-table": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz", + "integrity": "sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==", + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm-tagfilter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", + "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-extension-gfm-task-list-item": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz", + "integrity": "sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==", + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-factory-destination": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", + "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-factory-label": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", + "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-factory-title": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", + "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-factory-whitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", + "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-chunked": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", + "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-classify-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", + "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-combine-extensions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", + "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-decode-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", + "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-html-tag-name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", + "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-normalize-identifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", + "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-resolve-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", + "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-sanitize-uri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", + "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-subtokenize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", + "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "license": "MIT" + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/react-markdown": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.7.tgz", + "integrity": "sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/prop-types": "^15.0.0", + "@types/unist": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "prop-types": "^15.0.0", + "property-information": "^6.0.0", + "react-is": "^18.0.0", + "remark-parse": "^10.0.0", + "remark-rehype": "^10.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/react-markdown/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/rehype-raw": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz", + "integrity": "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-raw": "^7.2.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/remark-gfm": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/remark-parse": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", + "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/remark-rehype": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", + "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-to-hast": "^12.1.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/unist-util-position": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", + "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/vfile-location": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", + "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dompurify": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", + "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/dot-case": { @@ -9038,6 +10977,13 @@ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz", "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==" }, + "node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "license": "MIT", + "peer": true + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -9281,6 +11227,12 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==", + "license": "BSD-3-Clause" + }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -9435,6 +11387,13 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "license": "MIT", + "peer": true + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -9563,6 +11522,21 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==", + "license": "MIT" + }, + "node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/filesize": { "version": "8.0.7", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", @@ -9669,6 +11643,13 @@ } } }, + "node_modules/foreach": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", + "license": "MIT", + "peer": true + }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", @@ -9987,6 +11968,16 @@ "node": ">=6.9.0" } }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "peer": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/get-intrinsic": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", @@ -10221,6 +12212,16 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, + "node_modules/graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "license": "MIT", + "peer": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", @@ -10986,6 +12987,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/http-reasons": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/http-reasons/-/http-reasons-0.1.0.tgz", + "integrity": "sha512-P6kYh0lKZ+y29T2Gqz+RlC9WBLhKe8kDmcJ+A+611jFfxdPsbMRQ5aNmFRM3lENqFkK+HTTL+tlQviAiv0AbLQ==", + "license": "Apache-2.0" + }, + "node_modules/http2-client": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", + "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==", + "license": "MIT", + "peer": true + }, "node_modules/http2-wrapper": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", @@ -10998,6 +13012,20 @@ "node": ">=10.19.0" } }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "peer": true, + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -11096,6 +13124,12 @@ "url": "https://opencollective.com/immer" } }, + "node_modules/immutable": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.2.tgz", + "integrity": "sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==", + "license": "MIT" + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -11587,6 +13621,16 @@ "@sideway/pinpoint": "^2.0.0" } }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -11619,11 +13663,55 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, + "node_modules/json-crawl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/json-crawl/-/json-crawl-0.5.3.tgz", + "integrity": "sha512-BEjjCw8c7SxzNK4orhlWD5cXQh8vCk2LqDr4WgQq4CV+5dvopeYwt1Tskg67SuSLKvoFH5g0yuYtg7rcfKV6YA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, + "node_modules/json-pointer": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", + "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", + "license": "MIT", + "peer": true, + "dependencies": { + "foreach": "^2.0.4" + } + }, + "node_modules/json-schema-compare": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", + "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "lodash": "^4.17.4" + } + }, + "node_modules/json-schema-merge-allof": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", + "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", + "license": "MIT", + "peer": true, + "dependencies": { + "compute-lcm": "^1.1.2", + "json-schema-compare": "^0.2.2", + "lodash": "^4.17.20" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -11778,6 +13866,15 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, + "node_modules/liquid-json": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/liquid-json/-/liquid-json-0.3.1.tgz", + "integrity": "sha512-wUayTU8MS827Dam6MxgD72Ui+KOSF+u/eIqpatOtjnvgJ0+mnDq33uC2M7J0tPK+upe/DpUAuK4JUU89iBoNKQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -11949,6 +14046,78 @@ "node": ">= 18" } }, + "node_modules/mdast-util-definitions": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", + "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions/node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/mdast-util-definitions/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/mdast-util-definitions/node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-directive": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz", @@ -14127,6 +16296,15 @@ "node": ">= 0.6" } }, + "node_modules/mime-format": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mime-format/-/mime-format-2.0.1.tgz", + "integrity": "sha512-XxU3ngPbEnrYnNbIX+lYSaYg0M01v6p2ntd2YaFksTu0vayaw5OJvbdRyWs07EYRlLED5qadUZ+xo+XhOvFhwg==", + "license": "Apache-2.0", + "dependencies": { + "charset": "^1.0.0" + } + }, "node_modules/mime-types": { "version": "2.1.18", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", @@ -14204,9 +16382,10 @@ } }, "node_modules/minipass": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.0.tgz", - "integrity": "sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -14237,6 +16416,15 @@ "ufo": "^1.5.4" } }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/mrmime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", @@ -14263,6 +16451,27 @@ "multicast-dns": "cli.js" } }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "license": "MIT", + "peer": true, + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.8", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", @@ -14298,6 +16507,16 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "node_modules/neotraverse": { + "version": "0.6.15", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.15.tgz", + "integrity": "sha512-HZpdkco+JeXq0G+WWpMJ4NsX3pqb5O7eR9uGz3FfoFt+LYzU8iRWp49nJtud6hsDoywM8tIrDo3gjgmOqJA8LA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -14337,6 +16556,40 @@ "node": ">=18" } }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "peer": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch-h2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", + "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", + "license": "MIT", + "peer": true, + "dependencies": { + "http2-client": "^1.2.5" + }, + "engines": { + "node": "4.x || >=6.0.0" + } + }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -14345,6 +16598,16 @@ "node": ">= 6.13.0" } }, + "node_modules/node-readfiles": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", + "integrity": "sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==", + "license": "MIT", + "peer": true, + "dependencies": { + "es6-promise": "^3.2.1" + } + }, "node_modules/node-releases": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", @@ -14487,12 +16750,118 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/oas-kit-common": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", + "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "fast-safe-stringify": "^2.0.7" + } + }, + "node_modules/oas-linter": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", + "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "@exodus/schemasafe": "^1.0.0-rc.2", + "should": "^13.2.1", + "yaml": "^1.10.0" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/oas-resolver": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", + "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "node-fetch-h2": "^2.3.0", + "oas-kit-common": "^1.0.8", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + }, + "bin": { + "resolve": "resolve.js" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/oas-resolver-browser": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/oas-resolver-browser/-/oas-resolver-browser-2.5.6.tgz", + "integrity": "sha512-Jw5elT/kwUJrnGaVuRWe1D7hmnYWB8rfDDjBnpQ+RYY/dzAewGXeTexXzt4fGEo6PUE4eqKqPWF79MZxxvMppA==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "node-fetch-h2": "^2.3.0", + "oas-kit-common": "^1.0.8", + "path-browserify": "^1.0.1", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + }, + "bin": { + "resolve": "resolve.js" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/oas-schema-walker": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", + "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==", + "license": "BSD-3-Clause", + "peer": true, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, + "node_modules/oas-validator": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", + "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "call-me-maybe": "^1.0.1", + "oas-kit-common": "^1.0.8", + "oas-linter": "^3.2.2", + "oas-resolver": "^2.5.6", + "oas-schema-walker": "^1.1.5", + "reftools": "^1.1.9", + "should": "^13.2.1", + "yaml": "^1.10.0" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { - "node": ">=0.10.0" + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 6" } }, "node_modules/object-inspect": { @@ -14613,6 +16982,62 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/openapi-to-postmanv2": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/openapi-to-postmanv2/-/openapi-to-postmanv2-4.25.0.tgz", + "integrity": "sha512-sIymbkQby0gzxt2Yez8YKB6hoISEel05XwGwNrAhr6+vxJWXNxkmssQc/8UEtVkuJ9ZfUXLkip9PYACIpfPDWg==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "ajv": "8.11.0", + "ajv-draft-04": "1.0.0", + "ajv-formats": "2.1.1", + "async": "3.2.4", + "commander": "2.20.3", + "graphlib": "2.1.8", + "js-yaml": "4.1.0", + "json-pointer": "0.6.2", + "json-schema-merge-allof": "0.8.1", + "lodash": "4.17.21", + "neotraverse": "0.6.15", + "oas-resolver-browser": "2.5.6", + "object-hash": "3.0.0", + "path-browserify": "1.0.1", + "postman-collection": "^4.4.0", + "swagger2openapi": "7.0.8", + "yaml": "1.10.2" + }, + "bin": { + "openapi2postmanv2": "bin/openapi2postmanv2.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/openapi-to-postmanv2/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/openapi-to-postmanv2/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT", + "peer": true + }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", @@ -14708,12 +17133,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, "node_modules/package-manager-detector": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.9.tgz", "integrity": "sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==", "license": "MIT" }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -14828,6 +17265,23 @@ "tslib": "^2.0.3" } }, + "node_modules/path": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", + "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==", + "license": "MIT", + "dependencies": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT", + "peer": true + }, "node_modules/path-data-parser": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", @@ -14869,15 +17323,16 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -14939,6 +17394,15 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/pkg-dir": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", @@ -15039,6 +17503,16 @@ "medium-zoom": "^1.0.4" } }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/points-on-curve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", @@ -16432,6 +18906,97 @@ "postcss": "^8.4.31" } }, + "node_modules/postman-code-generators": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/postman-code-generators/-/postman-code-generators-1.14.2.tgz", + "integrity": "sha512-qZAyyowfQAFE4MSCu2KtMGGQE/+oG1JhMZMJNMdZHYCSfQiVVeKxgk3oI4+KJ3d1y5rrm2D6C6x+Z+7iyqm+fA==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "async": "3.2.2", + "detect-package-manager": "3.0.2", + "lodash": "4.17.21", + "path": "0.12.7", + "postman-collection": "^4.4.0", + "shelljs": "0.8.5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/postman-code-generators/node_modules/async": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", + "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", + "license": "MIT" + }, + "node_modules/postman-collection": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/postman-collection/-/postman-collection-4.5.0.tgz", + "integrity": "sha512-152JSW9pdbaoJihwjc7Q8lc3nPg/PC9lPTHdMk7SHnHhu/GBJB7b2yb9zG7Qua578+3PxkQ/HYBuXpDSvsf7GQ==", + "license": "Apache-2.0", + "dependencies": { + "@faker-js/faker": "5.5.3", + "file-type": "3.9.0", + "http-reasons": "0.1.0", + "iconv-lite": "0.6.3", + "liquid-json": "0.3.1", + "lodash": "4.17.21", + "mime-format": "2.0.1", + "mime-types": "2.1.35", + "postman-url-encoder": "3.0.5", + "semver": "7.6.3", + "uuid": "8.3.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postman-collection/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postman-collection/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/postman-collection/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/postman-url-encoder": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postman-url-encoder/-/postman-url-encoder-3.0.5.tgz", + "integrity": "sha512-jOrdVvzUXBC7C+9gkIkpDJ3HIxOHTIqjpQ4C1EMt1ZGeMvSEpbFCKq23DEfgsj46vMnDgyQf+1ZLp2Wm+bKSsA==", + "license": "Apache-2.0", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/prebuild-install": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", @@ -16536,6 +19101,15 @@ "node": ">=6" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -16611,6 +19185,15 @@ "once": "^1.3.1" } }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/pupa": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", @@ -16920,6 +19503,22 @@ "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/react-hook-form": { + "version": "7.57.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.57.0.tgz", + "integrity": "sha512-RbEks3+cbvTP84l/VXGUZ+JMrKOS8ykQCRYdm5aYsxnDquL0vspsyNhGRO7pcH6hsZqWlPOjLye7rJqdtdAmlg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -16936,6 +19535,31 @@ "react": "^16.13.1 || ^17.0.0 || ^18.0.0" } }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "license": "MIT" + }, + "node_modules/react-live": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/react-live/-/react-live-4.1.8.tgz", + "integrity": "sha512-B2SgNqwPuS2ekqj4lcxi5TibEcjWkdVyYykBEUBshPAPDQ527x2zPEZg560n8egNtAjUpwXFQm7pcXV65aAYmg==", + "license": "MIT", + "dependencies": { + "prism-react-renderer": "^2.4.0", + "sucrase": "^3.35.0", + "use-editable": "^2.3.3" + }, + "engines": { + "node": ">= 0.12.0", + "npm": ">= 2.0.0" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, "node_modules/react-loadable": { "name": "@docusaurus/react-loadable", "version": "6.0.0", @@ -16963,6 +19587,12 @@ "webpack": ">=4.41.1 || 5.x" } }, + "node_modules/react-magic-dropzone": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-magic-dropzone/-/react-magic-dropzone-1.0.1.tgz", + "integrity": "sha512-0BIROPARmXHpk4AS3eWBOsewxoM5ndk2psYP/JmbCq8tz3uR2LIV1XiroZ9PKrmDRMctpW+TvsBCtWasuS8vFA==", + "license": "MIT" + }, "node_modules/react-markdown": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", @@ -16988,6 +19618,53 @@ "react": ">=18" } }, + "node_modules/react-modal": { + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.3.tgz", + "integrity": "sha512-yCYRJB5YkeQDQlTt17WGAgFJ7jr2QYcWa1SHqZ3PluDmnKJ/7+tVU+E6uKyZ0nODaeEj+xCpK4LcSnKXLMC0Nw==", + "license": "MIT", + "dependencies": { + "exenv": "^1.2.0", + "prop-types": "^15.7.2", + "react-lifecycles-compat": "^3.0.0", + "warning": "^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" + } + }, + "node_modules/react-redux": { + "version": "7.2.9", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", + "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + }, + "peerDependencies": { + "react": "^16.8.3 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-redux/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, "node_modules/react-router": { "version": "5.3.4", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", @@ -17126,6 +19803,34 @@ "node": "*" } }, + "node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "license": "MIT", + "peerDependencies": { + "redux": "^4" + } + }, + "node_modules/reftools": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", + "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==", + "license": "BSD-3-Clause", + "peer": true, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -17616,6 +20321,16 @@ "node": ">=0.10" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -17637,6 +20352,12 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", + "license": "MIT" + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -17784,6 +20505,18 @@ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", "license": "BSD-3-Clause" }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -17808,6 +20541,94 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/sass": { + "version": "1.89.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.1.tgz", + "integrity": "sha512-eMLLkl+qz7tx/0cJ9wI+w09GQ2zodTkcE/aVfywwdlRcI3EO19xGnbmJwg/JMIm+5MxVJ6outddLZ4Von4E++Q==", + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/sass-loader": { + "version": "16.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.5.tgz", + "integrity": "sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==", + "license": "MIT", + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", @@ -17875,12 +20696,10 @@ } }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -17902,22 +20721,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/send": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", @@ -18203,6 +21006,66 @@ "node": ">=4" } }, + "node_modules/should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "node_modules/should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "license": "MIT", + "peer": true, + "dependencies": { + "should-type": "^1.4.0" + } + }, + "node_modules/should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "node_modules/should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", + "license": "MIT", + "peer": true + }, + "node_modules/should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "license": "MIT", + "peer": true, + "dependencies": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "node_modules/should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", + "license": "MIT", + "peer": true + }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", @@ -18341,6 +21204,16 @@ "node": ">=8" } }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -18652,6 +21525,87 @@ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -18711,6 +21665,34 @@ "node": ">= 10" } }, + "node_modules/swagger2openapi": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz", + "integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "call-me-maybe": "^1.0.1", + "node-fetch": "^2.6.1", + "node-fetch-h2": "^2.3.0", + "node-readfiles": "^0.2.0", + "oas-kit-common": "^1.0.8", + "oas-resolver": "^2.5.6", + "oas-schema-walker": "^1.1.5", + "oas-validator": "^5.0.8", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + }, + "bin": { + "boast": "boast.js", + "oas-validate": "oas-validate.js", + "swagger2openapi": "swagger2openapi.js" + }, + "funding": { + "url": "https://github.com/Mermade/oas-kit?sponsor=1" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -18880,6 +21862,27 @@ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -18986,6 +21989,13 @@ "node": ">=6" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT", + "peer": true + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -19012,6 +22022,12 @@ "node": ">=6.10" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -19198,6 +22214,16 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-generated": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", + "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-is": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", @@ -19419,12 +22445,24 @@ "punycode": "^2.1.0" } }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "node_modules/uri-js-replace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uri-js-replace/-/uri-js-replace-1.0.1.tgz", + "integrity": "sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==", + "license": "MIT", + "peer": true + }, + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "license": "MIT", + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, "engines": { - "node": ">=6" + "node": ">= 0.4" } }, "node_modules/url-loader": { @@ -19517,11 +22555,41 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "license": "MIT" + }, + "node_modules/use-editable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/use-editable/-/use-editable-2.3.3.tgz", + "integrity": "sha512-7wVD2JbfAFJ3DK0vITvXBdpd9JAz5BcKAAolsnLBuBn6UDDwBGuCIAGvR3yA2BNKm578vAMVHFCWaOcA+BhhiA==", + "license": "MIT", + "peerDependencies": { + "react": ">= 16.8.0" + } + }, + "node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "license": "MIT", + "dependencies": { + "inherits": "2.0.3" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" + }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", @@ -19551,6 +22619,71 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uvu/node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/validate.io-array": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", + "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==", + "license": "MIT", + "peer": true + }, + "node_modules/validate.io-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", + "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==", + "peer": true + }, + "node_modules/validate.io-integer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", + "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", + "peer": true, + "dependencies": { + "validate.io-number": "^1.0.3" + } + }, + "node_modules/validate.io-integer-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", + "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", + "peer": true, + "dependencies": { + "validate.io-array": "^1.0.3", + "validate.io-integer": "^1.0.4" + } + }, + "node_modules/validate.io-number": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", + "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==", + "peer": true + }, "node_modules/value-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", @@ -19653,6 +22786,15 @@ "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", "license": "MIT" }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/watchpack": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", @@ -19682,6 +22824,13 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause", + "peer": true + }, "node_modules/webpack": { "version": "5.95.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", @@ -20060,6 +23209,17 @@ "node": ">=0.8.0" } }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "peer": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -20253,6 +23413,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/xml-formatter": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-2.6.1.tgz", + "integrity": "sha512-dOiGwoqm8y22QdTNI7A+N03tyVfBlQ0/oehAzxIZtwnFAHGeSlrfjF73YQvzSsa/Kt6+YZasKsrdu6OIpuBggw==", + "license": "MIT", + "dependencies": { + "xml-parser-xo": "^3.2.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/xml-js": { "version": "1.6.11", "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", @@ -20264,6 +23436,15 @@ "xml-js": "bin/cli.js" } }, + "node_modules/xml-parser-xo": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/xml-parser-xo/-/xml-parser-xo-3.2.0.tgz", + "integrity": "sha512-8LRU6cq+d7mVsoDaMhnkkt3CTtAs4153p49fRo+HIB3I1FD1o5CeXRjRH29sQevIfVJIcPjKSsPU/+Ujhq09Rg==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -20272,6 +23453,16 @@ "node": ">=0.4" } }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=10" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -20285,6 +23476,64 @@ "node": ">= 6" } }, + "node_modules/yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "peer": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT", + "peer": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", diff --git a/package.json b/package.json index 6ef07bd..d74e0a4 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "docusaurus-lunr-search": "^3.6.0", "docusaurus-plugin-remote-content": "^4.0.0", "docusaurus-theme-github-codeblock": "^2.0.2", + "docusaurus-theme-openapi-docs": "^4.4.0", "gray-matter": "^4.0.3", "minimatch": "^10.0.1", "octokit": "^4.0.2", From 3e71327bb656e3cb519bda8e3bca83d868171d1e Mon Sep 17 00:00:00 2001 From: b-long Date: Thu, 5 Jun 2025 17:27:38 -0400 Subject: [PATCH 02/37] Add helper commands to package.json --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index d74e0a4..26d8cc4 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,9 @@ "clear": "docusaurus clear", "serve": "docusaurus serve", "write-translations": "docusaurus write-translations", - "write-heading-ids": "docusaurus write-heading-ids" + "write-heading-ids": "docusaurus write-heading-ids", + "gen-api-docs-all": "docusaurus gen-api-docs all", + "gen-api-docs-clean": "docusaurus clean-api-docs all" }, "dependencies": { "@docusaurus/core": "^3.6.3", From e6f94c7ac1b3925ecc984ccd5354c044b5d55119 Mon Sep 17 00:00:00 2001 From: b-long Date: Thu, 5 Jun 2025 17:27:52 -0400 Subject: [PATCH 03/37] Document helper commands --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 357e476..c106b52 100644 --- a/README.md +++ b/README.md @@ -24,3 +24,16 @@ $ npm run build ``` This command generates static content into the `build` directory and can be served using any static contents hosting service. + +### Building API docs + +``` +# Based on: +# https://docusaurus-openapi.tryingpan.dev/#generating-openapi-docs + +# Generation +$ npm run gen-api-docs-all + +# Cleanup +$ npm run gen-api-docs-clean +``` \ No newline at end of file From 74742ab993d1983be0cee2458fb7a219889e8aaf Mon Sep 17 00:00:00 2001 From: b-long Date: Thu, 5 Jun 2025 17:29:05 -0400 Subject: [PATCH 04/37] WIP: minimal ~working configuration --- docusaurus.config.ts | 34 ++++++++++++++++++++++++++++++++-- sidebars.js | 36 ++++++++++++++++++++++++------------ 2 files changed, 56 insertions(+), 14 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 779207a..98599db 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -9,6 +9,7 @@ import type { Config } from "@docusaurus/types"; import type * as Preset from "@docusaurus/preset-classic"; import matter from "gray-matter"; import listRemote from "./docusaurus-lib-list-remote"; +import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs"; const otdfctl = listRemote.createRepo("opentdf", "otdfctl", "main"); @@ -44,12 +45,13 @@ const config: Config = { }, ], - onBrokenLinks: "throw", + onBrokenLinks: "warn", onBrokenMarkdownLinks: "warn", + onBrokenAnchors: "warn", markdown: { mermaid: true, }, - themes: ["@docusaurus/theme-mermaid", "docusaurus-theme-github-codeblock"], + themes: ["@docusaurus/theme-mermaid", "docusaurus-theme-github-codeblock", "docusaurus-theme-openapi-docs"], // Even if you don't use internationalization, you can use this field to set // useful metadata like html lang. For example, if your site is Chinese, you @@ -67,6 +69,7 @@ const config: Config = { docs: { routeBasePath: "/", sidebarPath: "./sidebars.js", + // docItemComponent: "@theme/ApiItem", // Derived from docusaurus-theme-openapi // Please change this to your repo. // Remove this to remove the "edit this page" links. // editUrl: @@ -735,6 +738,33 @@ ${updatedContent}`, }, }, ], + [ + "docusaurus-plugin-openapi-docs", + { + id: "api", // plugin id + docsPluginId: "classic", // configured for preset-classic + config: { + // kas: { // Unique key for the KAS API + // specPath: "./specs/kas.openapi.yaml", + // // outputDir: "docs/api/kas/", // Output directory for KAS API docs + // outputDir: "docs/spec/", + // sidebarOptions: { + // groupPathsBy: "tag", + // }, + // } satisfies OpenApiPlugin.Options, + authorization: { // Unique key for the KAS API + specPath: "./specs/authorization.swagger.json", + // outputDir: "docs/api/kas/", // Output directory for KAS API docs + outputDir: "docs/openapi/", + sidebarOptions: { + groupPathsBy: "tag", + }, + } satisfies OpenApiPlugin.Options, + + // Add more entries here for other OpenAPI specs from the platform as needed + }, + }, + ], require.resolve("docusaurus-lunr-search"), ], }; diff --git a/sidebars.js b/sidebars.js index 3327580..baf81d0 100644 --- a/sidebars.js +++ b/sidebars.js @@ -14,20 +14,32 @@ /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ const sidebars = { // By default, Docusaurus generates a sidebar from the docs folder structure - tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], - - // But you can create a sidebar manually - /* tutorialSidebar: [ - 'intro', - 'hello', - { - type: 'category', - label: 'Tutorial', - items: ['tutorial-basics/create-a-document'], - }, + { type: 'autogenerated', dirName: '.' }, + + // { + // type: 'category', + // label: 'API Reference', + // link: { + // type: 'generated-index', + // title: 'API Reference', + // description: 'Overview of available OpenTDF APIs.', + // slug: '/category/api-reference', // This will create an index page at /category/api-reference + // }, + // items: [ + // { + // type: 'category', + // label: 'KAS API', + // link: { + // type: 'generated-index', + // title: 'KAS API Overview', + // slug: '/api/kas', // This should be the base path for KAS API docs + // }, + // // @ts-ignore - Docusaurus type system might complain about require in JS + // items: require('./docs/api/kas/sidebar.js'), // Path to the sidebar generated by docusaurus-plugin-openapi-docs + // // items: require('./sidebar.js'), // Path to the sidebar generated by docusaurus-plugin-openapi-docs + // }, ], - */ }; export default sidebars; From ca09ba4bb46da86e5720eaa8cef4f438f5cf0996 Mon Sep 17 00:00:00 2001 From: b-long Date: Fri, 6 Jun 2025 10:32:38 -0400 Subject: [PATCH 05/37] WIP: Using local swagger files --- .../authorization/authorization.openapi.yaml | 835 +++++++ .../authorization/authorization.swagger.json | 476 ++++ .../v2/authorization.openapi.yaml | 754 ++++++ .../v2/authorization.swagger.json | 341 +++ specs/common/common.openapi.yaml | 171 ++ specs/common/common.swagger.json | 46 + specs/entity/entity.openapi.yaml | 100 + specs/entity/entity.swagger.json | 46 + .../entity_resolution.openapi.yaml | 424 ++++ .../entity_resolution.swagger.json | 276 +++ .../v2/entity_resolution.openapi.yaml | 360 +++ .../v2/entity_resolution.swagger.json | 163 ++ specs/kas/kas.openapi.yaml | 495 ++++ specs/kas/kas.swagger.json | 255 ++ specs/policy/actions/actions.openapi.yaml | 1151 +++++++++ specs/policy/actions/actions.swagger.json | 698 ++++++ .../policy/attributes/attributes.openapi.yaml | 2174 +++++++++++++++++ .../policy/attributes/attributes.swagger.json | 975 ++++++++ .../key_access_server_registry.openapi.yaml | 2091 ++++++++++++++++ .../key_access_server_registry.swagger.json | 730 ++++++ .../keymanagement/key_management.openapi.yaml | 600 +++++ .../keymanagement/key_management.swagger.json | 197 ++ .../policy/namespaces/namespaces.openapi.yaml | 1063 ++++++++ .../policy/namespaces/namespaces.swagger.json | 429 ++++ specs/policy/objects.openapi.yaml | 943 +++++++ specs/policy/objects.swagger.json | 46 + .../registered_resources.openapi.yaml | 1675 +++++++++++++ .../registered_resources.swagger.json | 823 +++++++ .../resource_mapping.openapi.yaml | 1559 ++++++++++++ .../resource_mapping.swagger.json | 756 ++++++ specs/policy/selectors.openapi.yaml | 146 ++ specs/policy/selectors.swagger.json | 46 + .../subject_mapping.openapi.yaml | 1599 ++++++++++++ .../subject_mapping.swagger.json | 796 ++++++ specs/policy/unsafe/unsafe.openapi.yaml | 1439 +++++++++++ specs/policy/unsafe/unsafe.swagger.json | 684 ++++++ .../wellknown_configuration.openapi.yaml | 184 ++ .../wellknown_configuration.swagger.json | 90 + 38 files changed, 25636 insertions(+) create mode 100644 specs/authorization/authorization.openapi.yaml create mode 100644 specs/authorization/authorization.swagger.json create mode 100644 specs/authorization/v2/authorization.openapi.yaml create mode 100644 specs/authorization/v2/authorization.swagger.json create mode 100644 specs/common/common.openapi.yaml create mode 100644 specs/common/common.swagger.json create mode 100644 specs/entity/entity.openapi.yaml create mode 100644 specs/entity/entity.swagger.json create mode 100644 specs/entityresolution/entity_resolution.openapi.yaml create mode 100644 specs/entityresolution/entity_resolution.swagger.json create mode 100644 specs/entityresolution/v2/entity_resolution.openapi.yaml create mode 100644 specs/entityresolution/v2/entity_resolution.swagger.json create mode 100644 specs/kas/kas.openapi.yaml create mode 100644 specs/kas/kas.swagger.json create mode 100644 specs/policy/actions/actions.openapi.yaml create mode 100644 specs/policy/actions/actions.swagger.json create mode 100644 specs/policy/attributes/attributes.openapi.yaml create mode 100644 specs/policy/attributes/attributes.swagger.json create mode 100644 specs/policy/kasregistry/key_access_server_registry.openapi.yaml create mode 100644 specs/policy/kasregistry/key_access_server_registry.swagger.json create mode 100644 specs/policy/keymanagement/key_management.openapi.yaml create mode 100644 specs/policy/keymanagement/key_management.swagger.json create mode 100644 specs/policy/namespaces/namespaces.openapi.yaml create mode 100644 specs/policy/namespaces/namespaces.swagger.json create mode 100644 specs/policy/objects.openapi.yaml create mode 100644 specs/policy/objects.swagger.json create mode 100644 specs/policy/registeredresources/registered_resources.openapi.yaml create mode 100644 specs/policy/registeredresources/registered_resources.swagger.json create mode 100644 specs/policy/resourcemapping/resource_mapping.openapi.yaml create mode 100644 specs/policy/resourcemapping/resource_mapping.swagger.json create mode 100644 specs/policy/selectors.openapi.yaml create mode 100644 specs/policy/selectors.swagger.json create mode 100644 specs/policy/subjectmapping/subject_mapping.openapi.yaml create mode 100644 specs/policy/subjectmapping/subject_mapping.swagger.json create mode 100644 specs/policy/unsafe/unsafe.openapi.yaml create mode 100644 specs/policy/unsafe/unsafe.swagger.json create mode 100644 specs/wellknownconfiguration/wellknown_configuration.openapi.yaml create mode 100644 specs/wellknownconfiguration/wellknown_configuration.swagger.json diff --git a/specs/authorization/authorization.openapi.yaml b/specs/authorization/authorization.openapi.yaml new file mode 100644 index 0000000..1f263fc --- /dev/null +++ b/specs/authorization/authorization.openapi.yaml @@ -0,0 +1,835 @@ +openapi: 3.1.0 +info: + title: authorization +paths: + /v1/authorization: + post: + tags: + - authorization.AuthorizationService + summary: GetDecisions + operationId: authorization.AuthorizationService.GetDecisions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.GetDecisionsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.GetDecisionsResponse' + /v1/token/authorization: + post: + tags: + - authorization.AuthorizationService + summary: GetDecisionsByToken + operationId: authorization.AuthorizationService.GetDecisionsByToken + parameters: + - name: decisionRequests.actions.id + in: query + description: Generated uuid in database + schema: + type: string + title: id + description: Generated uuid in database + - name: decisionRequests.actions.standard + in: query + description: Deprecated + schema: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + - name: decisionRequests.actions.custom + in: query + description: Deprecated + schema: + type: string + title: custom + description: Deprecated + - name: decisionRequests.actions.name + in: query + schema: + type: string + title: name + - name: decisionRequests.actions.metadata.createdAt.seconds + in: query + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + schema: + type: + - integer + - string + title: seconds + format: int64 + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + - name: decisionRequests.actions.metadata.createdAt.nanos + in: query + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. + schema: + type: integer + title: nanos + format: int32 + description: |- + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. + - name: decisionRequests.actions.metadata.labels.key + in: query + schema: + type: string + title: key + - name: decisionRequests.actions.metadata.labels.value + in: query + schema: + type: string + title: value + - name: decisionRequests.tokens.id + in: query + description: ephemeral id for tracking between request and response + schema: + type: string + title: id + description: ephemeral id for tracking between request and response + - name: decisionRequests.tokens.jwt + in: query + description: the token + schema: + type: string + title: jwt + description: the token + - name: decisionRequests.resourceAttributes.resourceAttributesId + in: query + schema: + type: string + title: resource_attributes_id + - name: decisionRequests.resourceAttributes.attributeValueFqns + in: query + schema: + type: array + items: + type: string + title: attribute_value_fqns + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.GetDecisionsByTokenResponse' + /v1/entitlements: + post: + tags: + - authorization.AuthorizationService + summary: GetEntitlements + operationId: authorization.AuthorizationService.GetEntitlements + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.GetEntitlementsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.GetEntitlementsResponse' +components: + schemas: + authorization.DecisionResponse.Decision: + type: string + title: Decision + enum: + - DECISION_UNSPECIFIED + - DECISION_DENY + - DECISION_PERMIT + authorization.Entity.Category: + type: string + title: Category + enum: + - CATEGORY_UNSPECIFIED + - CATEGORY_SUBJECT + - CATEGORY_ENVIRONMENT + policy.Action.StandardAction: + type: string + title: StandardAction + enum: + - STANDARD_ACTION_UNSPECIFIED + - STANDARD_ACTION_DECRYPT + - STANDARD_ACTION_TRANSMIT + authorization.DecisionRequest: + type: object + properties: + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + entityChains: + type: array + items: + $ref: '#/components/schemas/authorization.EntityChain' + title: entity_chains + resourceAttributes: + type: array + items: + $ref: '#/components/schemas/authorization.ResourceAttribute' + title: resource_attributes + title: DecisionRequest + additionalProperties: false + description: |- + Example Request Get Decisions to answer the question - Do Bob (represented by entity chain ec1) + and Alice (represented by entity chain ec2) have TRANSMIT authorization for + 2 resources; resource1 (attr-set-1) defined by attributes foo:bar resource2 (attr-set-2) defined by attribute foo:bar, color:red ? + + { + "actions": [ + { + "standard": "STANDARD_ACTION_TRANSMIT" + } + ], + "entityChains": [ + { + "id": "ec1", + "entities": [ + { + "emailAddress": "bob@example.org" + } + ] + }, + { + "id": "ec2", + "entities": [ + { + "userName": "alice@example.org" + } + ] + } + ], + "resourceAttributes": [ + { + "resourceAttributeId": "attr-set-1", + "attributeFqns": [ + "https://www.example.org/attr/foo/value/value1" + ] + }, + { + "resourceAttributeId": "attr-set-2", + "attributeFqns": [ + "https://example.net/attr/attr1/value/value1", + "https://example.net/attr/attr1/value/value2" + ] + } + ] + } + authorization.DecisionResponse: + type: object + properties: + entityChainId: + type: string + title: entity_chain_id + description: ephemeral entity chain id from the request + resourceAttributesId: + type: string + title: resource_attributes_id + description: ephemeral resource attributes id from the request + action: + title: action + description: Action of the decision response + $ref: '#/components/schemas/policy.Action' + decision: + title: decision + description: The decision response + $ref: '#/components/schemas/authorization.DecisionResponse.Decision' + obligations: + type: array + items: + type: string + title: obligations + description: optional list of obligations represented in URI format + title: DecisionResponse + additionalProperties: false + description: |- + Example response for a Decision Request - Do Bob (represented by entity chain ec1) + and Alice (represented by entity chain ec2) have TRANSMIT authorization for + 2 resources; resource1 (attr-set-1) defined by attributes foo:bar resource2 (attr-set-2) defined by attribute foo:bar, color:red ? + + Results: + - bob has permitted authorization to transmit for a resource defined by attr-set-1 attributes and has a watermark obligation + - bob has denied authorization to transmit a for a resource defined by attr-set-2 attributes + - alice has permitted authorization to transmit for a resource defined by attr-set-1 attributes + - alice has denied authorization to transmit a for a resource defined by attr-set-2 attributes + + { + "entityChainId": "ec1", + "resourceAttributesId": "attr-set-1", + "decision": "DECISION_PERMIT", + "obligations": [ + "http://www.example.org/obligation/watermark" + ] + }, + { + "entityChainId": "ec1", + "resourceAttributesId": "attr-set-2", + "decision": "DECISION_PERMIT" + }, + { + "entityChainId": "ec2", + "resourceAttributesId": "attr-set-1", + "decision": "DECISION_PERMIT" + }, + { + "entityChainId": "ec2", + "resourceAttributesId": "attr-set-2", + "decision": "DECISION_DENY" + } + authorization.Entity: + type: object + oneOf: + - properties: + claims: + title: claims + $ref: '#/components/schemas/google.protobuf.Any' + title: claims + required: + - claims + - properties: + clientId: + type: string + title: client_id + title: client_id + required: + - clientId + - properties: + custom: + title: custom + $ref: '#/components/schemas/authorization.EntityCustom' + title: custom + required: + - custom + - properties: + emailAddress: + type: string + title: email_address + description: one of the entity options must be set + title: email_address + required: + - emailAddress + - properties: + remoteClaimsUrl: + type: string + title: remote_claims_url + title: remote_claims_url + required: + - remoteClaimsUrl + - properties: + userName: + type: string + title: user_name + title: user_name + required: + - userName + - properties: + uuid: + type: string + title: uuid + title: uuid + required: + - uuid + properties: + id: + type: string + title: id + description: ephemeral id for tracking between request and response + category: + title: category + $ref: '#/components/schemas/authorization.Entity.Category' + title: Entity + additionalProperties: false + description: PE (Person Entity) or NPE (Non-Person Entity) + authorization.EntityChain: + type: object + properties: + id: + type: string + title: id + description: ephemeral id for tracking between request and response + entities: + type: array + items: + $ref: '#/components/schemas/authorization.Entity' + title: entities + title: EntityChain + additionalProperties: false + description: A set of related PE and NPE + authorization.EntityCustom: + type: object + properties: + extension: + title: extension + $ref: '#/components/schemas/google.protobuf.Any' + title: EntityCustom + additionalProperties: false + description: Entity type for custom entities beyond the standard types + authorization.EntityEntitlements: + type: object + properties: + entityId: + type: string + title: entity_id + attributeValueFqns: + type: array + items: + type: string + title: attribute_value_fqns + title: EntityEntitlements + additionalProperties: false + authorization.GetDecisionsByTokenRequest: + type: object + properties: + decisionRequests: + type: array + items: + $ref: '#/components/schemas/authorization.TokenDecisionRequest' + title: decision_requests + title: GetDecisionsByTokenRequest + additionalProperties: false + authorization.GetDecisionsByTokenResponse: + type: object + properties: + decisionResponses: + type: array + items: + $ref: '#/components/schemas/authorization.DecisionResponse' + title: decision_responses + title: GetDecisionsByTokenResponse + additionalProperties: false + authorization.GetDecisionsRequest: + type: object + properties: + decisionRequests: + type: array + items: + $ref: '#/components/schemas/authorization.DecisionRequest' + title: decision_requests + title: GetDecisionsRequest + additionalProperties: false + authorization.GetDecisionsResponse: + type: object + properties: + decisionResponses: + type: array + items: + $ref: '#/components/schemas/authorization.DecisionResponse' + title: decision_responses + title: GetDecisionsResponse + additionalProperties: false + authorization.GetEntitlementsRequest: + type: object + properties: + entities: + type: array + items: + $ref: '#/components/schemas/authorization.Entity' + title: entities + description: list of requested entities + scope: + title: scope + description: optional attribute fqn as a scope + nullable: true + $ref: '#/components/schemas/authorization.ResourceAttribute' + withComprehensiveHierarchy: + type: boolean + title: with_comprehensive_hierarchy + description: optional parameter to return a full list of entitlements - returns lower hierarchy attributes + nullable: true + title: GetEntitlementsRequest + additionalProperties: false + description: |- + Request to get entitlements for one or more entities for an optional attribute scope + + Example: Get entitlements for bob and alice (both represented using an email address + + { + "entities": [ + { + "id": "e1", + "emailAddress": "bob@example.org" + }, + { + "id": "e2", + "emailAddress": "alice@example.org" + } + ], + "scope": { + "attributeFqns": [ + "https://example.net/attr/attr1/value/value1", + "https://example.net/attr/attr1/value/value2" + ] + } + } + authorization.GetEntitlementsResponse: + type: object + properties: + entitlements: + type: array + items: + $ref: '#/components/schemas/authorization.EntityEntitlements' + title: entitlements + title: GetEntitlementsResponse + additionalProperties: false + description: |- + Example Response for a request of : Get entitlements for bob and alice (both represented using an email address + + { + "entitlements": [ + { + "entityId": "e1", + "attributeValueReferences": [ + { + "attributeFqn": "http://www.example.org/attr/foo/value/bar" + } + ] + }, + { + "entityId": "e2", + "attributeValueReferences": [ + { + "attributeFqn": "http://www.example.org/attr/color/value/red" + } + ] + } + ] + } + authorization.ResourceAttribute: + type: object + properties: + resourceAttributesId: + type: string + title: resource_attributes_id + attributeValueFqns: + type: array + items: + type: string + title: attribute_value_fqns + title: ResourceAttribute + additionalProperties: false + description: A logical bucket of attributes belonging to a "Resource" + authorization.Token: + type: object + properties: + id: + type: string + title: id + description: ephemeral id for tracking between request and response + jwt: + type: string + title: jwt + description: the token + title: Token + additionalProperties: false + authorization.TokenDecisionRequest: + type: object + properties: + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + tokens: + type: array + items: + $ref: '#/components/schemas/authorization.Token' + title: tokens + resourceAttributes: + type: array + items: + $ref: '#/components/schemas/authorization.ResourceAttribute' + title: resource_attributes + title: TokenDecisionRequest + additionalProperties: false + description: |- + Example Request Get Decisions by Token to answer the question - Do Bob and client1 (represented by token tok1) + and Alice and client2 (represented by token tok2) have TRANSMIT authorization for + 2 resources; resource1 (attr-set-1) defined by attributes foo:bar resource2 (attr-set-2) defined by attribute foo:bar, color:red ? + + { + "actions": [ + { + "standard": "STANDARD_ACTION_TRANSMIT" + } + ], + "tokens": [ + { + "id": "tok1", + "jwt": .... + }, + { + "id": "tok2", + "jwt": ..... + } + ], + "resourceAttributes": [ + { + "attributeFqns": [ + "https://www.example.org/attr/foo/value/value1" + ] + }, + { + "attributeFqns": [ + "https://example.net/attr/attr1/value/value1", + "https://example.net/attr/attr1/value/value2" + ] + } + ] + } + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.Action: + type: object + oneOf: + - properties: + custom: + type: string + title: custom + description: Deprecated + title: custom + required: + - custom + - properties: + standard: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + title: standard + required: + - standard + properties: + id: + type: string + title: id + description: Generated uuid in database + name: + type: string + title: name + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: Action + additionalProperties: false + description: An action an entity can take + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' +security: [] +tags: + - name: authorization.AuthorizationService diff --git a/specs/authorization/authorization.swagger.json b/specs/authorization/authorization.swagger.json new file mode 100644 index 0000000..5f9b787 --- /dev/null +++ b/specs/authorization/authorization.swagger.json @@ -0,0 +1,476 @@ +{ + "swagger": "2.0", + "info": { + "title": "authorization/authorization.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "AuthorizationService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/v1/authorization": { + "post": { + "operationId": "AuthorizationService_GetDecisions", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/authorizationGetDecisionsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/authorizationGetDecisionsRequest" + } + } + ], + "tags": [ + "AuthorizationService" + ] + } + }, + "/v1/entitlements": { + "post": { + "operationId": "AuthorizationService_GetEntitlements", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/authorizationGetEntitlementsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "description": "Example: Get entitlements for bob and alice (both represented using an email address\n\n{\n\"entities\": [\n{\n\"id\": \"e1\",\n\"emailAddress\": \"bob@example.org\"\n},\n{\n\"id\": \"e2\",\n\"emailAddress\": \"alice@example.org\"\n}\n],\n\"scope\": {\n\"attributeFqns\": [\n\"https://example.net/attr/attr1/value/value1\",\n\"https://example.net/attr/attr1/value/value2\"\n]\n}\n}", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/authorizationGetEntitlementsRequest" + } + } + ], + "tags": [ + "AuthorizationService" + ] + } + }, + "/v1/token/authorization": { + "post": { + "operationId": "AuthorizationService_GetDecisionsByToken", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/authorizationGetDecisionsByTokenResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "AuthorizationService" + ] + } + } + }, + "definitions": { + "ActionStandardAction": { + "type": "string", + "enum": [ + "STANDARD_ACTION_UNSPECIFIED", + "STANDARD_ACTION_DECRYPT", + "STANDARD_ACTION_TRANSMIT" + ], + "default": "STANDARD_ACTION_UNSPECIFIED", + "title": "- STANDARD_ACTION_DECRYPT: Deprecated\nMigrate to 'read' action name\n - STANDARD_ACTION_TRANSMIT: Deprecated\nMigrate to 'create' action name" + }, + "authorizationDecisionRequest": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyAction" + } + }, + "entityChains": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationEntityChain" + } + }, + "resourceAttributes": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationResourceAttribute" + } + } + }, + "description": "{\n\"actions\": [\n{\n\"standard\": \"STANDARD_ACTION_TRANSMIT\"\n}\n],\n\"entityChains\": [\n{\n\"id\": \"ec1\",\n\"entities\": [\n{\n\"emailAddress\": \"bob@example.org\"\n}\n]\n},\n{\n\"id\": \"ec2\",\n\"entities\": [\n{\n\"userName\": \"alice@example.org\"\n}\n]\n}\n],\n\"resourceAttributes\": [\n{\n\"resourceAttributeId\": \"attr-set-1\",\n\"attributeFqns\": [\n\"https://www.example.org/attr/foo/value/value1\"\n]\n},\n{\n\"resourceAttributeId\": \"attr-set-2\",\n\"attributeFqns\": [\n\"https://example.net/attr/attr1/value/value1\",\n\"https://example.net/attr/attr1/value/value2\"\n]\n}\n]\n}", + "title": "Example Request Get Decisions to answer the question - Do Bob (represented by entity chain ec1)\nand Alice (represented by entity chain ec2) have TRANSMIT authorization for\n2 resources; resource1 (attr-set-1) defined by attributes foo:bar resource2 (attr-set-2) defined by attribute foo:bar, color:red ?" + }, + "authorizationDecisionResponse": { + "type": "object", + "properties": { + "entityChainId": { + "type": "string", + "title": "ephemeral entity chain id from the request" + }, + "resourceAttributesId": { + "type": "string", + "title": "ephemeral resource attributes id from the request" + }, + "action": { + "$ref": "#/definitions/policyAction", + "title": "Action of the decision response" + }, + "decision": { + "$ref": "#/definitions/authorizationDecisionResponseDecision", + "title": "The decision response" + }, + "obligations": { + "type": "array", + "items": { + "type": "string" + }, + "title": "optional list of obligations represented in URI format" + } + }, + "description": "Results:\n- bob has permitted authorization to transmit for a resource defined by attr-set-1 attributes and has a watermark obligation\n- bob has denied authorization to transmit a for a resource defined by attr-set-2 attributes\n- alice has permitted authorization to transmit for a resource defined by attr-set-1 attributes\n- alice has denied authorization to transmit a for a resource defined by attr-set-2 attributes\n\n{\n\"entityChainId\": \"ec1\",\n\"resourceAttributesId\": \"attr-set-1\",\n\"decision\": \"DECISION_PERMIT\",\n\"obligations\": [\n\"http://www.example.org/obligation/watermark\"\n]\n},\n{\n\"entityChainId\": \"ec1\",\n\"resourceAttributesId\": \"attr-set-2\",\n\"decision\": \"DECISION_PERMIT\"\n},\n{\n\"entityChainId\": \"ec2\",\n\"resourceAttributesId\": \"attr-set-1\",\n\"decision\": \"DECISION_PERMIT\"\n},\n{\n\"entityChainId\": \"ec2\",\n\"resourceAttributesId\": \"attr-set-2\",\n\"decision\": \"DECISION_DENY\"\n}", + "title": "Example response for a Decision Request - Do Bob (represented by entity chain ec1)\nand Alice (represented by entity chain ec2) have TRANSMIT authorization for\n2 resources; resource1 (attr-set-1) defined by attributes foo:bar resource2 (attr-set-2) defined by attribute foo:bar, color:red ?" + }, + "authorizationDecisionResponseDecision": { + "type": "string", + "enum": [ + "DECISION_UNSPECIFIED", + "DECISION_DENY", + "DECISION_PERMIT" + ], + "default": "DECISION_UNSPECIFIED" + }, + "authorizationEntity": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "emailAddress": { + "type": "string", + "title": "one of the entity options must be set" + }, + "userName": { + "type": "string" + }, + "remoteClaimsUrl": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "claims": { + "$ref": "#/definitions/protobufAny" + }, + "custom": { + "$ref": "#/definitions/authorizationEntityCustom" + }, + "clientId": { + "type": "string" + }, + "category": { + "$ref": "#/definitions/authorizationEntityCategory" + } + }, + "title": "PE (Person Entity) or NPE (Non-Person Entity)" + }, + "authorizationEntityCategory": { + "type": "string", + "enum": [ + "CATEGORY_UNSPECIFIED", + "CATEGORY_SUBJECT", + "CATEGORY_ENVIRONMENT" + ], + "default": "CATEGORY_UNSPECIFIED" + }, + "authorizationEntityChain": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "entities": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationEntity" + } + } + }, + "title": "A set of related PE and NPE" + }, + "authorizationEntityCustom": { + "type": "object", + "properties": { + "extension": { + "$ref": "#/definitions/protobufAny" + } + }, + "title": "Entity type for custom entities beyond the standard types" + }, + "authorizationEntityEntitlements": { + "type": "object", + "properties": { + "entityId": { + "type": "string" + }, + "attributeValueFqns": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "authorizationGetDecisionsByTokenResponse": { + "type": "object", + "properties": { + "decisionResponses": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationDecisionResponse" + } + } + } + }, + "authorizationGetDecisionsRequest": { + "type": "object", + "properties": { + "decisionRequests": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationDecisionRequest" + } + } + } + }, + "authorizationGetDecisionsResponse": { + "type": "object", + "properties": { + "decisionResponses": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationDecisionResponse" + } + } + } + }, + "authorizationGetEntitlementsRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationEntity" + }, + "title": "list of requested entities" + }, + "scope": { + "$ref": "#/definitions/authorizationResourceAttribute", + "title": "optional attribute fqn as a scope" + }, + "withComprehensiveHierarchy": { + "type": "boolean", + "title": "optional parameter to return a full list of entitlements - returns lower hierarchy attributes" + } + }, + "description": "Example: Get entitlements for bob and alice (both represented using an email address\n\n{\n\"entities\": [\n{\n\"id\": \"e1\",\n\"emailAddress\": \"bob@example.org\"\n},\n{\n\"id\": \"e2\",\n\"emailAddress\": \"alice@example.org\"\n}\n],\n\"scope\": {\n\"attributeFqns\": [\n\"https://example.net/attr/attr1/value/value1\",\n\"https://example.net/attr/attr1/value/value2\"\n]\n}\n}", + "title": "Request to get entitlements for one or more entities for an optional attribute scope" + }, + "authorizationGetEntitlementsResponse": { + "type": "object", + "properties": { + "entitlements": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationEntityEntitlements" + } + } + }, + "description": "{\n\"entitlements\": [\n{\n\"entityId\": \"e1\",\n\"attributeValueReferences\": [\n{\n\"attributeFqn\": \"http://www.example.org/attr/foo/value/bar\"\n}\n]\n},\n{\n\"entityId\": \"e2\",\n\"attributeValueReferences\": [\n{\n\"attributeFqn\": \"http://www.example.org/attr/color/value/red\"\n}\n]\n}\n]\n}", + "title": "Example Response for a request of : Get entitlements for bob and alice (both represented using an email address" + }, + "authorizationResourceAttribute": { + "type": "object", + "properties": { + "resourceAttributesId": { + "type": "string" + }, + "attributeValueFqns": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "title": "A logical bucket of attributes belonging to a \"Resource\"" + }, + "authorizationToken": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "jwt": { + "type": "string", + "title": "the token" + } + } + }, + "authorizationTokenDecisionRequest": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyAction" + } + }, + "tokens": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationToken" + } + }, + "resourceAttributes": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationResourceAttribute" + } + } + }, + "description": "{\n\"actions\": [\n{\n\"standard\": \"STANDARD_ACTION_TRANSMIT\"\n}\n],\n\"tokens\": [\n{\n\"id\": \"tok1\",\n\"jwt\": ....\n},\n{\n\"id\": \"tok2\",\n\"jwt\": .....\n}\n],\n\"resourceAttributes\": [\n{\n\"attributeFqns\": [\n\"https://www.example.org/attr/foo/value/value1\"\n]\n},\n{\n\"attributeFqns\": [\n\"https://example.net/attr/attr1/value/value1\",\n\"https://example.net/attr/attr1/value/value2\"\n]\n}\n]\n}", + "title": "Example Request Get Decisions by Token to answer the question - Do Bob and client1 (represented by token tok1)\nand Alice and client2 (represented by token tok2) have TRANSMIT authorization for\n2 resources; resource1 (attr-set-1) defined by attributes foo:bar resource2 (attr-set-2) defined by attribute foo:bar, color:red ?" + }, + "commonMetadata": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "title": "created_at set by server (entity who created will recorded in an audit event)" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "title": "updated_at set by server (entity who updated will recorded in an audit event)" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional short description" + } + }, + "title": "Struct to uniquely identify a resource with optional additional metadata" + }, + "policyAction": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Generated uuid in database" + }, + "standard": { + "$ref": "#/definitions/ActionStandardAction", + "title": "Deprecated" + }, + "custom": { + "type": "string", + "title": "Deprecated" + }, + "name": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "An action an entity can take" + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/authorization/v2/authorization.openapi.yaml b/specs/authorization/v2/authorization.openapi.yaml new file mode 100644 index 0000000..dc54df1 --- /dev/null +++ b/specs/authorization/v2/authorization.openapi.yaml @@ -0,0 +1,754 @@ +openapi: 3.1.0 +info: + title: authorization.v2 +paths: + /authorization.v2.AuthorizationService/GetDecision: + post: + tags: + - authorization.v2.AuthorizationService + summary: GetDecision + operationId: authorization.v2.AuthorizationService.GetDecision + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetDecisionRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetDecisionResponse' + /authorization.v2.AuthorizationService/GetDecisionMultiResource: + post: + tags: + - authorization.v2.AuthorizationService + summary: GetDecisionMultiResource + operationId: authorization.v2.AuthorizationService.GetDecisionMultiResource + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetDecisionMultiResourceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetDecisionMultiResourceResponse' + /authorization.v2.AuthorizationService/GetDecisionBulk: + post: + tags: + - authorization.v2.AuthorizationService + summary: GetDecisionBulk + operationId: authorization.v2.AuthorizationService.GetDecisionBulk + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetDecisionBulkRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetDecisionBulkResponse' + /authorization.v2.AuthorizationService/GetEntitlements: + post: + tags: + - authorization.v2.AuthorizationService + summary: GetEntitlements + operationId: authorization.v2.AuthorizationService.GetEntitlements + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetEntitlementsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetEntitlementsResponse' +components: + schemas: + authorization.v2.Decision: + type: string + title: Decision + enum: + - DECISION_UNSPECIFIED + - DECISION_DENY + - DECISION_PERMIT + entity.Entity.Category: + type: string + title: Category + enum: + - CATEGORY_UNSPECIFIED + - CATEGORY_SUBJECT + - CATEGORY_ENVIRONMENT + policy.Action.StandardAction: + type: string + title: StandardAction + enum: + - STANDARD_ACTION_UNSPECIFIED + - STANDARD_ACTION_DECRYPT + - STANDARD_ACTION_TRANSMIT + authorization.v2.EntityEntitlements: + type: object + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + actionsPerAttributeValueFqn: + type: object + title: actions_per_attribute_value_fqn + additionalProperties: + title: value + $ref: '#/components/schemas/authorization.v2.EntityEntitlements.ActionsList' + title: EntityEntitlements + additionalProperties: false + description: Entitlements for a given entity, mapping each attribute value FQN to any entitled actions[] + authorization.v2.EntityEntitlements.ActionsList: + type: object + properties: + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + title: ActionsList + additionalProperties: false + authorization.v2.EntityEntitlements.ActionsPerAttributeValueFqnEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/authorization.v2.EntityEntitlements.ActionsList' + title: ActionsPerAttributeValueFqnEntry + additionalProperties: false + authorization.v2.EntityIdentifier: + type: object + oneOf: + - properties: + entityChain: + title: entity_chain + description: |+ + chain of one or more entities + entities must be provided: + ``` + has(this.entities) && this.entities.size() > 0 + ``` + + $ref: '#/components/schemas/entity.EntityChain' + title: entity_chain + required: + - entityChain + - properties: + registeredResourceValueFqn: + type: string + title: registered_resource_value_fqn + minLength: 1 + format: uri + description: |- + fully qualified name of the registered resource value stored in platform policy, where in + this case the resource acts as and represents a single entity for authorization/entitlement decisioning + title: registered_resource_value_fqn + required: + - registeredResourceValueFqn + - properties: + token: + title: token + description: |+ + access token (JWT), which is used to create an entity chain (comprising one or more entities) + token must be provided: + ``` + has(this.jwt) && this.jwt.size() > 0 + ``` + + $ref: '#/components/schemas/entity.Token' + title: token + required: + - token + title: EntityIdentifier + additionalProperties: false + description: |- + The EntityIdentifier specifies the actor in an entitlement or decision request - the PE, NPE, or PE+NPE being authorized. + The abstraction houses the distinct entity types, PE and/or NPE combinations, or a registered resource value + being treated as an entity in entitlement/authorization decisioning. + authorization.v2.GetDecisionBulkRequest: + type: object + properties: + decisionRequests: + type: array + items: + $ref: '#/components/schemas/authorization.v2.GetDecisionMultiResourceRequest' + title: decision_requests + title: GetDecisionBulkRequest + additionalProperties: false + description: |- + Is access allowed? + 1. Multiplexing of a Decision request + This is a more performant bulk request for complex decisioning (i.e. multiple entity chains or actions on + multiple resources) + authorization.v2.GetDecisionBulkResponse: + type: object + properties: + decisionResponses: + type: array + items: + $ref: '#/components/schemas/authorization.v2.GetDecisionMultiResourceResponse' + title: decision_responses + title: GetDecisionBulkResponse + additionalProperties: false + authorization.v2.GetDecisionMultiResourceRequest: + type: object + properties: + entityIdentifier: + title: entity_identifier + description: an entity must be identified for authorization decisioning + $ref: '#/components/schemas/authorization.v2.EntityIdentifier' + action: + title: action + description: name on action is required + $ref: '#/components/schemas/policy.Action' + resources: + type: array + items: + $ref: '#/components/schemas/authorization.v2.Resource' + title: resources + minItems: 1 + title: GetDecisionMultiResourceRequest + required: + - entityIdentifier + - action + - resources + additionalProperties: false + description: |+ + Can the identified entity/entities access? + 1. one entity reference (actor) + 2. one action + 3. multiple resources + Note: this is a more performant bulk request for multiple resource decisions + action.name must be provided: + ``` + has(this.action.name) + ``` + + authorization.v2.GetDecisionMultiResourceResponse: + type: object + properties: + allPermitted: + title: all_permitted + description: convenience flag indicating global resource decisions result (permit/deny) + $ref: '#/components/schemas/google.protobuf.BoolValue' + resourceDecisions: + type: array + items: + $ref: '#/components/schemas/authorization.v2.ResourceDecision' + title: resource_decisions + description: individual resource decisions + title: GetDecisionMultiResourceResponse + additionalProperties: false + authorization.v2.GetDecisionRequest: + type: object + properties: + entityIdentifier: + title: entity_identifier + description: an entity must be identified for authorization decisioning + $ref: '#/components/schemas/authorization.v2.EntityIdentifier' + action: + title: action + description: name on action is required + $ref: '#/components/schemas/policy.Action' + resource: + title: resource + $ref: '#/components/schemas/authorization.v2.Resource' + title: GetDecisionRequest + required: + - entityIdentifier + - action + - resource + additionalProperties: false + description: |+ + Can the identified entity/entities access? + 1. one entity reference (actor) + 2. one action + 3. one resource + action.name must be provided: + ``` + has(this.action.name) + ``` + + authorization.v2.GetDecisionResponse: + type: object + properties: + decision: + title: decision + description: |- + decision on the resource optional list of obligations represented in URI format + repeated string obligations = 2; + $ref: '#/components/schemas/authorization.v2.ResourceDecision' + title: GetDecisionResponse + additionalProperties: false + authorization.v2.GetEntitlementsRequest: + type: object + properties: + entityIdentifier: + title: entity_identifier + description: an entity must be identified for entitlement decisioning + $ref: '#/components/schemas/authorization.v2.EntityIdentifier' + withComprehensiveHierarchy: + type: boolean + title: with_comprehensive_hierarchy + description: |- + optional parameter to return all entitled values for attribute definitions with hierarchy rules, propagating + down the hierarchical values instead of returning solely the value that is directly entitled + nullable: true + title: GetEntitlementsRequest + required: + - entityIdentifier + additionalProperties: false + description: |- + What is permitted to the identified entity/entities (actor), broken down as permitted actions on attribute value FQNs? + + Note: the v1 API parameter 'scope' has been dropped, and it is recommended to use + GetDecision if the resource is known + authorization.v2.GetEntitlementsResponse: + type: object + properties: + entitlements: + type: array + items: + $ref: '#/components/schemas/authorization.v2.EntityEntitlements' + title: entitlements + title: GetEntitlementsResponse + additionalProperties: false + authorization.v2.Resource: + type: object + oneOf: + - properties: + attributeValues: + title: attribute_values + description: |+ + if provided, resource.attribute_values must not be empty: + ``` + this.fqns.size() > 0 && this.fqns.all(item, item.isUri()) + ``` + + $ref: '#/components/schemas/authorization.v2.Resource.AttributeValues' + title: attribute_values + required: + - attributeValues + - properties: + registeredResourceValueFqn: + type: string + title: registered_resource_value_fqn + minLength: 1 + format: uri + title: registered_resource_value_fqn + required: + - registeredResourceValueFqn + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + title: Resource + additionalProperties: false + description: Either a set of attribute values (such as those on a TDF) or a registered resource value + authorization.v2.Resource.AttributeValues: + type: object + properties: + fqns: + type: array + items: + type: string + title: fqns + title: AttributeValues + additionalProperties: false + authorization.v2.ResourceDecision: + type: object + properties: + ephemeralResourceId: + type: string + title: ephemeral_resource_id + description: ephemeral id for tracking between request and response + decision: + title: decision + description: decision result + $ref: '#/components/schemas/authorization.v2.Decision' + title: ResourceDecision + additionalProperties: false + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + entity.Entity: + type: object + oneOf: + - properties: + claims: + title: claims + description: used by ERS claims mode + $ref: '#/components/schemas/google.protobuf.Any' + title: claims + required: + - claims + - properties: + clientId: + type: string + title: client_id + title: client_id + required: + - clientId + - properties: + emailAddress: + type: string + title: email_address + title: email_address + required: + - emailAddress + - properties: + userName: + type: string + title: user_name + title: user_name + required: + - userName + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + category: + title: category + $ref: '#/components/schemas/entity.Entity.Category' + title: Entity + additionalProperties: false + description: PE (Person Entity) or NPE (Non-Person Entity) + entity.EntityChain: + type: object + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + entities: + type: array + items: + $ref: '#/components/schemas/entity.Entity' + title: entities + title: EntityChain + additionalProperties: false + description: A set of related PE and NPE + entity.Token: + type: object + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + jwt: + type: string + title: jwt + description: the token + title: Token + required: + - jwt + additionalProperties: false + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. + google.protobuf.BoolValue: + type: boolean + description: |- + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.Action: + type: object + oneOf: + - properties: + custom: + type: string + title: custom + description: Deprecated + title: custom + required: + - custom + - properties: + standard: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + title: standard + required: + - standard + properties: + id: + type: string + title: id + description: Generated uuid in database + name: + type: string + title: name + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: Action + additionalProperties: false + description: An action an entity can take + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' +security: [] +tags: + - name: authorization.v2.AuthorizationService diff --git a/specs/authorization/v2/authorization.swagger.json b/specs/authorization/v2/authorization.swagger.json new file mode 100644 index 0000000..a1e5daa --- /dev/null +++ b/specs/authorization/v2/authorization.swagger.json @@ -0,0 +1,341 @@ +{ + "swagger": "2.0", + "info": { + "title": "authorization/v2/authorization.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "AuthorizationService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "ActionStandardAction": { + "type": "string", + "enum": [ + "STANDARD_ACTION_UNSPECIFIED", + "STANDARD_ACTION_DECRYPT", + "STANDARD_ACTION_TRANSMIT" + ], + "default": "STANDARD_ACTION_UNSPECIFIED", + "title": "- STANDARD_ACTION_DECRYPT: Deprecated\nMigrate to 'read' action name\n - STANDARD_ACTION_TRANSMIT: Deprecated\nMigrate to 'create' action name" + }, + "EntityEntitlementsActionsList": { + "type": "object", + "properties": { + "actions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyAction" + } + } + } + }, + "ResourceAttributeValues": { + "type": "object", + "properties": { + "fqns": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "authorizationv2Decision": { + "type": "string", + "enum": [ + "DECISION_UNSPECIFIED", + "DECISION_DENY", + "DECISION_PERMIT" + ], + "default": "DECISION_UNSPECIFIED", + "title": "- DECISION_PERMIT: DECISION_OBLIGATED = 3;" + }, + "authorizationv2EntityEntitlements": { + "type": "object", + "properties": { + "ephemeralId": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "actionsPerAttributeValueFqn": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/EntityEntitlementsActionsList" + } + } + }, + "title": "Entitlements for a given entity, mapping each attribute value FQN to any entitled actions[]" + }, + "authorizationv2GetEntitlementsResponse": { + "type": "object", + "properties": { + "entitlements": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationv2EntityEntitlements" + } + } + } + }, + "commonMetadata": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "title": "created_at set by server (entity who created will recorded in an audit event)" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "title": "updated_at set by server (entity who updated will recorded in an audit event)" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional short description" + } + }, + "title": "Struct to uniquely identify a resource with optional additional metadata" + }, + "entityEntity": { + "type": "object", + "properties": { + "ephemeralId": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "emailAddress": { + "type": "string" + }, + "userName": { + "type": "string" + }, + "claims": { + "$ref": "#/definitions/protobufAny", + "title": "used by ERS claims mode" + }, + "clientId": { + "type": "string" + }, + "category": { + "$ref": "#/definitions/entityEntityCategory" + } + }, + "title": "PE (Person Entity) or NPE (Non-Person Entity)" + }, + "entityEntityCategory": { + "type": "string", + "enum": [ + "CATEGORY_UNSPECIFIED", + "CATEGORY_SUBJECT", + "CATEGORY_ENVIRONMENT" + ], + "default": "CATEGORY_UNSPECIFIED" + }, + "entityEntityChain": { + "type": "object", + "properties": { + "ephemeralId": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "entities": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/entityEntity" + } + } + }, + "title": "A set of related PE and NPE" + }, + "entityToken": { + "type": "object", + "properties": { + "ephemeralId": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "jwt": { + "type": "string", + "title": "the token" + } + } + }, + "policyAction": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Generated uuid in database" + }, + "standard": { + "$ref": "#/definitions/ActionStandardAction", + "title": "Deprecated" + }, + "custom": { + "type": "string", + "title": "Deprecated" + }, + "name": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "An action an entity can take" + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "v2EntityIdentifier": { + "type": "object", + "properties": { + "entityChain": { + "$ref": "#/definitions/entityEntityChain", + "title": "chain of one or more entities" + }, + "registeredResourceValueFqn": { + "type": "string", + "title": "fully qualified name of the registered resource value stored in platform policy, where in\nthis case the resource acts as and represents a single entity for authorization/entitlement decisioning" + }, + "token": { + "$ref": "#/definitions/entityToken", + "title": "access token (JWT), which is used to create an entity chain (comprising one or more entities)" + } + }, + "description": "The EntityIdentifier specifies the actor in an entitlement or decision request - the PE, NPE, or PE+NPE being authorized.\nThe abstraction houses the distinct entity types, PE and/or NPE combinations, or a registered resource value\nbeing treated as an entity in entitlement/authorization decisioning." + }, + "v2GetDecisionBulkResponse": { + "type": "object", + "properties": { + "decisionResponses": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v2GetDecisionMultiResourceResponse" + } + } + } + }, + "v2GetDecisionMultiResourceRequest": { + "type": "object", + "properties": { + "entityIdentifier": { + "$ref": "#/definitions/v2EntityIdentifier", + "title": "an entity must be identified for authorization decisioning" + }, + "action": { + "$ref": "#/definitions/policyAction", + "title": "name on action is required" + }, + "resources": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v2Resource" + } + } + }, + "title": "Can the identified entity/entities access?\n1. one entity reference (actor)\n2. one action\n3. multiple resources\nNote: this is a more performant bulk request for multiple resource decisions" + }, + "v2GetDecisionMultiResourceResponse": { + "type": "object", + "properties": { + "allPermitted": { + "type": "boolean", + "title": "convenience flag indicating global resource decisions result (permit/deny)" + }, + "resourceDecisions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/v2ResourceDecision" + }, + "title": "individual resource decisions" + } + } + }, + "v2GetDecisionResponse": { + "type": "object", + "properties": { + "decision": { + "$ref": "#/definitions/v2ResourceDecision", + "description": "optional list of obligations represented in URI format\n repeated string obligations = 2;", + "title": "decision on the resource" + } + } + }, + "v2Resource": { + "type": "object", + "properties": { + "ephemeralId": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "attributeValues": { + "$ref": "#/definitions/ResourceAttributeValues" + }, + "registeredResourceValueFqn": { + "type": "string" + } + }, + "title": "Either a set of attribute values (such as those on a TDF) or a registered resource value" + }, + "v2ResourceDecision": { + "type": "object", + "properties": { + "ephemeralResourceId": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "decision": { + "$ref": "#/definitions/authorizationv2Decision", + "title": "decision result" + } + } + } + } +} diff --git a/specs/common/common.openapi.yaml b/specs/common/common.openapi.yaml new file mode 100644 index 0000000..b19945f --- /dev/null +++ b/specs/common/common.openapi.yaml @@ -0,0 +1,171 @@ +openapi: 3.1.0 +info: + title: common +paths: {} +components: + schemas: + common.ActiveStateEnum: + type: string + title: ActiveStateEnum + enum: + - ACTIVE_STATE_ENUM_UNSPECIFIED + - ACTIVE_STATE_ENUM_ACTIVE + - ACTIVE_STATE_ENUM_INACTIVE + - ACTIVE_STATE_ENUM_ANY + description: 'buflint ENUM_VALUE_PREFIX: to make sure that C++ scoping rules aren''t violated when users add new enum values to an enum in a given package' + common.MetadataUpdateEnum: + type: string + title: MetadataUpdateEnum + enum: + - METADATA_UPDATE_ENUM_UNSPECIFIED + - METADATA_UPDATE_ENUM_EXTEND + - METADATA_UPDATE_ENUM_REPLACE + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + common.MetadataMutable: + type: object + properties: + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional labels + title: MetadataMutable + additionalProperties: false + common.MetadataMutable.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. +security: [] diff --git a/specs/common/common.swagger.json b/specs/common/common.swagger.json new file mode 100644 index 0000000..a771c2c --- /dev/null +++ b/specs/common/common.swagger.json @@ -0,0 +1,46 @@ +{ + "swagger": "2.0", + "info": { + "title": "common/common.proto", + "version": "version not set" + }, + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/entity/entity.openapi.yaml b/specs/entity/entity.openapi.yaml new file mode 100644 index 0000000..6484c86 --- /dev/null +++ b/specs/entity/entity.openapi.yaml @@ -0,0 +1,100 @@ +openapi: 3.1.0 +info: + title: entity +paths: {} +components: + schemas: + entity.Entity.Category: + type: string + title: Category + enum: + - CATEGORY_UNSPECIFIED + - CATEGORY_SUBJECT + - CATEGORY_ENVIRONMENT + entity.Entity: + type: object + oneOf: + - properties: + claims: + title: claims + description: used by ERS claims mode + $ref: '#/components/schemas/google.protobuf.Any' + title: claims + required: + - claims + - properties: + clientId: + type: string + title: client_id + title: client_id + required: + - clientId + - properties: + emailAddress: + type: string + title: email_address + title: email_address + required: + - emailAddress + - properties: + userName: + type: string + title: user_name + title: user_name + required: + - userName + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + category: + title: category + $ref: '#/components/schemas/entity.Entity.Category' + title: Entity + additionalProperties: false + description: PE (Person Entity) or NPE (Non-Person Entity) + entity.EntityChain: + type: object + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + entities: + type: array + items: + $ref: '#/components/schemas/entity.Entity' + title: entities + title: EntityChain + additionalProperties: false + description: A set of related PE and NPE + entity.Token: + type: object + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + jwt: + type: string + title: jwt + description: the token + title: Token + required: + - jwt + additionalProperties: false + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. +security: [] diff --git a/specs/entity/entity.swagger.json b/specs/entity/entity.swagger.json new file mode 100644 index 0000000..3256109 --- /dev/null +++ b/specs/entity/entity.swagger.json @@ -0,0 +1,46 @@ +{ + "swagger": "2.0", + "info": { + "title": "entity/entity.proto", + "version": "version not set" + }, + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/entityresolution/entity_resolution.openapi.yaml b/specs/entityresolution/entity_resolution.openapi.yaml new file mode 100644 index 0000000..d89cbda --- /dev/null +++ b/specs/entityresolution/entity_resolution.openapi.yaml @@ -0,0 +1,424 @@ +openapi: 3.1.0 +info: + title: entityresolution +paths: + /entityresolution/resolve: + post: + tags: + - entityresolution.EntityResolutionService + summary: ResolveEntities + description: 'Deprecated: use v2 ResolveEntities instead' + operationId: entityresolution.EntityResolutionService.ResolveEntities + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/entityresolution.ResolveEntitiesRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/entityresolution.ResolveEntitiesResponse' + /entityresolution/entitychain: + post: + tags: + - entityresolution.EntityResolutionService + summary: CreateEntityChainFromJwt + description: 'Deprecated: use v2 CreateEntityChainsFromTokens instead' + operationId: entityresolution.EntityResolutionService.CreateEntityChainFromJwt + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/entityresolution.CreateEntityChainFromJwtRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/entityresolution.CreateEntityChainFromJwtResponse' +components: + schemas: + authorization.Entity.Category: + type: string + title: Category + enum: + - CATEGORY_UNSPECIFIED + - CATEGORY_SUBJECT + - CATEGORY_ENVIRONMENT + google.protobuf.NullValue: + type: string + title: NullValue + enum: + - NULL_VALUE + description: |- + `NullValue` is a singleton enumeration to represent the null value for the + `Value` type union. + + The JSON representation for `NullValue` is JSON `null`. + authorization.Entity: + type: object + oneOf: + - properties: + claims: + title: claims + $ref: '#/components/schemas/google.protobuf.Any' + title: claims + required: + - claims + - properties: + clientId: + type: string + title: client_id + title: client_id + required: + - clientId + - properties: + custom: + title: custom + $ref: '#/components/schemas/authorization.EntityCustom' + title: custom + required: + - custom + - properties: + emailAddress: + type: string + title: email_address + description: one of the entity options must be set + title: email_address + required: + - emailAddress + - properties: + remoteClaimsUrl: + type: string + title: remote_claims_url + title: remote_claims_url + required: + - remoteClaimsUrl + - properties: + userName: + type: string + title: user_name + title: user_name + required: + - userName + - properties: + uuid: + type: string + title: uuid + title: uuid + required: + - uuid + properties: + id: + type: string + title: id + description: ephemeral id for tracking between request and response + category: + title: category + $ref: '#/components/schemas/authorization.Entity.Category' + title: Entity + additionalProperties: false + description: PE (Person Entity) or NPE (Non-Person Entity) + authorization.EntityChain: + type: object + properties: + id: + type: string + title: id + description: ephemeral id for tracking between request and response + entities: + type: array + items: + $ref: '#/components/schemas/authorization.Entity' + title: entities + title: EntityChain + additionalProperties: false + description: A set of related PE and NPE + authorization.EntityCustom: + type: object + properties: + extension: + title: extension + $ref: '#/components/schemas/google.protobuf.Any' + title: EntityCustom + additionalProperties: false + description: Entity type for custom entities beyond the standard types + authorization.Token: + type: object + properties: + id: + type: string + title: id + description: ephemeral id for tracking between request and response + jwt: + type: string + title: jwt + description: the token + title: Token + additionalProperties: false + entityresolution.CreateEntityChainFromJwtRequest: + type: object + properties: + tokens: + type: array + items: + $ref: '#/components/schemas/authorization.Token' + title: tokens + title: CreateEntityChainFromJwtRequest + additionalProperties: false + description: |- + Example: Get Entity chains for tokens aaaaaa and bbbbbb + { + "tokens": [ + "aaaaaaa", + "bbbbbbbb" + ] + } + entityresolution.CreateEntityChainFromJwtResponse: + type: object + properties: + entityChains: + type: array + items: + $ref: '#/components/schemas/authorization.EntityChain' + title: entity_chains + title: CreateEntityChainFromJwtResponse + additionalProperties: false + description: |- + Example: Return the entity chains from the provided tokens + { + "entity_chains": [ + { + "id": "tok1", + "entities": [ + { + "clientId": "client1" + } + ] + }, + { + "id": "tok2", + "entities": [ + { + "userName": "alice", + "clientId": "client2" + } + ] + } + ] + } + entityresolution.EntityNotFoundError: + type: object + properties: + code: + type: integer + title: code + format: int32 + message: + type: string + title: message + details: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Any' + title: details + entity: + type: string + title: entity + title: EntityNotFoundError + additionalProperties: false + entityresolution.EntityRepresentation: + type: object + properties: + additionalProps: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Struct' + title: additional_props + originalId: + type: string + title: original_id + description: ephemeral entity id from the request + title: EntityRepresentation + additionalProperties: false + entityresolution.ResolveEntitiesRequest: + type: object + properties: + entities: + type: array + items: + $ref: '#/components/schemas/authorization.Entity' + title: entities + title: ResolveEntitiesRequest + additionalProperties: false + description: |- + Example: Get idp attributes for bob and alice (both represented using an email address + { + "entities": [ + { + "id": "e1", + "emailAddress": "bob@example.org" + }, + { + "id": "e2", + "emailAddress": "alice@example.org" + } + ] + } + entityresolution.ResolveEntitiesResponse: + type: object + properties: + entityRepresentations: + type: array + items: + $ref: '#/components/schemas/entityresolution.EntityRepresentation' + title: entity_representations + title: ResolveEntitiesResponse + additionalProperties: false + description: |- + Example: Get idp attributes for bob and alice + { + "entity_representations": [ + { + "idp_entity_id": "e1", + "additional_props": {"someAttr1":"someValue1"} + }, + { + "idp_entity_id": "e2", + "additional_props": {"someAttr2":"someValue2"} + } + ] + } + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. + google.protobuf.ListValue: + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Value' + title: values + description: Repeated field of dynamically typed values. + title: ListValue + additionalProperties: false + description: |- + `ListValue` is a wrapper around a repeated field of values. + + The JSON representation for `ListValue` is JSON array. + google.protobuf.Struct: + type: object + additionalProperties: + $ref: '#/components/schemas/google.protobuf.Value' + description: |- + `Struct` represents a structured data value, consisting of fields + which map to dynamically typed values. In some languages, `Struct` + might be supported by a native representation. For example, in + scripting languages like JS a struct is represented as an + object. The details of that representation are described together + with the proto support for the language. + + The JSON representation for `Struct` is JSON object. + google.protobuf.Struct.FieldsEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + title: FieldsEntry + additionalProperties: false + google.protobuf.Value: + oneOf: + - type: "null" + - type: number + - type: string + - type: boolean + - type: array + - type: object + additionalProperties: true + description: |- + `Value` represents a dynamically typed value which can be either + null, a number, a string, a boolean, a recursive struct value, or a + list of values. A producer of value is expected to set one of these + variants. Absence of any variant indicates an error. + + The JSON representation for `Value` is JSON value. + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' +security: [] +tags: + - name: entityresolution.EntityResolutionService diff --git a/specs/entityresolution/entity_resolution.swagger.json b/specs/entityresolution/entity_resolution.swagger.json new file mode 100644 index 0000000..42616b5 --- /dev/null +++ b/specs/entityresolution/entity_resolution.swagger.json @@ -0,0 +1,276 @@ +{ + "swagger": "2.0", + "info": { + "title": "entityresolution/entity_resolution.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "EntityResolutionService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/entityresolution/entitychain": { + "post": { + "summary": "Deprecated: use v2 CreateEntityChainsFromTokens instead", + "operationId": "EntityResolutionService_CreateEntityChainFromJwt", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/entityresolutionCreateEntityChainFromJwtResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/entityresolutionCreateEntityChainFromJwtRequest" + } + } + ], + "tags": [ + "EntityResolutionService" + ] + } + }, + "/entityresolution/resolve": { + "post": { + "summary": "Deprecated: use v2 ResolveEntities instead", + "operationId": "EntityResolutionService_ResolveEntities", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/entityresolutionResolveEntitiesResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/entityresolutionResolveEntitiesRequest" + } + } + ], + "tags": [ + "EntityResolutionService" + ] + } + } + }, + "definitions": { + "authorizationEntity": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "emailAddress": { + "type": "string", + "title": "one of the entity options must be set" + }, + "userName": { + "type": "string" + }, + "remoteClaimsUrl": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "claims": { + "$ref": "#/definitions/protobufAny" + }, + "custom": { + "$ref": "#/definitions/authorizationEntityCustom" + }, + "clientId": { + "type": "string" + }, + "category": { + "$ref": "#/definitions/authorizationEntityCategory" + } + }, + "title": "PE (Person Entity) or NPE (Non-Person Entity)" + }, + "authorizationEntityCategory": { + "type": "string", + "enum": [ + "CATEGORY_UNSPECIFIED", + "CATEGORY_SUBJECT", + "CATEGORY_ENVIRONMENT" + ], + "default": "CATEGORY_UNSPECIFIED" + }, + "authorizationEntityChain": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "entities": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationEntity" + } + } + }, + "title": "A set of related PE and NPE" + }, + "authorizationEntityCustom": { + "type": "object", + "properties": { + "extension": { + "$ref": "#/definitions/protobufAny" + } + }, + "title": "Entity type for custom entities beyond the standard types" + }, + "authorizationToken": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "jwt": { + "type": "string", + "title": "the token" + } + } + }, + "entityresolutionCreateEntityChainFromJwtRequest": { + "type": "object", + "properties": { + "tokens": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationToken" + } + } + }, + "title": "Example: Get Entity chains for tokens aaaaaa and bbbbbb\n{\n\"tokens\": [\n\"aaaaaaa\",\n\"bbbbbbbb\"\n]\n}" + }, + "entityresolutionCreateEntityChainFromJwtResponse": { + "type": "object", + "properties": { + "entityChains": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationEntityChain" + } + } + }, + "title": "Example: Return the entity chains from the provided tokens\n{\n\"entity_chains\": [\n{\n\"id\": \"tok1\",\n\"entities\": [\n{\n\"clientId\": \"client1\"\n}\n]\n},\n{\n\"id\": \"tok2\",\n\"entities\": [\n{\n\"userName\": \"alice\",\n\"clientId\": \"client2\"\n}\n]\n}\n]\n}" + }, + "entityresolutionEntityRepresentation": { + "type": "object", + "properties": { + "additionalProps": { + "type": "array", + "items": { + "type": "object" + } + }, + "originalId": { + "type": "string", + "title": "ephemeral entity id from the request" + } + } + }, + "entityresolutionResolveEntitiesRequest": { + "type": "object", + "properties": { + "entities": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/authorizationEntity" + } + } + }, + "title": "Example: Get idp attributes for bob and alice (both represented using an email address\n{\n\"entities\": [\n{\n\"id\": \"e1\",\n\"emailAddress\": \"bob@example.org\"\n},\n{\n\"id\": \"e2\",\n\"emailAddress\": \"alice@example.org\"\n}\n]\n}" + }, + "entityresolutionResolveEntitiesResponse": { + "type": "object", + "properties": { + "entityRepresentations": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/entityresolutionEntityRepresentation" + } + } + }, + "title": "Example: Get idp attributes for bob and alice\n{\n\"entity_representations\": [\n{\n\"idp_entity_id\": \"e1\",\n\"additional_props\": {\"someAttr1\":\"someValue1\"}\n},\n{\n\"idp_entity_id\": \"e2\",\n\"additional_props\": {\"someAttr2\":\"someValue2\"}\n}\n]\n}" + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "protobufNullValue": { + "type": "string", + "enum": [ + "NULL_VALUE" + ], + "default": "NULL_VALUE", + "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/entityresolution/v2/entity_resolution.openapi.yaml b/specs/entityresolution/v2/entity_resolution.openapi.yaml new file mode 100644 index 0000000..c4a839f --- /dev/null +++ b/specs/entityresolution/v2/entity_resolution.openapi.yaml @@ -0,0 +1,360 @@ +openapi: 3.1.0 +info: + title: entityresolution.v2 +paths: + /entityresolution.v2.EntityResolutionService/ResolveEntities: + post: + tags: + - entityresolution.v2.EntityResolutionService + summary: ResolveEntities + operationId: entityresolution.v2.EntityResolutionService.ResolveEntities + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/entityresolution.v2.ResolveEntitiesRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/entityresolution.v2.ResolveEntitiesResponse' + /entityresolution.v2.EntityResolutionService/CreateEntityChainsFromTokens: + post: + tags: + - entityresolution.v2.EntityResolutionService + summary: CreateEntityChainsFromTokens + operationId: entityresolution.v2.EntityResolutionService.CreateEntityChainsFromTokens + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/entityresolution.v2.CreateEntityChainsFromTokensRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/entityresolution.v2.CreateEntityChainsFromTokensResponse' +components: + schemas: + entity.Entity.Category: + type: string + title: Category + enum: + - CATEGORY_UNSPECIFIED + - CATEGORY_SUBJECT + - CATEGORY_ENVIRONMENT + google.protobuf.NullValue: + type: string + title: NullValue + enum: + - NULL_VALUE + description: |- + `NullValue` is a singleton enumeration to represent the null value for the + `Value` type union. + + The JSON representation for `NullValue` is JSON `null`. + entity.Entity: + type: object + oneOf: + - properties: + claims: + title: claims + description: used by ERS claims mode + $ref: '#/components/schemas/google.protobuf.Any' + title: claims + required: + - claims + - properties: + clientId: + type: string + title: client_id + title: client_id + required: + - clientId + - properties: + emailAddress: + type: string + title: email_address + title: email_address + required: + - emailAddress + - properties: + userName: + type: string + title: user_name + title: user_name + required: + - userName + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + category: + title: category + $ref: '#/components/schemas/entity.Entity.Category' + title: Entity + additionalProperties: false + description: PE (Person Entity) or NPE (Non-Person Entity) + entity.EntityChain: + type: object + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + entities: + type: array + items: + $ref: '#/components/schemas/entity.Entity' + title: entities + title: EntityChain + additionalProperties: false + description: A set of related PE and NPE + entity.Token: + type: object + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + jwt: + type: string + title: jwt + description: the token + title: Token + required: + - jwt + additionalProperties: false + entityresolution.v2.CreateEntityChainsFromTokensRequest: + type: object + properties: + tokens: + type: array + items: + $ref: '#/components/schemas/entity.Token' + title: tokens + title: CreateEntityChainsFromTokensRequest + additionalProperties: false + description: Create an entity chain for each token (JWT) in the request. + entityresolution.v2.CreateEntityChainsFromTokensResponse: + type: object + properties: + entityChains: + type: array + items: + $ref: '#/components/schemas/entity.EntityChain' + title: entity_chains + title: CreateEntityChainsFromTokensResponse + additionalProperties: false + entityresolution.v2.EntityNotFoundError: + type: object + properties: + code: + type: integer + title: code + format: int32 + message: + type: string + title: message + details: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Any' + title: details + entity: + type: string + title: entity + title: EntityNotFoundError + additionalProperties: false + entityresolution.v2.EntityRepresentation: + type: object + properties: + originalId: + type: string + title: original_id + description: ephemeral entity id from the request + additionalProps: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Struct' + title: additional_props + title: EntityRepresentation + additionalProperties: false + entityresolution.v2.ResolveEntitiesRequest: + type: object + properties: + entities: + type: array + items: + $ref: '#/components/schemas/entity.Entity' + title: entities + minItems: 1 + title: ResolveEntitiesRequest + required: + - entities + additionalProperties: false + description: Resolve a set of entities to their representations. + entityresolution.v2.ResolveEntitiesResponse: + type: object + properties: + entityRepresentations: + type: array + items: + $ref: '#/components/schemas/entityresolution.v2.EntityRepresentation' + title: entity_representations + title: ResolveEntitiesResponse + additionalProperties: false + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. + google.protobuf.ListValue: + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Value' + title: values + description: Repeated field of dynamically typed values. + title: ListValue + additionalProperties: false + description: |- + `ListValue` is a wrapper around a repeated field of values. + + The JSON representation for `ListValue` is JSON array. + google.protobuf.Struct: + type: object + additionalProperties: + $ref: '#/components/schemas/google.protobuf.Value' + description: |- + `Struct` represents a structured data value, consisting of fields + which map to dynamically typed values. In some languages, `Struct` + might be supported by a native representation. For example, in + scripting languages like JS a struct is represented as an + object. The details of that representation are described together + with the proto support for the language. + + The JSON representation for `Struct` is JSON object. + google.protobuf.Struct.FieldsEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + title: FieldsEntry + additionalProperties: false + google.protobuf.Value: + oneOf: + - type: "null" + - type: number + - type: string + - type: boolean + - type: array + - type: object + additionalProperties: true + description: |- + `Value` represents a dynamically typed value which can be either + null, a number, a string, a boolean, a recursive struct value, or a + list of values. A producer of value is expected to set one of these + variants. Absence of any variant indicates an error. + + The JSON representation for `Value` is JSON value. + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' +security: [] +tags: + - name: entityresolution.v2.EntityResolutionService diff --git a/specs/entityresolution/v2/entity_resolution.swagger.json b/specs/entityresolution/v2/entity_resolution.swagger.json new file mode 100644 index 0000000..8c24c51 --- /dev/null +++ b/specs/entityresolution/v2/entity_resolution.swagger.json @@ -0,0 +1,163 @@ +{ + "swagger": "2.0", + "info": { + "title": "entityresolution/v2/entity_resolution.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "EntityResolutionService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "entityEntity": { + "type": "object", + "properties": { + "ephemeralId": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "emailAddress": { + "type": "string" + }, + "userName": { + "type": "string" + }, + "claims": { + "$ref": "#/definitions/protobufAny", + "title": "used by ERS claims mode" + }, + "clientId": { + "type": "string" + }, + "category": { + "$ref": "#/definitions/entityEntityCategory" + } + }, + "title": "PE (Person Entity) or NPE (Non-Person Entity)" + }, + "entityEntityCategory": { + "type": "string", + "enum": [ + "CATEGORY_UNSPECIFIED", + "CATEGORY_SUBJECT", + "CATEGORY_ENVIRONMENT" + ], + "default": "CATEGORY_UNSPECIFIED" + }, + "entityEntityChain": { + "type": "object", + "properties": { + "ephemeralId": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "entities": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/entityEntity" + } + } + }, + "title": "A set of related PE and NPE" + }, + "entityToken": { + "type": "object", + "properties": { + "ephemeralId": { + "type": "string", + "title": "ephemeral id for tracking between request and response" + }, + "jwt": { + "type": "string", + "title": "the token" + } + } + }, + "entityresolutionv2EntityRepresentation": { + "type": "object", + "properties": { + "originalId": { + "type": "string", + "title": "ephemeral entity id from the request" + }, + "additionalProps": { + "type": "array", + "items": { + "type": "object" + } + } + } + }, + "entityresolutionv2ResolveEntitiesResponse": { + "type": "object", + "properties": { + "entityRepresentations": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/entityresolutionv2EntityRepresentation" + } + } + } + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "protobufNullValue": { + "type": "string", + "enum": [ + "NULL_VALUE" + ], + "default": "NULL_VALUE", + "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "v2CreateEntityChainsFromTokensResponse": { + "type": "object", + "properties": { + "entityChains": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/entityEntityChain" + } + } + } + } + } +} diff --git a/specs/kas/kas.openapi.yaml b/specs/kas/kas.openapi.yaml new file mode 100644 index 0000000..25023a8 --- /dev/null +++ b/specs/kas/kas.openapi.yaml @@ -0,0 +1,495 @@ +openapi: 3.1.0 +info: + title: kas +paths: + /kas/v2/kas_public_key: + get: + tags: + - kas.AccessService + summary: PublicKey + operationId: kas.AccessService.PublicKey + parameters: + - name: algorithm + in: query + schema: + type: string + title: algorithm + - name: fmt + in: query + schema: + type: string + title: fmt + - name: v + in: query + schema: + type: string + title: v + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/kas.PublicKeyResponse' + /kas/kas_public_key: + get: + tags: + - kas.AccessService + summary: LegacyPublicKey + description: buf:lint:ignore RPC_RESPONSE_STANDARD_NAME + operationId: kas.AccessService.LegacyPublicKey + parameters: + - name: algorithm + in: query + schema: + type: string + title: algorithm + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/google.protobuf.StringValue' + /kas/v2/rewrap: + post: + tags: + - kas.AccessService + summary: Rewrap + operationId: kas.AccessService.Rewrap + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/kas.RewrapRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/kas.RewrapResponse' +components: + schemas: + google.protobuf.NullValue: + type: string + title: NullValue + enum: + - NULL_VALUE + description: |- + `NullValue` is a singleton enumeration to represent the null value for the + `Value` type union. + + The JSON representation for `NullValue` is JSON `null`. + google.protobuf.ListValue: + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Value' + title: values + description: Repeated field of dynamically typed values. + title: ListValue + additionalProperties: false + description: |- + `ListValue` is a wrapper around a repeated field of values. + + The JSON representation for `ListValue` is JSON array. + google.protobuf.StringValue: + type: string + description: |- + Wrapper message for `string`. + + The JSON representation for `StringValue` is JSON string. + google.protobuf.Struct: + type: object + additionalProperties: + $ref: '#/components/schemas/google.protobuf.Value' + description: |- + `Struct` represents a structured data value, consisting of fields + which map to dynamically typed values. In some languages, `Struct` + might be supported by a native representation. For example, in + scripting languages like JS a struct is represented as an + object. The details of that representation are described together + with the proto support for the language. + + The JSON representation for `Struct` is JSON object. + google.protobuf.Struct.FieldsEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + title: FieldsEntry + additionalProperties: false + google.protobuf.Value: + oneOf: + - type: "null" + - type: number + - type: string + - type: boolean + - type: array + - type: object + additionalProperties: true + description: |- + `Value` represents a dynamically typed value which can be either + null, a number, a string, a boolean, a recursive struct value, or a + list of values. A producer of value is expected to set one of these + variants. Absence of any variant indicates an error. + + The JSON representation for `Value` is JSON value. + kas.InfoRequest: + type: object + title: InfoRequest + additionalProperties: false + description: Intentionally empty. May include features later. + kas.InfoResponse: + type: object + properties: + version: + type: string + title: version + title: InfoResponse + additionalProperties: false + description: Service application level metadata + kas.KeyAccess: + type: object + properties: + encryptedMetadata: + type: string + title: encrypted_metadata + policyBinding: + title: policy_binding + $ref: '#/components/schemas/kas.PolicyBinding' + protocol: + type: string + title: protocol + type: + type: string + title: key_type + url: + type: string + title: kas_url + kid: + type: string + title: kid + sid: + type: string + title: split_id + wrappedKey: + type: string + title: wrapped_key + format: byte + header: + type: string + title: header + format: byte + description: header is only used for NanoTDFs + ephemeralPublicKey: + type: string + title: ephemeral_public_key + description: |- + For wrapping with an ECDH derived key, when type=ec-wrapped. + Should be a PEM-encoded PKCS#8 (asn.1) value. + title: KeyAccess + additionalProperties: false + kas.KeyAccessRewrapResult: + type: object + oneOf: + - properties: + error: + type: string + title: error + title: error + required: + - error + - properties: + kasWrappedKey: + type: string + title: kas_wrapped_key + format: byte + title: kas_wrapped_key + required: + - kasWrappedKey + properties: + metadata: + type: object + title: metadata + additionalProperties: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + keyAccessObjectId: + type: string + title: key_access_object_id + status: + type: string + title: status + title: KeyAccessRewrapResult + additionalProperties: false + kas.KeyAccessRewrapResult.MetadataEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + title: MetadataEntry + additionalProperties: false + kas.LegacyPublicKeyRequest: + type: object + properties: + algorithm: + type: string + title: algorithm + title: LegacyPublicKeyRequest + additionalProperties: false + kas.PolicyBinding: + type: object + properties: + alg: + type: string + title: algorithm + hash: + type: string + title: hash + title: PolicyBinding + additionalProperties: false + kas.PolicyRewrapResult: + type: object + properties: + policyId: + type: string + title: policy_id + results: + type: array + items: + $ref: '#/components/schemas/kas.KeyAccessRewrapResult' + title: results + title: PolicyRewrapResult + additionalProperties: false + kas.PublicKeyRequest: + type: object + properties: + algorithm: + type: string + title: algorithm + fmt: + type: string + title: fmt + v: + type: string + title: v + title: PublicKeyRequest + additionalProperties: false + kas.PublicKeyResponse: + type: object + properties: + publicKey: + type: string + title: public_key + kid: + type: string + title: kid + title: PublicKeyResponse + additionalProperties: false + kas.RewrapRequest: + type: object + properties: + signedRequestToken: + type: string + title: signed_request_token + title: RewrapRequest + additionalProperties: false + kas.RewrapResponse: + type: object + properties: + metadata: + type: object + title: metadata + additionalProperties: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + deprecated: true + entityWrappedKey: + type: string + title: entity_wrapped_key + format: byte + deprecated: true + sessionPublicKey: + type: string + title: session_public_key + schemaVersion: + type: string + title: schema_version + deprecated: true + responses: + type: array + items: + $ref: '#/components/schemas/kas.PolicyRewrapResult' + title: responses + description: New Rewrap API changes + title: RewrapResponse + additionalProperties: false + kas.RewrapResponse.MetadataEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + title: MetadataEntry + additionalProperties: false + kas.UnsignedRewrapRequest: + type: object + properties: + clientPublicKey: + type: string + title: client_public_key + requests: + type: array + items: + $ref: '#/components/schemas/kas.UnsignedRewrapRequest.WithPolicyRequest' + title: requests + keyAccess: + title: key_access + description: Used for legacy non-bulk requests + deprecated: true + $ref: '#/components/schemas/kas.KeyAccess' + policy: + type: string + title: policy + description: Used for legacy non-bulk requests + deprecated: true + algorithm: + type: string + title: algorithm + description: Used for legacy non-bulk requests + deprecated: true + title: UnsignedRewrapRequest + additionalProperties: false + kas.UnsignedRewrapRequest.WithKeyAccessObject: + type: object + properties: + keyAccessObjectId: + type: string + title: key_access_object_id + keyAccessObject: + title: key_access_object + $ref: '#/components/schemas/kas.KeyAccess' + title: WithKeyAccessObject + additionalProperties: false + kas.UnsignedRewrapRequest.WithPolicy: + type: object + properties: + id: + type: string + title: id + body: + type: string + title: body + title: WithPolicy + additionalProperties: false + kas.UnsignedRewrapRequest.WithPolicyRequest: + type: object + properties: + keyAccessObjects: + type: array + items: + $ref: '#/components/schemas/kas.UnsignedRewrapRequest.WithKeyAccessObject' + title: key_access_objects + policy: + title: policy + $ref: '#/components/schemas/kas.UnsignedRewrapRequest.WithPolicy' + algorithm: + type: string + title: algorithm + title: WithPolicyRequest + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. +security: [] +tags: + - name: kas.AccessService + description: Get app info from the root path diff --git a/specs/kas/kas.swagger.json b/specs/kas/kas.swagger.json new file mode 100644 index 0000000..d422537 --- /dev/null +++ b/specs/kas/kas.swagger.json @@ -0,0 +1,255 @@ +{ + "swagger": "2.0", + "info": { + "title": "OpenTDF Key Access Service", + "version": "1.5.0", + "license": { + "name": "BSD 3-Clause Clear", + "url": "https://github.com/opentdf/backend/blob/master/LICENSE" + } + }, + "tags": [ + { + "name": "AccessService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/kas/kas_public_key": { + "get": { + "summary": "buf:lint:ignore RPC_RESPONSE_STANDARD_NAME", + "operationId": "AccessService_LegacyPublicKey", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "type": "string" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "algorithm", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AccessService" + ] + } + }, + "/kas/v2/kas_public_key": { + "get": { + "operationId": "AccessService_PublicKey", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/kasPublicKeyResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "algorithm", + "description": "algorithm type rsa:\u003ckeysize\u003e or ec:\u003ccurvename\u003e", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "fmt", + "description": "response format", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "v", + "description": "request version", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AccessService" + ] + } + }, + "/kas/v2/rewrap": { + "post": { + "operationId": "AccessService_Rewrap", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/kasRewrapResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/kasRewrapRequest" + } + } + ], + "tags": [ + "AccessService" + ] + } + } + }, + "definitions": { + "kasKeyAccessRewrapResult": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "additionalProperties": {} + }, + "keyAccessObjectId": { + "type": "string" + }, + "status": { + "type": "string" + }, + "kasWrappedKey": { + "type": "string", + "format": "byte" + }, + "error": { + "type": "string" + } + } + }, + "kasPolicyRewrapResult": { + "type": "object", + "properties": { + "policyId": { + "type": "string" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/kasKeyAccessRewrapResult" + } + } + } + }, + "kasPublicKeyResponse": { + "type": "object", + "properties": { + "publicKey": { + "type": "string" + }, + "kid": { + "type": "string" + } + } + }, + "kasRewrapRequest": { + "type": "object", + "properties": { + "signedRequestToken": { + "type": "string" + } + } + }, + "kasRewrapResponse": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "additionalProperties": {} + }, + "entityWrappedKey": { + "type": "string", + "format": "byte" + }, + "sessionPublicKey": { + "type": "string" + }, + "schemaVersion": { + "type": "string" + }, + "responses": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/kasPolicyRewrapResult" + }, + "title": "New Rewrap API changes" + } + } + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "protobufNullValue": { + "type": "string", + "enum": [ + "NULL_VALUE" + ], + "default": "NULL_VALUE", + "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/policy/actions/actions.openapi.yaml b/specs/policy/actions/actions.openapi.yaml new file mode 100644 index 0000000..619dcd2 --- /dev/null +++ b/specs/policy/actions/actions.openapi.yaml @@ -0,0 +1,1151 @@ +openapi: 3.1.0 +info: + title: policy.actions +paths: + /policy.actions.ActionService/GetAction: + post: + tags: + - policy.actions.ActionService + summary: GetAction + operationId: policy.actions.ActionService.GetAction + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.actions.GetActionRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.actions.GetActionResponse' + /policy.actions.ActionService/ListActions: + post: + tags: + - policy.actions.ActionService + summary: ListActions + operationId: policy.actions.ActionService.ListActions + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.actions.ListActionsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.actions.ListActionsResponse' + /policy.actions.ActionService/CreateAction: + post: + tags: + - policy.actions.ActionService + summary: CreateAction + operationId: policy.actions.ActionService.CreateAction + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.actions.CreateActionRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.actions.CreateActionResponse' + /policy.actions.ActionService/UpdateAction: + post: + tags: + - policy.actions.ActionService + summary: UpdateAction + operationId: policy.actions.ActionService.UpdateAction + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.actions.UpdateActionRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.actions.UpdateActionResponse' + /policy.actions.ActionService/DeleteAction: + post: + tags: + - policy.actions.ActionService + summary: DeleteAction + operationId: policy.actions.ActionService.DeleteAction + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.actions.DeleteActionRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.actions.DeleteActionResponse' +components: + schemas: + common.MetadataUpdateEnum: + type: string + title: MetadataUpdateEnum + enum: + - METADATA_UPDATE_ENUM_UNSPECIFIED + - METADATA_UPDATE_ENUM_EXTEND + - METADATA_UPDATE_ENUM_REPLACE + policy.Action.StandardAction: + type: string + title: StandardAction + enum: + - STANDARD_ACTION_UNSPECIFIED + - STANDARD_ACTION_DECRYPT + - STANDARD_ACTION_TRANSMIT + policy.Algorithm: + type: string + title: Algorithm + enum: + - ALGORITHM_UNSPECIFIED + - ALGORITHM_RSA_2048 + - ALGORITHM_RSA_4096 + - ALGORITHM_EC_P256 + - ALGORITHM_EC_P384 + - ALGORITHM_EC_P521 + description: Supported key algorithms. + policy.AttributeRuleTypeEnum: + type: string + title: AttributeRuleTypeEnum + enum: + - ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED + - ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF + - ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF + - ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY + policy.ConditionBooleanTypeEnum: + type: string + title: ConditionBooleanTypeEnum + enum: + - CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED + - CONDITION_BOOLEAN_TYPE_ENUM_AND + - CONDITION_BOOLEAN_TYPE_ENUM_OR + policy.KasPublicKeyAlgEnum: + type: string + title: KasPublicKeyAlgEnum + enum: + - KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048 + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1 + policy.SourceType: + type: string + title: SourceType + enum: + - SOURCE_TYPE_UNSPECIFIED + - SOURCE_TYPE_INTERNAL + - SOURCE_TYPE_EXTERNAL + description: |- + Describes whether this kas is managed by the organization or if they imported + the kas information from an external party. These two modes are necessary in order + to encrypt a tdf dek with an external parties kas public key. + policy.SubjectMappingOperatorEnum: + type: string + title: SubjectMappingOperatorEnum + enum: + - SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED + - SUBJECT_MAPPING_OPERATOR_ENUM_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + common.MetadataMutable: + type: object + properties: + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional labels + title: MetadataMutable + additionalProperties: false + common.MetadataMutable.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.BoolValue: + type: boolean + description: |- + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.Action: + type: object + oneOf: + - properties: + custom: + type: string + title: custom + description: Deprecated + title: custom + required: + - custom + - properties: + standard: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + title: standard + required: + - standard + properties: + id: + type: string + title: id + description: Generated uuid in database + name: + type: string + title: name + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: Action + additionalProperties: false + description: An action an entity can take + policy.Attribute: + type: object + properties: + id: + type: string + title: id + namespace: + title: namespace + description: namespace of the attribute + $ref: '#/components/schemas/policy.Namespace' + name: + type: string + title: name + description: attribute name + rule: + title: rule + description: attribute rule enum + $ref: '#/components/schemas/policy.AttributeRuleTypeEnum' + values: + type: array + items: + $ref: '#/components/schemas/policy.Value' + title: values + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: Deprecated + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys associated with the attribute + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Attribute + required: + - rule + additionalProperties: false + policy.Condition: + type: object + properties: + subjectExternalSelectorValue: + type: string + title: subject_external_selector_value + description: |- + a selector for a field value on a flattened Entity Representation (such as + from idP/LDAP) + operator: + title: operator + description: the evaluation operator of relation + $ref: '#/components/schemas/policy.SubjectMappingOperatorEnum' + subjectExternalValues: + type: array + items: + type: string + minItems: 1 + title: subject_external_values + minItems: 1 + description: |- + list of comparison values for the result of applying the + subject_external_selector_value on a flattened Entity Representation + (Subject), evaluated by the operator + title: Condition + required: + - subjectExternalSelectorValue + - operator + additionalProperties: false + description: |- + * + A Condition defines a rule of + policy.ConditionGroup: + type: object + properties: + conditions: + type: array + items: + $ref: '#/components/schemas/policy.Condition' + title: conditions + minItems: 1 + booleanOperator: + title: boolean_operator + description: the boolean evaluation type across the conditions + $ref: '#/components/schemas/policy.ConditionBooleanTypeEnum' + title: ConditionGroup + required: + - booleanOperator + additionalProperties: false + description: A collection of Conditions evaluated by the boolean_operator provided + policy.KasPublicKey: + type: object + properties: + pem: + type: string + title: pem + maxLength: 8192 + minLength: 1 + description: x509 ASN.1 content in PEM envelope, usually + kid: + type: string + title: kid + maxLength: 32 + minLength: 1 + description: A unique string identifier for this key + alg: + not: + enum: + - 0 + title: alg + description: |- + A known algorithm type with any additional parameters encoded. + To start, these may be `rsa:2048` for encrypting ZTDF files and + `ec:secp256r1` for nanoTDF, but more formats may be added as needed. + $ref: '#/components/schemas/policy.KasPublicKeyAlgEnum' + title: KasPublicKey + additionalProperties: false + description: |- + Deprecated + A KAS public key and some associated metadata for further identifcation + policy.KasPublicKeySet: + type: object + properties: + keys: + type: array + items: + $ref: '#/components/schemas/policy.KasPublicKey' + title: keys + title: KasPublicKeySet + additionalProperties: false + description: |- + Deprecated + A list of known KAS public keys + policy.KeyAccessServer: + type: object + properties: + id: + type: string + title: id + uri: + type: string + title: uri + description: |+ + Address of a KAS instance + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https?://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$') + ``` + + publicKey: + title: public_key + description: Deprecated + $ref: '#/components/schemas/policy.PublicKey' + sourceType: + title: source_type + description: 'The source of the KAS: (INTERNAL, EXTERNAL)' + $ref: '#/components/schemas/policy.SourceType' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Kas keys associated with this KAS + name: + type: string + title: name + description: |- + Optional + Unique name of the KAS instance + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: KeyAccessServer + additionalProperties: false + description: Key Access Server Registry + policy.Namespace: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + name: + type: string + title: name + description: |- + used to partition Attribute Definitions, support by namespace AuthN and + enable federation + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: KAS grants for the namespace + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys for the namespace + title: Namespace + additionalProperties: false + policy.PageRequest: + type: object + properties: + limit: + type: integer + title: limit + format: int32 + description: |- + Optional + Set to configured default limit if not provided + Maximum limit set in platform config and enforced by services + offset: + type: integer + title: offset + format: int32 + description: |- + Optional + Defaulted if not provided + title: PageRequest + additionalProperties: false + policy.PageResponse: + type: object + properties: + currentOffset: + type: integer + title: current_offset + format: int32 + description: Requested pagination offset + nextOffset: + type: integer + title: next_offset + format: int32 + description: |- + Calculated with request limit + offset or defaults + Empty when none remain after current page + total: + type: integer + title: total + format: int32 + description: Total count of entire list + title: PageResponse + additionalProperties: false + policy.PublicKey: + type: object + oneOf: + - properties: + cached: + title: cached + description: public key with additional information. Current preferred version + $ref: '#/components/schemas/policy.KasPublicKeySet' + title: cached + required: + - cached + - properties: + remote: + type: string + title: remote + description: |+ + kas public key url - optional since can also be retrieved via public key + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(/.*)?$') + ``` + + title: remote + required: + - remote + title: PublicKey + additionalProperties: false + description: Deprecated + policy.ResourceMapping: + type: object + properties: + id: + type: string + title: id + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + attributeValue: + title: attribute_value + $ref: '#/components/schemas/policy.Value' + terms: + type: array + items: + type: string + title: terms + group: + title: group + $ref: '#/components/schemas/policy.ResourceMappingGroup' + title: ResourceMapping + required: + - attributeValue + additionalProperties: false + description: |- + Resource Mappings (aka Access Control Resource Encodings aka ACRE) are + structures supporting the mapping of Resources and Attribute Values + policy.ResourceMappingGroup: + type: object + properties: + id: + type: string + title: id + namespaceId: + type: string + title: namespace_id + description: the namespace containing the group of resource mappings + name: + type: string + title: name + description: |- + the common name for the group of resource mappings, which must be unique + per namespace + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: ResourceMappingGroup + required: + - namespaceId + - name + additionalProperties: false + description: |- + Resource Mapping Groups are namespaced collections of Resource Mappings + associated under a common group name. + policy.SimpleKasKey: + type: object + properties: + kasUri: + type: string + title: kas_uri + description: The URL of the Key Access Server + publicKey: + title: public_key + description: The public key of the Key that belongs to the KAS + $ref: '#/components/schemas/policy.SimpleKasPublicKey' + kasId: + type: string + title: kas_id + description: The ID of the Key Access Server + title: SimpleKasKey + additionalProperties: false + policy.SimpleKasPublicKey: + type: object + properties: + algorithm: + title: algorithm + $ref: '#/components/schemas/policy.Algorithm' + kid: + type: string + title: kid + pem: + type: string + title: pem + title: SimpleKasPublicKey + additionalProperties: false + policy.SubjectConditionSet: + type: object + properties: + id: + type: string + title: id + subjectSets: + type: array + items: + $ref: '#/components/schemas/policy.SubjectSet' + title: subject_sets + minItems: 1 + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectConditionSet + additionalProperties: false + description: |- + A container for multiple Subject Sets, each containing Condition Groups, each + containing Conditions. Multiple Subject Sets in a SubjectConditionSet are + evaluated with AND logic. As each Subject Mapping has only one Attribute + Value, the SubjectConditionSet is reusable across multiple Subject Mappings / + Attribute Values and is an independent unit. + policy.SubjectMapping: + type: object + properties: + id: + type: string + title: id + attributeValue: + title: attribute_value + description: 'the Attribute Value mapped to; aka: "The Entity Entitlement Attribute"' + $ref: '#/components/schemas/policy.Value' + subjectConditionSet: + title: subject_condition_set + description: the reusable SubjectConditionSet mapped to the given Attribute Value + $ref: '#/components/schemas/policy.SubjectConditionSet' + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + description: The actions permitted by subjects in this mapping + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectMapping + additionalProperties: false + description: |- + Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute + value + action(s) combination + policy.SubjectSet: + type: object + properties: + conditionGroups: + type: array + items: + $ref: '#/components/schemas/policy.ConditionGroup' + title: condition_groups + minItems: 1 + description: multiple Condition Groups are evaluated with AND logic + title: SubjectSet + additionalProperties: false + description: A collection of Condition Groups + policy.Value: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + value: + type: string + title: value + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: |- + Deprecated + list of key access servers + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + subjectMappings: + type: array + items: + $ref: '#/components/schemas/policy.SubjectMapping' + title: subject_mappings + description: subject mapping + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + resourceMappings: + type: array + items: + $ref: '#/components/schemas/policy.ResourceMapping' + title: resource_mappings + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Value + additionalProperties: false + policy.actions.CreateActionRequest: + type: object + properties: + name: + type: string + title: name + maxLength: 253 + description: |+ + Required + Action name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.: + ``` + this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') + ``` + + metadata: + title: metadata + description: Optional + $ref: '#/components/schemas/common.MetadataMutable' + title: CreateActionRequest + required: + - name + additionalProperties: false + description: |- + Create a new Custom action name with optional metadata. + Creation of Standard actions is not supported. + policy.actions.CreateActionResponse: + type: object + properties: + action: + title: action + $ref: '#/components/schemas/policy.Action' + title: CreateActionResponse + additionalProperties: false + policy.actions.DeleteActionRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: DeleteActionRequest + additionalProperties: false + description: 'Custom only: deletion of Standard actions is not supported.' + policy.actions.DeleteActionResponse: + type: object + properties: + action: + title: action + $ref: '#/components/schemas/policy.Action' + title: DeleteActionResponse + additionalProperties: false + policy.actions.GetActionRequest: + type: object + oneOf: + - properties: + id: + type: string + title: id + format: uuid + title: id + required: + - id + - properties: + name: + type: string + title: name + maxLength: 253 + description: |+ + Action name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.: + ``` + this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') + ``` + + title: name + required: + - name + title: GetActionRequest + additionalProperties: false + policy.actions.GetActionResponse: + type: object + properties: + action: + title: action + $ref: '#/components/schemas/policy.Action' + subjectMappings: + type: array + items: + $ref: '#/components/schemas/policy.SubjectMapping' + title: subject_mappings + description: Subject Mappings driving entitlement to the action + title: GetActionResponse + additionalProperties: false + policy.actions.ListActionsRequest: + type: object + properties: + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListActionsRequest + additionalProperties: false + policy.actions.ListActionsResponse: + type: object + properties: + actionsStandard: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions_standard + actionsCustom: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions_custom + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListActionsResponse + additionalProperties: false + policy.actions.UpdateActionRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + name: + type: string + title: name + maxLength: 253 + description: |+ + Optional + Custom actions only: replaces the existing action name + Action name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.: + ``` + size(this) == 0 || this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') + ``` + + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateActionRequest + additionalProperties: false + description: |- + Metadata may be updated for either Custom or Standard actions. + Names may only be updated for Custom actions. + policy.actions.UpdateActionResponse: + type: object + properties: + action: + title: action + $ref: '#/components/schemas/policy.Action' + title: UpdateActionResponse + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. +security: [] +tags: + - name: policy.actions.ActionService diff --git a/specs/policy/actions/actions.swagger.json b/specs/policy/actions/actions.swagger.json new file mode 100644 index 0000000..45ed7bf --- /dev/null +++ b/specs/policy/actions/actions.swagger.json @@ -0,0 +1,698 @@ +{ + "swagger": "2.0", + "info": { + "title": "policy/actions/actions.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "ActionService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "ActionStandardAction": { + "type": "string", + "enum": [ + "STANDARD_ACTION_UNSPECIFIED", + "STANDARD_ACTION_DECRYPT", + "STANDARD_ACTION_TRANSMIT" + ], + "default": "STANDARD_ACTION_UNSPECIFIED", + "title": "- STANDARD_ACTION_DECRYPT: Deprecated\nMigrate to 'read' action name\n - STANDARD_ACTION_TRANSMIT: Deprecated\nMigrate to 'create' action name" + }, + "actionsCreateActionResponse": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/policyAction" + } + } + }, + "actionsDeleteActionResponse": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/policyAction" + } + } + }, + "actionsGetActionResponse": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/policyAction" + }, + "subjectMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectMapping" + }, + "title": "Subject Mappings driving entitlement to the action" + } + } + }, + "actionsListActionsResponse": { + "type": "object", + "properties": { + "actionsStandard": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyAction" + } + }, + "actionsCustom": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyAction" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + } + }, + "actionsUpdateActionResponse": { + "type": "object", + "properties": { + "action": { + "$ref": "#/definitions/policyAction" + } + } + }, + "commonMetadata": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "title": "created_at set by server (entity who created will recorded in an audit event)" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "title": "updated_at set by server (entity who updated will recorded in an audit event)" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional short description" + } + }, + "title": "Struct to uniquely identify a resource with optional additional metadata" + }, + "commonMetadataMutable": { + "type": "object", + "properties": { + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional labels" + } + } + }, + "commonMetadataUpdateEnum": { + "type": "string", + "enum": [ + "METADATA_UPDATE_ENUM_UNSPECIFIED", + "METADATA_UPDATE_ENUM_EXTEND", + "METADATA_UPDATE_ENUM_REPLACE" + ], + "default": "METADATA_UPDATE_ENUM_UNSPECIFIED", + "title": "- METADATA_UPDATE_ENUM_UNSPECIFIED: unspecified update type\n - METADATA_UPDATE_ENUM_EXTEND: only update the fields that are provided\n - METADATA_UPDATE_ENUM_REPLACE: replace the entire metadata with the provided metadata" + }, + "policyAction": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Generated uuid in database" + }, + "standard": { + "$ref": "#/definitions/ActionStandardAction", + "title": "Deprecated" + }, + "custom": { + "type": "string", + "title": "Deprecated" + }, + "name": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "An action an entity can take" + }, + "policyAlgorithm": { + "type": "string", + "enum": [ + "ALGORITHM_UNSPECIFIED", + "ALGORITHM_RSA_2048", + "ALGORITHM_RSA_4096", + "ALGORITHM_EC_P256", + "ALGORITHM_EC_P384", + "ALGORITHM_EC_P521" + ], + "default": "ALGORITHM_UNSPECIFIED", + "description": "Supported key algorithms." + }, + "policyAttribute": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespace": { + "$ref": "#/definitions/policyNamespace", + "title": "namespace of the attribute" + }, + "name": { + "type": "string", + "title": "attribute name" + }, + "rule": { + "$ref": "#/definitions/policyAttributeRuleTypeEnum", + "title": "attribute rule enum" + }, + "values": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyValue" + } + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "Deprecated" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys associated with the attribute" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyAttributeRuleTypeEnum": { + "type": "string", + "enum": [ + "ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED", + "ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF", + "ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF", + "ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY" + ], + "default": "ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED" + }, + "policyCondition": { + "type": "object", + "properties": { + "subjectExternalSelectorValue": { + "type": "string", + "title": "a selector for a field value on a flattened Entity Representation (such as\nfrom idP/LDAP)" + }, + "operator": { + "$ref": "#/definitions/policySubjectMappingOperatorEnum", + "title": "the evaluation operator of relation" + }, + "subjectExternalValues": { + "type": "array", + "items": { + "type": "string" + }, + "title": "list of comparison values for the result of applying the\nsubject_external_selector_value on a flattened Entity Representation\n(Subject), evaluated by the operator" + } + }, + "title": "*\nA Condition defines a rule of \u003cthe value at the flattened 'selector value'\nlocation\u003e \u003coperator\u003e \u003csubject external values\u003e" + }, + "policyConditionBooleanTypeEnum": { + "type": "string", + "enum": [ + "CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED", + "CONDITION_BOOLEAN_TYPE_ENUM_AND", + "CONDITION_BOOLEAN_TYPE_ENUM_OR" + ], + "default": "CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED" + }, + "policyConditionGroup": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyCondition" + } + }, + "booleanOperator": { + "$ref": "#/definitions/policyConditionBooleanTypeEnum", + "title": "the boolean evaluation type across the conditions" + } + }, + "title": "A collection of Conditions evaluated by the boolean_operator provided" + }, + "policyKasPublicKey": { + "type": "object", + "properties": { + "pem": { + "type": "string", + "title": "x509 ASN.1 content in PEM envelope, usually" + }, + "kid": { + "type": "string", + "title": "A unique string identifier for this key" + }, + "alg": { + "$ref": "#/definitions/policyKasPublicKeyAlgEnum", + "description": "A known algorithm type with any additional parameters encoded.\nTo start, these may be `rsa:2048` for encrypting ZTDF files and\n`ec:secp256r1` for nanoTDF, but more formats may be added as needed." + } + }, + "title": "Deprecated\nA KAS public key and some associated metadata for further identifcation" + }, + "policyKasPublicKeyAlgEnum": { + "type": "string", + "enum": [ + "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1" + ], + "default": "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED" + }, + "policyKasPublicKeySet": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKasPublicKey" + } + } + }, + "title": "Deprecated\nA list of known KAS public keys" + }, + "policyKeyAccessServer": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "uri": { + "type": "string", + "title": "Address of a KAS instance" + }, + "publicKey": { + "$ref": "#/definitions/policyPublicKey", + "title": "Deprecated" + }, + "sourceType": { + "$ref": "#/definitions/policySourceType", + "title": "The source of the KAS: (INTERNAL, EXTERNAL)" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Kas keys associated with this KAS" + }, + "name": { + "type": "string", + "title": "Optional\nUnique name of the KAS instance" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "title": "Key Access Server Registry" + }, + "policyNamespace": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "name": { + "type": "string", + "title": "used to partition Attribute Definitions, support by namespace AuthN and\nenable federation" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "KAS grants for the namespace" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys for the namespace" + } + } + }, + "policyPageRequest": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "title": "Optional\nSet to configured default limit if not provided\nMaximum limit set in platform config and enforced by services" + }, + "offset": { + "type": "integer", + "format": "int32", + "title": "Optional\nDefaulted if not provided" + } + } + }, + "policyPageResponse": { + "type": "object", + "properties": { + "currentOffset": { + "type": "integer", + "format": "int32", + "title": "Requested pagination offset" + }, + "nextOffset": { + "type": "integer", + "format": "int32", + "title": "Calculated with request limit + offset or defaults\nEmpty when none remain after current page" + }, + "total": { + "type": "integer", + "format": "int32", + "title": "Total count of entire list" + } + } + }, + "policyPublicKey": { + "type": "object", + "properties": { + "remote": { + "type": "string", + "title": "kas public key url - optional since can also be retrieved via public key" + }, + "cached": { + "$ref": "#/definitions/policyKasPublicKeySet", + "title": "public key with additional information. Current preferred version" + } + }, + "title": "Deprecated" + }, + "policyResourceMapping": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue" + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + }, + "group": { + "$ref": "#/definitions/policyResourceMappingGroup" + } + }, + "title": "Resource Mappings (aka Access Control Resource Encodings aka ACRE) are\nstructures supporting the mapping of Resources and Attribute Values" + }, + "policyResourceMappingGroup": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespaceId": { + "type": "string", + "title": "the namespace containing the group of resource mappings" + }, + "name": { + "type": "string", + "title": "the common name for the group of resource mappings, which must be unique\nper namespace" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "description": "Resource Mapping Groups are namespaced collections of Resource Mappings\nassociated under a common group name." + }, + "policySimpleKasKey": { + "type": "object", + "properties": { + "kasUri": { + "type": "string", + "title": "The URL of the Key Access Server" + }, + "publicKey": { + "$ref": "#/definitions/policySimpleKasPublicKey", + "title": "The public key of the Key that belongs to the KAS" + }, + "kasId": { + "type": "string", + "title": "The ID of the Key Access Server" + } + } + }, + "policySimpleKasPublicKey": { + "type": "object", + "properties": { + "algorithm": { + "$ref": "#/definitions/policyAlgorithm" + }, + "kid": { + "type": "string" + }, + "pem": { + "type": "string" + } + } + }, + "policySourceType": { + "type": "string", + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "SOURCE_TYPE_INTERNAL", + "SOURCE_TYPE_EXTERNAL" + ], + "default": "SOURCE_TYPE_UNSPECIFIED", + "description": "Describes whether this kas is managed by the organization or if they imported\nthe kas information from an external party. These two modes are necessary in order\nto encrypt a tdf dek with an external parties kas public key.\n\n - SOURCE_TYPE_INTERNAL: The kas is managed by the organization.\n - SOURCE_TYPE_EXTERNAL: The kas is managed by an external party." + }, + "policySubjectConditionSet": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "subjectSets": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectSet" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "description": "A container for multiple Subject Sets, each containing Condition Groups, each\ncontaining Conditions. Multiple Subject Sets in a SubjectConditionSet are\nevaluated with AND logic. As each Subject Mapping has only one Attribute\nValue, the SubjectConditionSet is reusable across multiple Subject Mappings /\nAttribute Values and is an independent unit." + }, + "policySubjectMapping": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue", + "title": "the Attribute Value mapped to; aka: \"The Entity Entitlement Attribute\"" + }, + "subjectConditionSet": { + "$ref": "#/definitions/policySubjectConditionSet", + "title": "the reusable SubjectConditionSet mapped to the given Attribute Value" + }, + "actions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyAction" + }, + "title": "The actions permitted by subjects in this mapping" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute\nvalue + action(s) combination" + }, + "policySubjectMappingOperatorEnum": { + "type": "string", + "enum": [ + "SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED", + "SUBJECT_MAPPING_OPERATOR_ENUM_IN", + "SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN", + "SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS" + ], + "default": "SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED", + "title": "- SUBJECT_MAPPING_OPERATOR_ENUM_IN: operator that returns true if a value in a list matches the string\n - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN: operator that returns true if a value is not in a list that is matched by\nstring\n - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS: operator that returns true if a value in a list contains the substring" + }, + "policySubjectSet": { + "type": "object", + "properties": { + "conditionGroups": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyConditionGroup" + }, + "title": "multiple Condition Groups are evaluated with AND logic" + } + }, + "title": "A collection of Condition Groups" + }, + "policyValue": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "attribute": { + "$ref": "#/definitions/policyAttribute" + }, + "value": { + "type": "string" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "Deprecated\nlist of key access servers" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "subjectMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectMapping" + }, + "title": "subject mapping" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + } + }, + "resourceMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyResourceMapping" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/policy/attributes/attributes.openapi.yaml b/specs/policy/attributes/attributes.openapi.yaml new file mode 100644 index 0000000..7bdb5d4 --- /dev/null +++ b/specs/policy/attributes/attributes.openapi.yaml @@ -0,0 +1,2174 @@ +openapi: 3.1.0 +info: + title: policy.attributes +paths: + /policy.attributes.AttributesService/ListAttributes: + post: + tags: + - policy.attributes.AttributesService + summary: ListAttributes + description: |- + --------------------------------------* + Attribute RPCs + --------------------------------------- + operationId: policy.attributes.AttributesService.ListAttributes + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.ListAttributesRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.ListAttributesResponse' + /policy.attributes.AttributesService/ListAttributeValues: + post: + tags: + - policy.attributes.AttributesService + summary: ListAttributeValues + operationId: policy.attributes.AttributesService.ListAttributeValues + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.ListAttributeValuesRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.ListAttributeValuesResponse' + /policy.attributes.AttributesService/GetAttribute: + post: + tags: + - policy.attributes.AttributesService + summary: GetAttribute + operationId: policy.attributes.AttributesService.GetAttribute + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.GetAttributeRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.GetAttributeResponse' + /attributes/*/fqn: + get: + tags: + - policy.attributes.AttributesService + summary: GetAttributeValuesByFqns + operationId: policy.attributes.AttributesService.GetAttributeValuesByFqns + parameters: + - name: fqns + in: query + description: |- + Required + Fully Qualified Names of attribute values (i.e. https:///attr//value/), normalized to lower case. + schema: + type: array + items: + type: string + maxItems: 250 + minItems: 1 + title: fqns + maxItems: 250 + minItems: 1 + description: |- + Required + Fully Qualified Names of attribute values (i.e. https:///attr//value/), normalized to lower case. + - name: withValue.withKeyAccessGrants + in: query + schema: + type: boolean + title: with_key_access_grants + - name: withValue.withSubjectMaps + in: query + schema: + type: boolean + title: with_subject_maps + - name: withValue.withResourceMaps + in: query + schema: + type: boolean + title: with_resource_maps + - name: withValue.withAttribute.withKeyAccessGrants + in: query + schema: + type: boolean + title: with_key_access_grants + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.GetAttributeValuesByFqnsResponse' + /policy.attributes.AttributesService/CreateAttribute: + post: + tags: + - policy.attributes.AttributesService + summary: CreateAttribute + operationId: policy.attributes.AttributesService.CreateAttribute + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.CreateAttributeRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.CreateAttributeResponse' + /policy.attributes.AttributesService/UpdateAttribute: + post: + tags: + - policy.attributes.AttributesService + summary: UpdateAttribute + operationId: policy.attributes.AttributesService.UpdateAttribute + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.UpdateAttributeRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.UpdateAttributeResponse' + /policy.attributes.AttributesService/DeactivateAttribute: + post: + tags: + - policy.attributes.AttributesService + summary: DeactivateAttribute + operationId: policy.attributes.AttributesService.DeactivateAttribute + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.DeactivateAttributeRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.DeactivateAttributeResponse' + /policy.attributes.AttributesService/GetAttributeValue: + post: + tags: + - policy.attributes.AttributesService + summary: GetAttributeValue + description: |- + --------------------------------------* + Value RPCs + --------------------------------------- + operationId: policy.attributes.AttributesService.GetAttributeValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.GetAttributeValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.GetAttributeValueResponse' + /policy.attributes.AttributesService/CreateAttributeValue: + post: + tags: + - policy.attributes.AttributesService + summary: CreateAttributeValue + operationId: policy.attributes.AttributesService.CreateAttributeValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.CreateAttributeValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.CreateAttributeValueResponse' + /policy.attributes.AttributesService/UpdateAttributeValue: + post: + tags: + - policy.attributes.AttributesService + summary: UpdateAttributeValue + operationId: policy.attributes.AttributesService.UpdateAttributeValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.UpdateAttributeValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.UpdateAttributeValueResponse' + /policy.attributes.AttributesService/DeactivateAttributeValue: + post: + tags: + - policy.attributes.AttributesService + summary: DeactivateAttributeValue + operationId: policy.attributes.AttributesService.DeactivateAttributeValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.DeactivateAttributeValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.DeactivateAttributeValueResponse' + /policy.attributes.AttributesService/AssignKeyAccessServerToAttribute: + post: + tags: + - policy.attributes.AttributesService + summary: AssignKeyAccessServerToAttribute + description: |- + --------------------------------------* + Attribute <> Key Access Server RPCs + --------------------------------------- + operationId: policy.attributes.AttributesService.AssignKeyAccessServerToAttribute + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.AssignKeyAccessServerToAttributeRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.AssignKeyAccessServerToAttributeResponse' + /policy.attributes.AttributesService/RemoveKeyAccessServerFromAttribute: + post: + tags: + - policy.attributes.AttributesService + summary: RemoveKeyAccessServerFromAttribute + operationId: policy.attributes.AttributesService.RemoveKeyAccessServerFromAttribute + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.RemoveKeyAccessServerFromAttributeRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.RemoveKeyAccessServerFromAttributeResponse' + /policy.attributes.AttributesService/AssignKeyAccessServerToValue: + post: + tags: + - policy.attributes.AttributesService + summary: AssignKeyAccessServerToValue + operationId: policy.attributes.AttributesService.AssignKeyAccessServerToValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.AssignKeyAccessServerToValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.AssignKeyAccessServerToValueResponse' + /policy.attributes.AttributesService/RemoveKeyAccessServerFromValue: + post: + tags: + - policy.attributes.AttributesService + summary: RemoveKeyAccessServerFromValue + operationId: policy.attributes.AttributesService.RemoveKeyAccessServerFromValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.RemoveKeyAccessServerFromValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.RemoveKeyAccessServerFromValueResponse' + /policy.attributes.AttributesService/AssignPublicKeyToAttribute: + post: + tags: + - policy.attributes.AttributesService + summary: AssignPublicKeyToAttribute + operationId: policy.attributes.AttributesService.AssignPublicKeyToAttribute + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.AssignPublicKeyToAttributeRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.AssignPublicKeyToAttributeResponse' + /policy.attributes.AttributesService/RemovePublicKeyFromAttribute: + post: + tags: + - policy.attributes.AttributesService + summary: RemovePublicKeyFromAttribute + operationId: policy.attributes.AttributesService.RemovePublicKeyFromAttribute + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.RemovePublicKeyFromAttributeRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.RemovePublicKeyFromAttributeResponse' + /policy.attributes.AttributesService/AssignPublicKeyToValue: + post: + tags: + - policy.attributes.AttributesService + summary: AssignPublicKeyToValue + operationId: policy.attributes.AttributesService.AssignPublicKeyToValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.AssignPublicKeyToValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.AssignPublicKeyToValueResponse' + /policy.attributes.AttributesService/RemovePublicKeyFromValue: + post: + tags: + - policy.attributes.AttributesService + summary: RemovePublicKeyFromValue + operationId: policy.attributes.AttributesService.RemovePublicKeyFromValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.RemovePublicKeyFromValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.attributes.RemovePublicKeyFromValueResponse' +components: + schemas: + common.ActiveStateEnum: + type: string + title: ActiveStateEnum + enum: + - ACTIVE_STATE_ENUM_UNSPECIFIED + - ACTIVE_STATE_ENUM_ACTIVE + - ACTIVE_STATE_ENUM_INACTIVE + - ACTIVE_STATE_ENUM_ANY + description: 'buflint ENUM_VALUE_PREFIX: to make sure that C++ scoping rules aren''t violated when users add new enum values to an enum in a given package' + common.MetadataUpdateEnum: + type: string + title: MetadataUpdateEnum + enum: + - METADATA_UPDATE_ENUM_UNSPECIFIED + - METADATA_UPDATE_ENUM_EXTEND + - METADATA_UPDATE_ENUM_REPLACE + policy.Action.StandardAction: + type: string + title: StandardAction + enum: + - STANDARD_ACTION_UNSPECIFIED + - STANDARD_ACTION_DECRYPT + - STANDARD_ACTION_TRANSMIT + policy.Algorithm: + type: string + title: Algorithm + enum: + - ALGORITHM_UNSPECIFIED + - ALGORITHM_RSA_2048 + - ALGORITHM_RSA_4096 + - ALGORITHM_EC_P256 + - ALGORITHM_EC_P384 + - ALGORITHM_EC_P521 + description: Supported key algorithms. + policy.AttributeRuleTypeEnum: + type: string + title: AttributeRuleTypeEnum + enum: + - ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED + - ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF + - ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF + - ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY + policy.ConditionBooleanTypeEnum: + type: string + title: ConditionBooleanTypeEnum + enum: + - CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED + - CONDITION_BOOLEAN_TYPE_ENUM_AND + - CONDITION_BOOLEAN_TYPE_ENUM_OR + policy.KasPublicKeyAlgEnum: + type: string + title: KasPublicKeyAlgEnum + enum: + - KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048 + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1 + policy.SourceType: + type: string + title: SourceType + enum: + - SOURCE_TYPE_UNSPECIFIED + - SOURCE_TYPE_INTERNAL + - SOURCE_TYPE_EXTERNAL + description: |- + Describes whether this kas is managed by the organization or if they imported + the kas information from an external party. These two modes are necessary in order + to encrypt a tdf dek with an external parties kas public key. + policy.SubjectMappingOperatorEnum: + type: string + title: SubjectMappingOperatorEnum + enum: + - SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED + - SUBJECT_MAPPING_OPERATOR_ENUM_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + common.MetadataMutable: + type: object + properties: + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional labels + title: MetadataMutable + additionalProperties: false + common.MetadataMutable.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.BoolValue: + type: boolean + description: |- + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.Action: + type: object + oneOf: + - properties: + custom: + type: string + title: custom + description: Deprecated + title: custom + required: + - custom + - properties: + standard: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + title: standard + required: + - standard + properties: + id: + type: string + title: id + description: Generated uuid in database + name: + type: string + title: name + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: Action + additionalProperties: false + description: An action an entity can take + policy.Attribute: + type: object + properties: + id: + type: string + title: id + namespace: + title: namespace + description: namespace of the attribute + $ref: '#/components/schemas/policy.Namespace' + name: + type: string + title: name + description: attribute name + rule: + title: rule + description: attribute rule enum + $ref: '#/components/schemas/policy.AttributeRuleTypeEnum' + values: + type: array + items: + $ref: '#/components/schemas/policy.Value' + title: values + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: Deprecated + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys associated with the attribute + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Attribute + required: + - rule + additionalProperties: false + policy.AttributeValueSelector: + type: object + properties: + withKeyAccessGrants: + type: boolean + title: with_key_access_grants + withSubjectMaps: + type: boolean + title: with_subject_maps + withResourceMaps: + type: boolean + title: with_resource_maps + withAttribute: + title: with_attribute + $ref: '#/components/schemas/policy.AttributeValueSelector.AttributeSelector' + title: AttributeValueSelector + additionalProperties: false + policy.AttributeValueSelector.AttributeSelector: + type: object + properties: + withKeyAccessGrants: + type: boolean + title: with_key_access_grants + withNamespace: + title: with_namespace + $ref: '#/components/schemas/policy.AttributeValueSelector.AttributeSelector.NamespaceSelector' + title: AttributeSelector + additionalProperties: false + policy.AttributeValueSelector.AttributeSelector.NamespaceSelector: + type: object + title: NamespaceSelector + additionalProperties: false + policy.Condition: + type: object + properties: + subjectExternalSelectorValue: + type: string + title: subject_external_selector_value + description: |- + a selector for a field value on a flattened Entity Representation (such as + from idP/LDAP) + operator: + title: operator + description: the evaluation operator of relation + $ref: '#/components/schemas/policy.SubjectMappingOperatorEnum' + subjectExternalValues: + type: array + items: + type: string + minItems: 1 + title: subject_external_values + minItems: 1 + description: |- + list of comparison values for the result of applying the + subject_external_selector_value on a flattened Entity Representation + (Subject), evaluated by the operator + title: Condition + required: + - subjectExternalSelectorValue + - operator + additionalProperties: false + description: |- + * + A Condition defines a rule of + policy.ConditionGroup: + type: object + properties: + conditions: + type: array + items: + $ref: '#/components/schemas/policy.Condition' + title: conditions + minItems: 1 + booleanOperator: + title: boolean_operator + description: the boolean evaluation type across the conditions + $ref: '#/components/schemas/policy.ConditionBooleanTypeEnum' + title: ConditionGroup + required: + - booleanOperator + additionalProperties: false + description: A collection of Conditions evaluated by the boolean_operator provided + policy.KasPublicKey: + type: object + properties: + pem: + type: string + title: pem + maxLength: 8192 + minLength: 1 + description: x509 ASN.1 content in PEM envelope, usually + kid: + type: string + title: kid + maxLength: 32 + minLength: 1 + description: A unique string identifier for this key + alg: + not: + enum: + - 0 + title: alg + description: |- + A known algorithm type with any additional parameters encoded. + To start, these may be `rsa:2048` for encrypting ZTDF files and + `ec:secp256r1` for nanoTDF, but more formats may be added as needed. + $ref: '#/components/schemas/policy.KasPublicKeyAlgEnum' + title: KasPublicKey + additionalProperties: false + description: |- + Deprecated + A KAS public key and some associated metadata for further identifcation + policy.KasPublicKeySet: + type: object + properties: + keys: + type: array + items: + $ref: '#/components/schemas/policy.KasPublicKey' + title: keys + title: KasPublicKeySet + additionalProperties: false + description: |- + Deprecated + A list of known KAS public keys + policy.KeyAccessServer: + type: object + properties: + id: + type: string + title: id + uri: + type: string + title: uri + description: |+ + Address of a KAS instance + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https?://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$') + ``` + + publicKey: + title: public_key + description: Deprecated + $ref: '#/components/schemas/policy.PublicKey' + sourceType: + title: source_type + description: 'The source of the KAS: (INTERNAL, EXTERNAL)' + $ref: '#/components/schemas/policy.SourceType' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Kas keys associated with this KAS + name: + type: string + title: name + description: |- + Optional + Unique name of the KAS instance + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: KeyAccessServer + additionalProperties: false + description: Key Access Server Registry + policy.Namespace: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + name: + type: string + title: name + description: |- + used to partition Attribute Definitions, support by namespace AuthN and + enable federation + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: KAS grants for the namespace + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys for the namespace + title: Namespace + additionalProperties: false + policy.PageRequest: + type: object + properties: + limit: + type: integer + title: limit + format: int32 + description: |- + Optional + Set to configured default limit if not provided + Maximum limit set in platform config and enforced by services + offset: + type: integer + title: offset + format: int32 + description: |- + Optional + Defaulted if not provided + title: PageRequest + additionalProperties: false + policy.PageResponse: + type: object + properties: + currentOffset: + type: integer + title: current_offset + format: int32 + description: Requested pagination offset + nextOffset: + type: integer + title: next_offset + format: int32 + description: |- + Calculated with request limit + offset or defaults + Empty when none remain after current page + total: + type: integer + title: total + format: int32 + description: Total count of entire list + title: PageResponse + additionalProperties: false + policy.PublicKey: + type: object + oneOf: + - properties: + cached: + title: cached + description: public key with additional information. Current preferred version + $ref: '#/components/schemas/policy.KasPublicKeySet' + title: cached + required: + - cached + - properties: + remote: + type: string + title: remote + description: |+ + kas public key url - optional since can also be retrieved via public key + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(/.*)?$') + ``` + + title: remote + required: + - remote + title: PublicKey + additionalProperties: false + description: Deprecated + policy.ResourceMapping: + type: object + properties: + id: + type: string + title: id + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + attributeValue: + title: attribute_value + $ref: '#/components/schemas/policy.Value' + terms: + type: array + items: + type: string + title: terms + group: + title: group + $ref: '#/components/schemas/policy.ResourceMappingGroup' + title: ResourceMapping + required: + - attributeValue + additionalProperties: false + description: |- + Resource Mappings (aka Access Control Resource Encodings aka ACRE) are + structures supporting the mapping of Resources and Attribute Values + policy.ResourceMappingGroup: + type: object + properties: + id: + type: string + title: id + namespaceId: + type: string + title: namespace_id + description: the namespace containing the group of resource mappings + name: + type: string + title: name + description: |- + the common name for the group of resource mappings, which must be unique + per namespace + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: ResourceMappingGroup + required: + - namespaceId + - name + additionalProperties: false + description: |- + Resource Mapping Groups are namespaced collections of Resource Mappings + associated under a common group name. + policy.SimpleKasKey: + type: object + properties: + kasUri: + type: string + title: kas_uri + description: The URL of the Key Access Server + publicKey: + title: public_key + description: The public key of the Key that belongs to the KAS + $ref: '#/components/schemas/policy.SimpleKasPublicKey' + kasId: + type: string + title: kas_id + description: The ID of the Key Access Server + title: SimpleKasKey + additionalProperties: false + policy.SimpleKasPublicKey: + type: object + properties: + algorithm: + title: algorithm + $ref: '#/components/schemas/policy.Algorithm' + kid: + type: string + title: kid + pem: + type: string + title: pem + title: SimpleKasPublicKey + additionalProperties: false + policy.SubjectConditionSet: + type: object + properties: + id: + type: string + title: id + subjectSets: + type: array + items: + $ref: '#/components/schemas/policy.SubjectSet' + title: subject_sets + minItems: 1 + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectConditionSet + additionalProperties: false + description: |- + A container for multiple Subject Sets, each containing Condition Groups, each + containing Conditions. Multiple Subject Sets in a SubjectConditionSet are + evaluated with AND logic. As each Subject Mapping has only one Attribute + Value, the SubjectConditionSet is reusable across multiple Subject Mappings / + Attribute Values and is an independent unit. + policy.SubjectMapping: + type: object + properties: + id: + type: string + title: id + attributeValue: + title: attribute_value + description: 'the Attribute Value mapped to; aka: "The Entity Entitlement Attribute"' + $ref: '#/components/schemas/policy.Value' + subjectConditionSet: + title: subject_condition_set + description: the reusable SubjectConditionSet mapped to the given Attribute Value + $ref: '#/components/schemas/policy.SubjectConditionSet' + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + description: The actions permitted by subjects in this mapping + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectMapping + additionalProperties: false + description: |- + Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute + value + action(s) combination + policy.SubjectSet: + type: object + properties: + conditionGroups: + type: array + items: + $ref: '#/components/schemas/policy.ConditionGroup' + title: condition_groups + minItems: 1 + description: multiple Condition Groups are evaluated with AND logic + title: SubjectSet + additionalProperties: false + description: A collection of Condition Groups + policy.Value: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + value: + type: string + title: value + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: |- + Deprecated + list of key access servers + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + subjectMappings: + type: array + items: + $ref: '#/components/schemas/policy.SubjectMapping' + title: subject_mappings + description: subject mapping + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + resourceMappings: + type: array + items: + $ref: '#/components/schemas/policy.ResourceMapping' + title: resource_mappings + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Value + additionalProperties: false + policy.attributes.AssignKeyAccessServerToAttributeRequest: + type: object + properties: + attributeKeyAccessServer: + title: attribute_key_access_server + description: Required + $ref: '#/components/schemas/policy.attributes.AttributeKeyAccessServer' + title: AssignKeyAccessServerToAttributeRequest + additionalProperties: false + policy.attributes.AssignKeyAccessServerToAttributeResponse: + type: object + properties: + attributeKeyAccessServer: + title: attribute_key_access_server + $ref: '#/components/schemas/policy.attributes.AttributeKeyAccessServer' + title: AssignKeyAccessServerToAttributeResponse + additionalProperties: false + policy.attributes.AssignKeyAccessServerToValueRequest: + type: object + properties: + valueKeyAccessServer: + title: value_key_access_server + description: Required + $ref: '#/components/schemas/policy.attributes.ValueKeyAccessServer' + title: AssignKeyAccessServerToValueRequest + additionalProperties: false + policy.attributes.AssignKeyAccessServerToValueResponse: + type: object + properties: + valueKeyAccessServer: + title: value_key_access_server + $ref: '#/components/schemas/policy.attributes.ValueKeyAccessServer' + title: AssignKeyAccessServerToValueResponse + additionalProperties: false + policy.attributes.AssignPublicKeyToAttributeRequest: + type: object + properties: + attributeKey: + title: attribute_key + description: Required + $ref: '#/components/schemas/policy.attributes.AttributeKey' + title: AssignPublicKeyToAttributeRequest + required: + - attributeKey + additionalProperties: false + policy.attributes.AssignPublicKeyToAttributeResponse: + type: object + properties: + attributeKey: + title: attribute_key + description: Required + $ref: '#/components/schemas/policy.attributes.AttributeKey' + title: AssignPublicKeyToAttributeResponse + additionalProperties: false + policy.attributes.AssignPublicKeyToValueRequest: + type: object + properties: + valueKey: + title: value_key + description: Required + $ref: '#/components/schemas/policy.attributes.ValueKey' + title: AssignPublicKeyToValueRequest + required: + - valueKey + additionalProperties: false + policy.attributes.AssignPublicKeyToValueResponse: + type: object + properties: + valueKey: + title: value_key + description: Required + $ref: '#/components/schemas/policy.attributes.ValueKey' + title: AssignPublicKeyToValueResponse + additionalProperties: false + policy.attributes.AttributeKey: + type: object + properties: + attributeId: + type: string + title: attribute_id + format: uuid + description: Required + keyId: + type: string + title: key_id + format: uuid + description: Required + title: AttributeKey + required: + - attributeId + - keyId + additionalProperties: false + policy.attributes.AttributeKeyAccessServer: + type: object + properties: + attributeId: + type: string + title: attribute_id + format: uuid + description: Required + keyAccessServerId: + type: string + title: key_access_server_id + format: uuid + description: Required + title: AttributeKeyAccessServer + additionalProperties: false + policy.attributes.CreateAttributeRequest: + type: object + properties: + namespaceId: + type: string + title: namespace_id + format: uuid + description: Required + name: + type: string + title: name + maxLength: 253 + description: |+ + Required + Attribute name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored attribute name will be normalized to lower case.: + ``` + this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') + ``` + + rule: + title: rule + description: Required + $ref: '#/components/schemas/policy.AttributeRuleTypeEnum' + values: + type: array + items: + type: string + maxLength: 253 + pattern: ^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$ + uniqueItems: true + title: values + uniqueItems: true + description: "Optional \n Attribute values (when provided) must be alphanumeric strings, allowing hyphens and underscores but not as the first or last character.\n The stored attribute value will be normalized to lower case." + metadata: + title: metadata + description: Optional + $ref: '#/components/schemas/common.MetadataMutable' + title: CreateAttributeRequest + required: + - name + - rule + additionalProperties: false + policy.attributes.CreateAttributeResponse: + type: object + properties: + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + title: CreateAttributeResponse + additionalProperties: false + policy.attributes.CreateAttributeValueRequest: + type: object + properties: + attributeId: + type: string + title: attribute_id + format: uuid + description: Required + value: + type: string + title: value + maxLength: 253 + description: |+ + Required + Attribute value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored attribute value will be normalized to lower case.: + ``` + this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') + ``` + + metadata: + title: metadata + description: |- + Optional + Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + title: CreateAttributeValueRequest + required: + - value + additionalProperties: false + policy.attributes.CreateAttributeValueResponse: + type: object + properties: + value: + title: value + $ref: '#/components/schemas/policy.Value' + title: CreateAttributeValueResponse + additionalProperties: false + policy.attributes.DeactivateAttributeRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: DeactivateAttributeRequest + additionalProperties: false + policy.attributes.DeactivateAttributeResponse: + type: object + properties: + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + title: DeactivateAttributeResponse + additionalProperties: false + policy.attributes.DeactivateAttributeValueRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: DeactivateAttributeValueRequest + additionalProperties: false + policy.attributes.DeactivateAttributeValueResponse: + type: object + properties: + value: + title: value + $ref: '#/components/schemas/policy.Value' + title: DeactivateAttributeValueResponse + additionalProperties: false + policy.attributes.GetAttributeRequest: + type: object + oneOf: + - properties: + attributeId: + type: string + title: attribute_id + format: uuid + description: 'option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field' + title: attribute_id + required: + - attributeId + - properties: + fqn: + type: string + title: fqn + minLength: 1 + format: uri + title: fqn + required: + - fqn + properties: + id: + type: string + title: id + format: uuid + description: Deprecated + deprecated: true + title: GetAttributeRequest + additionalProperties: false + description: |+ + Either use deprecated 'id' field or one of 'attribute_id' or 'fqn', but not both: + ``` + !(has(this.id) && (has(this.attribute_id) || has(this.fqn))) + ``` + + Either id or one of attribute_id or fqn must be set: + ``` + has(this.id) || has(this.attribute_id) || has(this.fqn) + ``` + + policy.attributes.GetAttributeResponse: + type: object + properties: + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + title: GetAttributeResponse + additionalProperties: false + policy.attributes.GetAttributeValueRequest: + type: object + oneOf: + - properties: + fqn: + type: string + title: fqn + minLength: 1 + format: uri + title: fqn + required: + - fqn + - properties: + valueId: + type: string + title: value_id + format: uuid + description: 'option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field' + title: value_id + required: + - valueId + properties: + id: + type: string + title: id + format: uuid + description: Deprecated + deprecated: true + title: GetAttributeValueRequest + additionalProperties: false + description: |+ + / + / Value RPC messages + / + Either use deprecated 'id' field or one of 'value_id' or 'fqn', but not both: + ``` + !(has(this.id) && (has(this.value_id) || has(this.fqn))) + ``` + + Either id or one of value_id or fqn must be set: + ``` + has(this.id) || has(this.value_id) || has(this.fqn) + ``` + + policy.attributes.GetAttributeValueResponse: + type: object + properties: + value: + title: value + $ref: '#/components/schemas/policy.Value' + title: GetAttributeValueResponse + additionalProperties: false + policy.attributes.GetAttributeValuesByFqnsRequest: + type: object + properties: + fqns: + type: array + items: + type: string + maxItems: 250 + minItems: 1 + title: fqns + maxItems: 250 + minItems: 1 + description: |- + Required + Fully Qualified Names of attribute values (i.e. https:///attr//value/), normalized to lower case. + withValue: + title: with_value + description: |- + Optional + This attribute value selector is not used currently, but left here for future use. + $ref: '#/components/schemas/policy.AttributeValueSelector' + title: GetAttributeValuesByFqnsRequest + additionalProperties: false + policy.attributes.GetAttributeValuesByFqnsResponse: + type: object + properties: + fqnAttributeValues: + type: object + title: fqn_attribute_values + additionalProperties: + title: value + $ref: '#/components/schemas/policy.attributes.GetAttributeValuesByFqnsResponse.AttributeAndValue' + description: map of FQNs to complete attributes and the one selected value + title: GetAttributeValuesByFqnsResponse + additionalProperties: false + policy.attributes.GetAttributeValuesByFqnsResponse.AttributeAndValue: + type: object + properties: + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + value: + title: value + $ref: '#/components/schemas/policy.Value' + title: AttributeAndValue + additionalProperties: false + policy.attributes.GetAttributeValuesByFqnsResponse.FqnAttributeValuesEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/policy.attributes.GetAttributeValuesByFqnsResponse.AttributeAndValue' + title: FqnAttributeValuesEntry + additionalProperties: false + policy.attributes.ListAttributeValuesRequest: + type: object + properties: + attributeId: + type: string + title: attribute_id + format: uuid + description: Required + state: + title: state + description: |- + Optional + ACTIVE by default when not specified + $ref: '#/components/schemas/common.ActiveStateEnum' + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListAttributeValuesRequest + additionalProperties: false + policy.attributes.ListAttributeValuesResponse: + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/policy.Value' + title: values + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListAttributeValuesResponse + additionalProperties: false + policy.attributes.ListAttributesRequest: + type: object + properties: + state: + title: state + description: |- + Optional + ACTIVE by default when not specified + $ref: '#/components/schemas/common.ActiveStateEnum' + namespace: + type: string + title: namespace + description: |- + Optional + Namespace ID or name + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListAttributesRequest + additionalProperties: false + policy.attributes.ListAttributesResponse: + type: object + properties: + attributes: + type: array + items: + $ref: '#/components/schemas/policy.Attribute' + title: attributes + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListAttributesResponse + additionalProperties: false + policy.attributes.RemoveKeyAccessServerFromAttributeRequest: + type: object + properties: + attributeKeyAccessServer: + title: attribute_key_access_server + description: Required + $ref: '#/components/schemas/policy.attributes.AttributeKeyAccessServer' + title: RemoveKeyAccessServerFromAttributeRequest + additionalProperties: false + policy.attributes.RemoveKeyAccessServerFromAttributeResponse: + type: object + properties: + attributeKeyAccessServer: + title: attribute_key_access_server + $ref: '#/components/schemas/policy.attributes.AttributeKeyAccessServer' + title: RemoveKeyAccessServerFromAttributeResponse + additionalProperties: false + policy.attributes.RemoveKeyAccessServerFromValueRequest: + type: object + properties: + valueKeyAccessServer: + title: value_key_access_server + description: Required + $ref: '#/components/schemas/policy.attributes.ValueKeyAccessServer' + title: RemoveKeyAccessServerFromValueRequest + additionalProperties: false + policy.attributes.RemoveKeyAccessServerFromValueResponse: + type: object + properties: + valueKeyAccessServer: + title: value_key_access_server + $ref: '#/components/schemas/policy.attributes.ValueKeyAccessServer' + title: RemoveKeyAccessServerFromValueResponse + additionalProperties: false + policy.attributes.RemovePublicKeyFromAttributeRequest: + type: object + properties: + attributeKey: + title: attribute_key + description: Required + $ref: '#/components/schemas/policy.attributes.AttributeKey' + title: RemovePublicKeyFromAttributeRequest + required: + - attributeKey + additionalProperties: false + policy.attributes.RemovePublicKeyFromAttributeResponse: + type: object + properties: + attributeKey: + title: attribute_key + description: Required + $ref: '#/components/schemas/policy.attributes.AttributeKey' + title: RemovePublicKeyFromAttributeResponse + additionalProperties: false + policy.attributes.RemovePublicKeyFromValueRequest: + type: object + properties: + valueKey: + title: value_key + description: Required + $ref: '#/components/schemas/policy.attributes.ValueKey' + title: RemovePublicKeyFromValueRequest + required: + - valueKey + additionalProperties: false + policy.attributes.RemovePublicKeyFromValueResponse: + type: object + properties: + valueKey: + title: value_key + description: Required + $ref: '#/components/schemas/policy.attributes.ValueKey' + title: RemovePublicKeyFromValueResponse + additionalProperties: false + policy.attributes.UpdateAttributeRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + metadata: + title: metadata + description: Optional + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateAttributeRequest + additionalProperties: false + policy.attributes.UpdateAttributeResponse: + type: object + properties: + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + title: UpdateAttributeResponse + additionalProperties: false + policy.attributes.UpdateAttributeValueRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + metadata: + title: metadata + description: |- + Optional + Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateAttributeValueRequest + additionalProperties: false + policy.attributes.UpdateAttributeValueResponse: + type: object + properties: + value: + title: value + $ref: '#/components/schemas/policy.Value' + title: UpdateAttributeValueResponse + additionalProperties: false + policy.attributes.ValueKey: + type: object + properties: + valueId: + type: string + title: value_id + format: uuid + description: Required + keyId: + type: string + title: key_id + format: uuid + description: Required (The id listed in the AsymmetricKeys object) + title: ValueKey + required: + - valueId + - keyId + additionalProperties: false + policy.attributes.ValueKeyAccessServer: + type: object + properties: + valueId: + type: string + title: value_id + format: uuid + description: Required + keyAccessServerId: + type: string + title: key_access_server_id + format: uuid + description: Required + title: ValueKeyAccessServer + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. +security: [] +tags: + - name: policy.attributes.AttributesService + description: |- + / + / Attribute Service + / diff --git a/specs/policy/attributes/attributes.swagger.json b/specs/policy/attributes/attributes.swagger.json new file mode 100644 index 0000000..780da36 --- /dev/null +++ b/specs/policy/attributes/attributes.swagger.json @@ -0,0 +1,975 @@ +{ + "swagger": "2.0", + "info": { + "title": "policy/attributes/attributes.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "AttributesService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/attributes/*/fqn": { + "get": { + "operationId": "AttributesService_GetAttributeValuesByFqns", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/attributesGetAttributeValuesByFqnsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "fqns", + "description": "Required\nFully Qualified Names of attribute values (i.e. https://\u003cnamespace\u003e/attr/\u003cattribute_name\u003e/value/\u003cvalue_name\u003e), normalized to lower case.", + "in": "query", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi" + }, + { + "name": "withValue.withKeyAccessGrants", + "in": "query", + "required": false, + "type": "boolean" + }, + { + "name": "withValue.withSubjectMaps", + "in": "query", + "required": false, + "type": "boolean" + }, + { + "name": "withValue.withResourceMaps", + "in": "query", + "required": false, + "type": "boolean" + }, + { + "name": "withValue.withAttribute.withKeyAccessGrants", + "in": "query", + "required": false, + "type": "boolean" + } + ], + "tags": [ + "AttributesService" + ] + } + } + }, + "definitions": { + "ActionStandardAction": { + "type": "string", + "enum": [ + "STANDARD_ACTION_UNSPECIFIED", + "STANDARD_ACTION_DECRYPT", + "STANDARD_ACTION_TRANSMIT" + ], + "default": "STANDARD_ACTION_UNSPECIFIED", + "title": "- STANDARD_ACTION_DECRYPT: Deprecated\nMigrate to 'read' action name\n - STANDARD_ACTION_TRANSMIT: Deprecated\nMigrate to 'create' action name" + }, + "AttributeValueSelectorAttributeSelectorNamespaceSelector": { + "type": "object" + }, + "GetAttributeValuesByFqnsResponseAttributeAndValue": { + "type": "object", + "properties": { + "attribute": { + "$ref": "#/definitions/policyAttribute" + }, + "value": { + "$ref": "#/definitions/policyValue" + } + } + }, + "attributesAssignKeyAccessServerToAttributeResponse": { + "type": "object", + "properties": { + "attributeKeyAccessServer": { + "$ref": "#/definitions/attributesAttributeKeyAccessServer" + } + } + }, + "attributesAssignKeyAccessServerToValueResponse": { + "type": "object", + "properties": { + "valueKeyAccessServer": { + "$ref": "#/definitions/attributesValueKeyAccessServer" + } + } + }, + "attributesAssignPublicKeyToAttributeResponse": { + "type": "object", + "properties": { + "attributeKey": { + "$ref": "#/definitions/attributesAttributeKey", + "title": "Required" + } + } + }, + "attributesAssignPublicKeyToValueResponse": { + "type": "object", + "properties": { + "valueKey": { + "$ref": "#/definitions/attributesValueKey", + "title": "Required" + } + } + }, + "attributesAttributeKey": { + "type": "object", + "properties": { + "attributeId": { + "type": "string", + "title": "Required" + }, + "keyId": { + "type": "string", + "title": "Required" + } + } + }, + "attributesAttributeKeyAccessServer": { + "type": "object", + "properties": { + "attributeId": { + "type": "string", + "title": "Required" + }, + "keyAccessServerId": { + "type": "string", + "title": "Required" + } + } + }, + "attributesCreateAttributeResponse": { + "type": "object", + "properties": { + "attribute": { + "$ref": "#/definitions/policyAttribute" + } + } + }, + "attributesCreateAttributeValueResponse": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/policyValue" + } + } + }, + "attributesDeactivateAttributeResponse": { + "type": "object", + "properties": { + "attribute": { + "$ref": "#/definitions/policyAttribute" + } + } + }, + "attributesDeactivateAttributeValueResponse": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/policyValue" + } + } + }, + "attributesGetAttributeResponse": { + "type": "object", + "properties": { + "attribute": { + "$ref": "#/definitions/policyAttribute" + } + } + }, + "attributesGetAttributeValueResponse": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/policyValue" + } + } + }, + "attributesGetAttributeValuesByFqnsResponse": { + "type": "object", + "properties": { + "fqnAttributeValues": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/GetAttributeValuesByFqnsResponseAttributeAndValue" + }, + "title": "map of FQNs to complete attributes and the one selected value" + } + } + }, + "attributesListAttributeValuesResponse": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyValue" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + } + }, + "attributesListAttributesResponse": { + "type": "object", + "properties": { + "attributes": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyAttribute" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + } + }, + "attributesRemoveKeyAccessServerFromAttributeResponse": { + "type": "object", + "properties": { + "attributeKeyAccessServer": { + "$ref": "#/definitions/attributesAttributeKeyAccessServer" + } + } + }, + "attributesRemoveKeyAccessServerFromValueResponse": { + "type": "object", + "properties": { + "valueKeyAccessServer": { + "$ref": "#/definitions/attributesValueKeyAccessServer" + } + } + }, + "attributesRemovePublicKeyFromAttributeResponse": { + "type": "object", + "properties": { + "attributeKey": { + "$ref": "#/definitions/attributesAttributeKey", + "title": "Required" + } + } + }, + "attributesRemovePublicKeyFromValueResponse": { + "type": "object", + "properties": { + "valueKey": { + "$ref": "#/definitions/attributesValueKey", + "title": "Required" + } + } + }, + "attributesUpdateAttributeResponse": { + "type": "object", + "properties": { + "attribute": { + "$ref": "#/definitions/policyAttribute" + } + } + }, + "attributesUpdateAttributeValueResponse": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/policyValue" + } + } + }, + "attributesValueKey": { + "type": "object", + "properties": { + "valueId": { + "type": "string", + "title": "Required" + }, + "keyId": { + "type": "string", + "title": "Required (The id listed in the AsymmetricKeys object)" + } + } + }, + "attributesValueKeyAccessServer": { + "type": "object", + "properties": { + "valueId": { + "type": "string", + "title": "Required" + }, + "keyAccessServerId": { + "type": "string", + "title": "Required" + } + } + }, + "commonActiveStateEnum": { + "type": "string", + "enum": [ + "ACTIVE_STATE_ENUM_UNSPECIFIED", + "ACTIVE_STATE_ENUM_ACTIVE", + "ACTIVE_STATE_ENUM_INACTIVE", + "ACTIVE_STATE_ENUM_ANY" + ], + "default": "ACTIVE_STATE_ENUM_UNSPECIFIED", + "title": "buflint ENUM_VALUE_PREFIX: to make sure that C++ scoping rules aren't violated when users add new enum values to an enum in a given package" + }, + "commonMetadata": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "title": "created_at set by server (entity who created will recorded in an audit event)" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "title": "updated_at set by server (entity who updated will recorded in an audit event)" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional short description" + } + }, + "title": "Struct to uniquely identify a resource with optional additional metadata" + }, + "commonMetadataMutable": { + "type": "object", + "properties": { + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional labels" + } + } + }, + "commonMetadataUpdateEnum": { + "type": "string", + "enum": [ + "METADATA_UPDATE_ENUM_UNSPECIFIED", + "METADATA_UPDATE_ENUM_EXTEND", + "METADATA_UPDATE_ENUM_REPLACE" + ], + "default": "METADATA_UPDATE_ENUM_UNSPECIFIED", + "title": "- METADATA_UPDATE_ENUM_UNSPECIFIED: unspecified update type\n - METADATA_UPDATE_ENUM_EXTEND: only update the fields that are provided\n - METADATA_UPDATE_ENUM_REPLACE: replace the entire metadata with the provided metadata" + }, + "policyAction": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Generated uuid in database" + }, + "standard": { + "$ref": "#/definitions/ActionStandardAction", + "title": "Deprecated" + }, + "custom": { + "type": "string", + "title": "Deprecated" + }, + "name": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "An action an entity can take" + }, + "policyAlgorithm": { + "type": "string", + "enum": [ + "ALGORITHM_UNSPECIFIED", + "ALGORITHM_RSA_2048", + "ALGORITHM_RSA_4096", + "ALGORITHM_EC_P256", + "ALGORITHM_EC_P384", + "ALGORITHM_EC_P521" + ], + "default": "ALGORITHM_UNSPECIFIED", + "description": "Supported key algorithms." + }, + "policyAttribute": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespace": { + "$ref": "#/definitions/policyNamespace", + "title": "namespace of the attribute" + }, + "name": { + "type": "string", + "title": "attribute name" + }, + "rule": { + "$ref": "#/definitions/policyAttributeRuleTypeEnum", + "title": "attribute rule enum" + }, + "values": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyValue" + } + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "Deprecated" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys associated with the attribute" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyAttributeRuleTypeEnum": { + "type": "string", + "enum": [ + "ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED", + "ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF", + "ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF", + "ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY" + ], + "default": "ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED" + }, + "policyAttributeValueSelector": { + "type": "object", + "properties": { + "withKeyAccessGrants": { + "type": "boolean" + }, + "withSubjectMaps": { + "type": "boolean" + }, + "withResourceMaps": { + "type": "boolean" + }, + "withAttribute": { + "$ref": "#/definitions/policyAttributeValueSelectorAttributeSelector" + } + } + }, + "policyAttributeValueSelectorAttributeSelector": { + "type": "object", + "properties": { + "withKeyAccessGrants": { + "type": "boolean" + }, + "withNamespace": { + "$ref": "#/definitions/AttributeValueSelectorAttributeSelectorNamespaceSelector" + } + } + }, + "policyCondition": { + "type": "object", + "properties": { + "subjectExternalSelectorValue": { + "type": "string", + "title": "a selector for a field value on a flattened Entity Representation (such as\nfrom idP/LDAP)" + }, + "operator": { + "$ref": "#/definitions/policySubjectMappingOperatorEnum", + "title": "the evaluation operator of relation" + }, + "subjectExternalValues": { + "type": "array", + "items": { + "type": "string" + }, + "title": "list of comparison values for the result of applying the\nsubject_external_selector_value on a flattened Entity Representation\n(Subject), evaluated by the operator" + } + }, + "title": "*\nA Condition defines a rule of \u003cthe value at the flattened 'selector value'\nlocation\u003e \u003coperator\u003e \u003csubject external values\u003e" + }, + "policyConditionBooleanTypeEnum": { + "type": "string", + "enum": [ + "CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED", + "CONDITION_BOOLEAN_TYPE_ENUM_AND", + "CONDITION_BOOLEAN_TYPE_ENUM_OR" + ], + "default": "CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED" + }, + "policyConditionGroup": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyCondition" + } + }, + "booleanOperator": { + "$ref": "#/definitions/policyConditionBooleanTypeEnum", + "title": "the boolean evaluation type across the conditions" + } + }, + "title": "A collection of Conditions evaluated by the boolean_operator provided" + }, + "policyKasPublicKey": { + "type": "object", + "properties": { + "pem": { + "type": "string", + "title": "x509 ASN.1 content in PEM envelope, usually" + }, + "kid": { + "type": "string", + "title": "A unique string identifier for this key" + }, + "alg": { + "$ref": "#/definitions/policyKasPublicKeyAlgEnum", + "description": "A known algorithm type with any additional parameters encoded.\nTo start, these may be `rsa:2048` for encrypting ZTDF files and\n`ec:secp256r1` for nanoTDF, but more formats may be added as needed." + } + }, + "title": "Deprecated\nA KAS public key and some associated metadata for further identifcation" + }, + "policyKasPublicKeyAlgEnum": { + "type": "string", + "enum": [ + "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1" + ], + "default": "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED" + }, + "policyKasPublicKeySet": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKasPublicKey" + } + } + }, + "title": "Deprecated\nA list of known KAS public keys" + }, + "policyKeyAccessServer": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "uri": { + "type": "string", + "title": "Address of a KAS instance" + }, + "publicKey": { + "$ref": "#/definitions/policyPublicKey", + "title": "Deprecated" + }, + "sourceType": { + "$ref": "#/definitions/policySourceType", + "title": "The source of the KAS: (INTERNAL, EXTERNAL)" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Kas keys associated with this KAS" + }, + "name": { + "type": "string", + "title": "Optional\nUnique name of the KAS instance" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "title": "Key Access Server Registry" + }, + "policyNamespace": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "name": { + "type": "string", + "title": "used to partition Attribute Definitions, support by namespace AuthN and\nenable federation" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "KAS grants for the namespace" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys for the namespace" + } + } + }, + "policyPageRequest": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "title": "Optional\nSet to configured default limit if not provided\nMaximum limit set in platform config and enforced by services" + }, + "offset": { + "type": "integer", + "format": "int32", + "title": "Optional\nDefaulted if not provided" + } + } + }, + "policyPageResponse": { + "type": "object", + "properties": { + "currentOffset": { + "type": "integer", + "format": "int32", + "title": "Requested pagination offset" + }, + "nextOffset": { + "type": "integer", + "format": "int32", + "title": "Calculated with request limit + offset or defaults\nEmpty when none remain after current page" + }, + "total": { + "type": "integer", + "format": "int32", + "title": "Total count of entire list" + } + } + }, + "policyPublicKey": { + "type": "object", + "properties": { + "remote": { + "type": "string", + "title": "kas public key url - optional since can also be retrieved via public key" + }, + "cached": { + "$ref": "#/definitions/policyKasPublicKeySet", + "title": "public key with additional information. Current preferred version" + } + }, + "title": "Deprecated" + }, + "policyResourceMapping": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue" + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + }, + "group": { + "$ref": "#/definitions/policyResourceMappingGroup" + } + }, + "title": "Resource Mappings (aka Access Control Resource Encodings aka ACRE) are\nstructures supporting the mapping of Resources and Attribute Values" + }, + "policyResourceMappingGroup": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespaceId": { + "type": "string", + "title": "the namespace containing the group of resource mappings" + }, + "name": { + "type": "string", + "title": "the common name for the group of resource mappings, which must be unique\nper namespace" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "description": "Resource Mapping Groups are namespaced collections of Resource Mappings\nassociated under a common group name." + }, + "policySimpleKasKey": { + "type": "object", + "properties": { + "kasUri": { + "type": "string", + "title": "The URL of the Key Access Server" + }, + "publicKey": { + "$ref": "#/definitions/policySimpleKasPublicKey", + "title": "The public key of the Key that belongs to the KAS" + }, + "kasId": { + "type": "string", + "title": "The ID of the Key Access Server" + } + } + }, + "policySimpleKasPublicKey": { + "type": "object", + "properties": { + "algorithm": { + "$ref": "#/definitions/policyAlgorithm" + }, + "kid": { + "type": "string" + }, + "pem": { + "type": "string" + } + } + }, + "policySourceType": { + "type": "string", + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "SOURCE_TYPE_INTERNAL", + "SOURCE_TYPE_EXTERNAL" + ], + "default": "SOURCE_TYPE_UNSPECIFIED", + "description": "Describes whether this kas is managed by the organization or if they imported\nthe kas information from an external party. These two modes are necessary in order\nto encrypt a tdf dek with an external parties kas public key.\n\n - SOURCE_TYPE_INTERNAL: The kas is managed by the organization.\n - SOURCE_TYPE_EXTERNAL: The kas is managed by an external party." + }, + "policySubjectConditionSet": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "subjectSets": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectSet" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "description": "A container for multiple Subject Sets, each containing Condition Groups, each\ncontaining Conditions. Multiple Subject Sets in a SubjectConditionSet are\nevaluated with AND logic. As each Subject Mapping has only one Attribute\nValue, the SubjectConditionSet is reusable across multiple Subject Mappings /\nAttribute Values and is an independent unit." + }, + "policySubjectMapping": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue", + "title": "the Attribute Value mapped to; aka: \"The Entity Entitlement Attribute\"" + }, + "subjectConditionSet": { + "$ref": "#/definitions/policySubjectConditionSet", + "title": "the reusable SubjectConditionSet mapped to the given Attribute Value" + }, + "actions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyAction" + }, + "title": "The actions permitted by subjects in this mapping" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute\nvalue + action(s) combination" + }, + "policySubjectMappingOperatorEnum": { + "type": "string", + "enum": [ + "SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED", + "SUBJECT_MAPPING_OPERATOR_ENUM_IN", + "SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN", + "SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS" + ], + "default": "SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED", + "title": "- SUBJECT_MAPPING_OPERATOR_ENUM_IN: operator that returns true if a value in a list matches the string\n - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN: operator that returns true if a value is not in a list that is matched by\nstring\n - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS: operator that returns true if a value in a list contains the substring" + }, + "policySubjectSet": { + "type": "object", + "properties": { + "conditionGroups": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyConditionGroup" + }, + "title": "multiple Condition Groups are evaluated with AND logic" + } + }, + "title": "A collection of Condition Groups" + }, + "policyValue": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "attribute": { + "$ref": "#/definitions/policyAttribute" + }, + "value": { + "type": "string" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "Deprecated\nlist of key access servers" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "subjectMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectMapping" + }, + "title": "subject mapping" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + } + }, + "resourceMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyResourceMapping" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/policy/kasregistry/key_access_server_registry.openapi.yaml b/specs/policy/kasregistry/key_access_server_registry.openapi.yaml new file mode 100644 index 0000000..d311651 --- /dev/null +++ b/specs/policy/kasregistry/key_access_server_registry.openapi.yaml @@ -0,0 +1,2091 @@ +openapi: 3.1.0 +info: + title: policy.kasregistry +paths: + /key-access-servers: + get: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: ListKeyAccessServers + operationId: policy.kasregistry.KeyAccessServerRegistryService.ListKeyAccessServers + parameters: + - name: pagination.limit + in: query + description: |- + Optional + Set to configured default limit if not provided + Maximum limit set in platform config and enforced by services + schema: + type: integer + title: limit + format: int32 + description: |- + Optional + Set to configured default limit if not provided + Maximum limit set in platform config and enforced by services + - name: pagination.offset + in: query + description: |- + Optional + Defaulted if not provided + schema: + type: integer + title: offset + format: int32 + description: |- + Optional + Defaulted if not provided + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.ListKeyAccessServersResponse' + /policy.kasregistry.KeyAccessServerRegistryService/GetKeyAccessServer: + post: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: GetKeyAccessServer + operationId: policy.kasregistry.KeyAccessServerRegistryService.GetKeyAccessServer + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.GetKeyAccessServerRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.GetKeyAccessServerResponse' + /policy.kasregistry.KeyAccessServerRegistryService/CreateKeyAccessServer: + post: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: CreateKeyAccessServer + operationId: policy.kasregistry.KeyAccessServerRegistryService.CreateKeyAccessServer + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.CreateKeyAccessServerRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.CreateKeyAccessServerResponse' + /policy.kasregistry.KeyAccessServerRegistryService/UpdateKeyAccessServer: + post: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: UpdateKeyAccessServer + operationId: policy.kasregistry.KeyAccessServerRegistryService.UpdateKeyAccessServer + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.UpdateKeyAccessServerRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.UpdateKeyAccessServerResponse' + /policy.kasregistry.KeyAccessServerRegistryService/DeleteKeyAccessServer: + post: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: DeleteKeyAccessServer + operationId: policy.kasregistry.KeyAccessServerRegistryService.DeleteKeyAccessServer + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.DeleteKeyAccessServerRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.DeleteKeyAccessServerResponse' + /policy.kasregistry.KeyAccessServerRegistryService/ListKeyAccessServerGrants: + post: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: ListKeyAccessServerGrants + description: Deprecated + operationId: policy.kasregistry.KeyAccessServerRegistryService.ListKeyAccessServerGrants + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.ListKeyAccessServerGrantsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.ListKeyAccessServerGrantsResponse' + /policy.kasregistry.KeyAccessServerRegistryService/CreateKey: + post: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: CreateKey + description: |- + KAS Key Management + Request to create a new key in the Key Access Service. + operationId: policy.kasregistry.KeyAccessServerRegistryService.CreateKey + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.CreateKeyRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.CreateKeyResponse' + /policy.kasregistry.KeyAccessServerRegistryService/GetKey: + post: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: GetKey + description: Request to retrieve a key from the Key Access Service. + operationId: policy.kasregistry.KeyAccessServerRegistryService.GetKey + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.GetKeyRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.GetKeyResponse' + /policy.kasregistry.KeyAccessServerRegistryService/ListKeys: + post: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: ListKeys + description: Request to list keys in the Key Access Service. + operationId: policy.kasregistry.KeyAccessServerRegistryService.ListKeys + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.ListKeysRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.ListKeysResponse' + /policy.kasregistry.KeyAccessServerRegistryService/UpdateKey: + post: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: UpdateKey + description: Request to update a key in the Key Access Service. + operationId: policy.kasregistry.KeyAccessServerRegistryService.UpdateKey + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.UpdateKeyRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.UpdateKeyResponse' + /policy.kasregistry.KeyAccessServerRegistryService/RotateKey: + post: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: RotateKey + description: Request to rotate a key in the Key Access Service. + operationId: policy.kasregistry.KeyAccessServerRegistryService.RotateKey + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.RotateKeyRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.RotateKeyResponse' + /policy.kasregistry.KeyAccessServerRegistryService/SetBaseKey: + post: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: SetBaseKey + description: Request to set the default a default kas key. + operationId: policy.kasregistry.KeyAccessServerRegistryService.SetBaseKey + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.SetBaseKeyRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.SetBaseKeyResponse' + /policy.kasregistry.KeyAccessServerRegistryService/GetBaseKey: + post: + tags: + - policy.kasregistry.KeyAccessServerRegistryService + summary: GetBaseKey + description: Get Default kas keys + operationId: policy.kasregistry.KeyAccessServerRegistryService.GetBaseKey + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.GetBaseKeyRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.kasregistry.GetBaseKeyResponse' +components: + schemas: + common.MetadataUpdateEnum: + type: string + title: MetadataUpdateEnum + enum: + - METADATA_UPDATE_ENUM_UNSPECIFIED + - METADATA_UPDATE_ENUM_EXTEND + - METADATA_UPDATE_ENUM_REPLACE + policy.Algorithm: + type: string + title: Algorithm + enum: + - ALGORITHM_UNSPECIFIED + - ALGORITHM_RSA_2048 + - ALGORITHM_RSA_4096 + - ALGORITHM_EC_P256 + - ALGORITHM_EC_P384 + - ALGORITHM_EC_P521 + description: Supported key algorithms. + policy.KasPublicKeyAlgEnum: + type: string + title: KasPublicKeyAlgEnum + enum: + - KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048 + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1 + policy.KeyMode: + type: string + title: KeyMode + enum: + - KEY_MODE_UNSPECIFIED + - KEY_MODE_CONFIG_ROOT_KEY + - KEY_MODE_PROVIDER_ROOT_KEY + - KEY_MODE_REMOTE + - KEY_MODE_PUBLIC_KEY_ONLY + description: Describes the management and operational mode of a cryptographic key. + policy.KeyStatus: + type: string + title: KeyStatus + enum: + - KEY_STATUS_UNSPECIFIED + - KEY_STATUS_ACTIVE + - KEY_STATUS_ROTATED + description: The status of the key + policy.SourceType: + type: string + title: SourceType + enum: + - SOURCE_TYPE_UNSPECIFIED + - SOURCE_TYPE_INTERNAL + - SOURCE_TYPE_EXTERNAL + description: |- + Describes whether this kas is managed by the organization or if they imported + the kas information from an external party. These two modes are necessary in order + to encrypt a tdf dek with an external parties kas public key. + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + common.MetadataMutable: + type: object + properties: + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional labels + title: MetadataMutable + additionalProperties: false + common.MetadataMutable.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.BoolValue: + type: boolean + description: |- + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.AsymmetricKey: + type: object + properties: + id: + type: string + title: id + description: Required + keyId: + type: string + title: key_id + description: Required + keyAlgorithm: + title: key_algorithm + description: Required + $ref: '#/components/schemas/policy.Algorithm' + keyStatus: + title: key_status + description: Required + $ref: '#/components/schemas/policy.KeyStatus' + keyMode: + title: key_mode + description: Required Specifies how the key is managed (local or remote) + $ref: '#/components/schemas/policy.KeyMode' + publicKeyCtx: + title: public_key_ctx + description: Required Specific structure based on key provider implementation + $ref: '#/components/schemas/policy.PublicKeyCtx' + privateKeyCtx: + title: private_key_ctx + description: Optional Specific structure based on key provider implementation + $ref: '#/components/schemas/policy.PrivateKeyCtx' + providerConfig: + title: provider_config + description: Optional Configuration for the key provider + $ref: '#/components/schemas/policy.KeyProviderConfig' + metadata: + title: metadata + description: Common metadata fields + $ref: '#/components/schemas/common.Metadata' + title: AsymmetricKey + additionalProperties: false + policy.KasKey: + type: object + properties: + kasId: + type: string + title: kas_id + key: + title: key + $ref: '#/components/schemas/policy.AsymmetricKey' + kasUri: + type: string + title: kas_uri + title: KasKey + additionalProperties: false + policy.KasPublicKey: + type: object + properties: + pem: + type: string + title: pem + maxLength: 8192 + minLength: 1 + description: x509 ASN.1 content in PEM envelope, usually + kid: + type: string + title: kid + maxLength: 32 + minLength: 1 + description: A unique string identifier for this key + alg: + not: + enum: + - 0 + title: alg + description: |- + A known algorithm type with any additional parameters encoded. + To start, these may be `rsa:2048` for encrypting ZTDF files and + `ec:secp256r1` for nanoTDF, but more formats may be added as needed. + $ref: '#/components/schemas/policy.KasPublicKeyAlgEnum' + title: KasPublicKey + additionalProperties: false + description: |- + Deprecated + A KAS public key and some associated metadata for further identifcation + policy.KasPublicKeySet: + type: object + properties: + keys: + type: array + items: + $ref: '#/components/schemas/policy.KasPublicKey' + title: keys + title: KasPublicKeySet + additionalProperties: false + description: |- + Deprecated + A list of known KAS public keys + policy.Key: + type: object + properties: + id: + type: string + title: id + description: the database record ID, not the key ID (`kid`) + isActive: + title: is_active + $ref: '#/components/schemas/google.protobuf.BoolValue' + wasMapped: + title: was_mapped + $ref: '#/components/schemas/google.protobuf.BoolValue' + publicKey: + title: public_key + $ref: '#/components/schemas/policy.KasPublicKey' + kas: + title: kas + $ref: '#/components/schemas/policy.KeyAccessServer' + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Key + additionalProperties: false + policy.KeyAccessServer: + type: object + properties: + id: + type: string + title: id + uri: + type: string + title: uri + description: |+ + Address of a KAS instance + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https?://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$') + ``` + + publicKey: + title: public_key + description: Deprecated + $ref: '#/components/schemas/policy.PublicKey' + sourceType: + title: source_type + description: 'The source of the KAS: (INTERNAL, EXTERNAL)' + $ref: '#/components/schemas/policy.SourceType' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Kas keys associated with this KAS + name: + type: string + title: name + description: |- + Optional + Unique name of the KAS instance + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: KeyAccessServer + additionalProperties: false + description: Key Access Server Registry + policy.KeyProviderConfig: + type: object + properties: + id: + type: string + title: id + name: + type: string + title: name + configJson: + type: string + title: config_json + format: byte + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: KeyProviderConfig + additionalProperties: false + policy.PageRequest: + type: object + properties: + limit: + type: integer + title: limit + format: int32 + description: |- + Optional + Set to configured default limit if not provided + Maximum limit set in platform config and enforced by services + offset: + type: integer + title: offset + format: int32 + description: |- + Optional + Defaulted if not provided + title: PageRequest + additionalProperties: false + policy.PageResponse: + type: object + properties: + currentOffset: + type: integer + title: current_offset + format: int32 + description: Requested pagination offset + nextOffset: + type: integer + title: next_offset + format: int32 + description: |- + Calculated with request limit + offset or defaults + Empty when none remain after current page + total: + type: integer + title: total + format: int32 + description: Total count of entire list + title: PageResponse + additionalProperties: false + policy.PrivateKeyCtx: + type: object + properties: + keyId: + type: string + title: key_id + minLength: 1 + description: Required Key ID for the symmetric key wrapping this key. + wrappedKey: + type: string + title: wrapped_key + description: Optional Base64 encoded wrapped key. Conditionally required if key_mode is LOCAL. Should not be present if key_mode is REMOTE. + title: PrivateKeyCtx + additionalProperties: false + policy.PublicKey: + type: object + oneOf: + - properties: + cached: + title: cached + description: public key with additional information. Current preferred version + $ref: '#/components/schemas/policy.KasPublicKeySet' + title: cached + required: + - cached + - properties: + remote: + type: string + title: remote + description: |+ + kas public key url - optional since can also be retrieved via public key + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(/.*)?$') + ``` + + title: remote + required: + - remote + title: PublicKey + additionalProperties: false + description: Deprecated + policy.PublicKeyCtx: + type: object + properties: + pem: + type: string + title: pem + minLength: 1 + description: Required Base64 encoded public key in PEM format + title: PublicKeyCtx + additionalProperties: false + policy.SimpleKasKey: + type: object + properties: + kasUri: + type: string + title: kas_uri + description: The URL of the Key Access Server + publicKey: + title: public_key + description: The public key of the Key that belongs to the KAS + $ref: '#/components/schemas/policy.SimpleKasPublicKey' + kasId: + type: string + title: kas_id + description: The ID of the Key Access Server + title: SimpleKasKey + additionalProperties: false + policy.SimpleKasPublicKey: + type: object + properties: + algorithm: + title: algorithm + $ref: '#/components/schemas/policy.Algorithm' + kid: + type: string + title: kid + pem: + type: string + title: pem + title: SimpleKasPublicKey + additionalProperties: false + policy.kasregistry.ActivatePublicKeyRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + title: ActivatePublicKeyRequest + additionalProperties: false + policy.kasregistry.ActivatePublicKeyResponse: + type: object + properties: + key: + title: key + $ref: '#/components/schemas/policy.Key' + title: ActivatePublicKeyResponse + additionalProperties: false + policy.kasregistry.ChangeMappings: + type: object + properties: + id: + type: string + title: id + fqn: + type: string + title: fqn + title: ChangeMappings + additionalProperties: false + description: |- + * + Simplified information about the resources that were rotated as part of the key rotation process. + policy.kasregistry.CreateKeyAccessServerRequest: + type: object + properties: + uri: + type: string + title: uri + description: |+ + Required + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.isUri() + ``` + + publicKey: + title: public_key + description: Deprecated + $ref: '#/components/schemas/policy.PublicKey' + sourceType: + title: source_type + description: Optional + $ref: '#/components/schemas/policy.SourceType' + name: + type: string + title: name + maxLength: 253 + description: |+ + Optional + Registered KAS name must be an alphanumeric string, allowing hyphens, and underscores but not as the first or last character. The stored KAS name will be normalized to lower case.: + ``` + size(this) > 0 ? this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') : true + ``` + + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + title: CreateKeyAccessServerRequest + additionalProperties: false + policy.kasregistry.CreateKeyAccessServerResponse: + type: object + properties: + keyAccessServer: + title: key_access_server + $ref: '#/components/schemas/policy.KeyAccessServer' + title: CreateKeyAccessServerResponse + additionalProperties: false + policy.kasregistry.CreateKeyRequest: + type: object + properties: + kasId: + type: string + title: kas_id + format: uuid + description: Required The unique identifier of the Key Access Server + keyId: + type: string + title: key_id + minLength: 1 + description: Required A user-defined identifier for the key + keyAlgorithm: + title: key_algorithm + description: |+ + Required The algorithm to be used for the key + The key_algorithm must be one of the defined values.: + ``` + this in [1, 2, 3, 4] + ``` + + $ref: '#/components/schemas/policy.Algorithm' + keyMode: + title: key_mode + description: |+ + Required The mode of the key (e.g., local or external) + The key_mode must be one of the defined values (1-4).: + ``` + this >= 1 && this <= 4 + ``` + + $ref: '#/components/schemas/policy.KeyMode' + publicKeyCtx: + title: public_key_ctx + description: Required Context or additional data specific to the public key, based on the key provider implementation + $ref: '#/components/schemas/policy.PublicKeyCtx' + privateKeyCtx: + title: private_key_ctx + description: Conditionally Required Context or additional data specific to the private key, based on the key provider implementation + $ref: '#/components/schemas/policy.PrivateKeyCtx' + providerConfigId: + type: string + title: provider_config_id + description: Optional Configuration ID for the key provider, if applicable + metadata: + title: metadata + description: Common metadata Mutable metadata for the key + $ref: '#/components/schemas/common.MetadataMutable' + title: CreateKeyRequest + required: + - publicKeyCtx + additionalProperties: false + description: |+ + Create a new asymmetric key for the specified Key Access Server (KAS) + The wrapped_key is required if key_mode is KEY_MODE_CONFIG_ROOT_KEY or KEY_MODE_PROVIDER_ROOT_KEY. The wrapped_key must be empty if key_mode is KEY_MODE_REMOTE or KEY_MODE_PUBLIC_KEY_ONLY.: + ``` + ((this.key_mode == 1 || this.key_mode == 2) && this.private_key_ctx.wrapped_key != '') || ((this.key_mode == 3 || this.key_mode == 4) && this.private_key_ctx.wrapped_key == '') + ``` + + Provider config id is required if key_mode is KEY_MODE_PROVIDER_ROOT_KEY or KEY_MODE_REMOTE. It must be empty for KEY_MODE_CONFIG_ROOT_KEY and KEY_MODE_PUBLIC_KEY_ONLY.: + ``` + ((this.key_mode == 1 || this.key_mode == 4) && this.provider_config_id == '') || ((this.key_mode == 2 || this.key_mode == 3) && this.provider_config_id != '') + ``` + + private_key_ctx must not be set if key_mode is KEY_MODE_PUBLIC_KEY_ONLY.: + ``` + !(this.key_mode == 4 && has(this.private_key_ctx)) + ``` + + policy.kasregistry.CreateKeyResponse: + type: object + properties: + kasKey: + title: kas_key + description: The created asymmetric key for a KAS. + $ref: '#/components/schemas/policy.KasKey' + title: CreateKeyResponse + additionalProperties: false + description: Response to a CreateKeyRequest, containing the created asymmetric key + policy.kasregistry.CreatePublicKeyRequest: + type: object + properties: + kasId: + type: string + title: kas_id + format: uuid + description: Required + key: + title: key + description: Required + $ref: '#/components/schemas/policy.KasPublicKey' + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + title: CreatePublicKeyRequest + required: + - key + additionalProperties: false + policy.kasregistry.CreatePublicKeyResponse: + type: object + properties: + key: + title: key + $ref: '#/components/schemas/policy.Key' + title: CreatePublicKeyResponse + additionalProperties: false + policy.kasregistry.DeactivatePublicKeyRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + title: DeactivatePublicKeyRequest + additionalProperties: false + policy.kasregistry.DeactivatePublicKeyResponse: + type: object + properties: + key: + title: key + $ref: '#/components/schemas/policy.Key' + title: DeactivatePublicKeyResponse + additionalProperties: false + policy.kasregistry.DeleteKeyAccessServerRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: DeleteKeyAccessServerRequest + additionalProperties: false + policy.kasregistry.DeleteKeyAccessServerResponse: + type: object + properties: + keyAccessServer: + title: key_access_server + $ref: '#/components/schemas/policy.KeyAccessServer' + title: DeleteKeyAccessServerResponse + additionalProperties: false + policy.kasregistry.GetBaseKeyRequest: + type: object + title: GetBaseKeyRequest + additionalProperties: false + policy.kasregistry.GetBaseKeyResponse: + type: object + properties: + baseKey: + title: base_key + description: The current base key + $ref: '#/components/schemas/policy.SimpleKasKey' + title: GetBaseKeyResponse + additionalProperties: false + policy.kasregistry.GetKeyAccessServerRequest: + type: object + oneOf: + - properties: + kasId: + type: string + title: kas_id + format: uuid + description: 'option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field' + title: kas_id + required: + - kasId + - properties: + name: + type: string + title: name + minLength: 1 + title: name + required: + - name + - properties: + uri: + type: string + title: uri + minLength: 1 + format: uri + title: uri + required: + - uri + properties: + id: + type: string + title: id + format: uuid + description: Deprecated + deprecated: true + title: GetKeyAccessServerRequest + additionalProperties: false + description: |+ + Either use deprecated 'id' field or one of 'kas_id' or 'uri', but not both: + ``` + !(has(this.id) && (has(this.kas_id) || has(this.uri) || has(this.name))) + ``` + + Either id or one of kas_id or uri must be set: + ``` + has(this.id) || has(this.kas_id) || has(this.uri) || has(this.name) + ``` + + policy.kasregistry.GetKeyAccessServerResponse: + type: object + properties: + keyAccessServer: + title: key_access_server + $ref: '#/components/schemas/policy.KeyAccessServer' + title: GetKeyAccessServerResponse + additionalProperties: false + policy.kasregistry.GetKeyRequest: + type: object + oneOf: + - properties: + id: + type: string + title: id + format: uuid + description: The unique identifier of the key to retrieve + title: id + required: + - id + - properties: + key: + title: key + $ref: '#/components/schemas/policy.kasregistry.KasKeyIdentifier' + title: key + required: + - key + title: GetKeyRequest + additionalProperties: false + description: Retrieve an existing asymmetric key from the Key Management System + policy.kasregistry.GetKeyResponse: + type: object + properties: + kasKey: + title: kas_key + description: The requested asymmetric key for a KAS. + $ref: '#/components/schemas/policy.KasKey' + title: GetKeyResponse + additionalProperties: false + description: Response to a GetKeyRequest, containing the requested asymmetric key + policy.kasregistry.GetPublicKeyRequest: + type: object + oneOf: + - properties: + id: + type: string + title: id + format: uuid + title: id + required: + - id + title: GetPublicKeyRequest + additionalProperties: false + policy.kasregistry.GetPublicKeyResponse: + type: object + properties: + key: + title: key + $ref: '#/components/schemas/policy.Key' + title: GetPublicKeyResponse + additionalProperties: false + policy.kasregistry.GrantedPolicyObject: + type: object + properties: + id: + type: string + title: id + fqn: + type: string + title: fqn + title: GrantedPolicyObject + additionalProperties: false + description: Can be namespace, attribute definition, or value + policy.kasregistry.KasKeyIdentifier: + type: object + oneOf: + - properties: + kasId: + type: string + title: kas_id + format: uuid + title: kas_id + required: + - kasId + - properties: + name: + type: string + title: name + minLength: 1 + title: name + required: + - name + - properties: + uri: + type: string + title: uri + minLength: 1 + format: uri + title: uri + required: + - uri + properties: + kid: + type: string + title: kid + minLength: 1 + description: Required Key ID of the key in question + title: KasKeyIdentifier + additionalProperties: false + description: Nested message for specifying the active key using KAS ID and Key ID + policy.kasregistry.KeyAccessServerGrants: + type: object + properties: + keyAccessServer: + title: key_access_server + $ref: '#/components/schemas/policy.KeyAccessServer' + namespaceGrants: + type: array + items: + $ref: '#/components/schemas/policy.kasregistry.GrantedPolicyObject' + title: namespace_grants + attributeGrants: + type: array + items: + $ref: '#/components/schemas/policy.kasregistry.GrantedPolicyObject' + title: attribute_grants + valueGrants: + type: array + items: + $ref: '#/components/schemas/policy.kasregistry.GrantedPolicyObject' + title: value_grants + title: KeyAccessServerGrants + additionalProperties: false + description: Deprecated + policy.kasregistry.ListKeyAccessServerGrantsRequest: + type: object + properties: + kasId: + type: string + title: kas_id + description: |+ + Optional + Filter LIST by ID of a registered Key Access Server. + If neither is provided, grants from all registered KASs to policy attribute + objects are returned. + Optional field must be a valid UUID: + ``` + size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') + ``` + + kasUri: + type: string + title: kas_uri + description: |+ + Optional + Filter LIST by URI of a registered Key Access Server. + If none is provided, grants from all registered KASs to policy attribute + objects are returned. + Optional URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + size(this) == 0 || this.isUri() + ``` + + kasName: + type: string + title: kas_name + maxLength: 253 + description: |+ + Optional + Filter LIST by name of a registered Key Access Server. + If none are provided, grants from all registered KASs to policy attribute + objects are returned. + Registered KAS name must be an alphanumeric string, allowing hyphens, and underscores but not as the first or last character. The stored KAS name will be normalized to lower case.: + ``` + size(this) == 0 || this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') + ``` + + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListKeyAccessServerGrantsRequest + additionalProperties: false + description: |- + LIST of KAS Grants returns flat response of grants to all policy objects. It + does not employ selectors for grants to specific policy objects or build the + attribute tree relation. If grants to a known namespace, attribute, or value + are needed, use the respective GET request to the specific policy object. + policy.kasregistry.ListKeyAccessServerGrantsResponse: + type: object + properties: + grants: + type: array + items: + $ref: '#/components/schemas/policy.kasregistry.KeyAccessServerGrants' + title: grants + deprecated: true + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListKeyAccessServerGrantsResponse + additionalProperties: false + description: Deprecated + policy.kasregistry.ListKeyAccessServersRequest: + type: object + properties: + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListKeyAccessServersRequest + additionalProperties: false + policy.kasregistry.ListKeyAccessServersResponse: + type: object + properties: + keyAccessServers: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: key_access_servers + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListKeyAccessServersResponse + additionalProperties: false + policy.kasregistry.ListKeysRequest: + type: object + oneOf: + - properties: + kasId: + type: string + title: kas_id + format: uuid + description: Filter keys by the KAS ID + title: kas_id + required: + - kasId + - properties: + kasName: + type: string + title: kas_name + minLength: 1 + description: Filter keys by the KAS name + title: kas_name + required: + - kasName + - properties: + kasUri: + type: string + title: kas_uri + minLength: 1 + format: uri + description: Filter keys by the KAS URI + title: kas_uri + required: + - kasUri + properties: + keyAlgorithm: + title: key_algorithm + description: |+ + Filter keys by algorithm + The key_algorithm must be one of the defined values.: + ``` + this in [0, 1, 2, 3, 4] + ``` + + $ref: '#/components/schemas/policy.Algorithm' + pagination: + title: pagination + description: Optional Pagination request for the list of keys + $ref: '#/components/schemas/policy.PageRequest' + title: ListKeysRequest + additionalProperties: false + description: List all asymmetric keys managed by a specific Key Access Server or with a given algorithm + policy.kasregistry.ListKeysResponse: + type: object + properties: + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.KasKey' + title: kas_keys + description: The list of kas keys + pagination: + title: pagination + description: Pagination response for the list of keys + $ref: '#/components/schemas/policy.PageResponse' + title: ListKeysResponse + additionalProperties: false + description: Response to a ListKeysRequest, containing the list of asymmetric keys and pagination information + policy.kasregistry.ListPublicKeyMappingRequest: + type: object + oneOf: + - properties: + kasId: + type: string + title: kas_id + format: uuid + description: Optional + title: kas_id + required: + - kasId + - properties: + kasName: + type: string + title: kas_name + minLength: 1 + description: Optional + title: kas_name + required: + - kasName + - properties: + kasUri: + type: string + title: kas_uri + minLength: 1 + format: uri + description: Optional + title: kas_uri + required: + - kasUri + properties: + publicKeyId: + type: string + title: public_key_id + format: uuid + description: Optional Public Key ID + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListPublicKeyMappingRequest + additionalProperties: false + policy.kasregistry.ListPublicKeyMappingResponse: + type: object + properties: + publicKeyMappings: + type: array + items: + $ref: '#/components/schemas/policy.kasregistry.ListPublicKeyMappingResponse.PublicKeyMapping' + title: public_key_mappings + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListPublicKeyMappingResponse + additionalProperties: false + policy.kasregistry.ListPublicKeyMappingResponse.Association: + type: object + properties: + id: + type: string + title: id + fqn: + type: string + title: fqn + title: Association + additionalProperties: false + policy.kasregistry.ListPublicKeyMappingResponse.PublicKey: + type: object + properties: + key: + title: key + $ref: '#/components/schemas/policy.Key' + values: + type: array + items: + $ref: '#/components/schemas/policy.kasregistry.ListPublicKeyMappingResponse.Association' + title: values + definitions: + type: array + items: + $ref: '#/components/schemas/policy.kasregistry.ListPublicKeyMappingResponse.Association' + title: definitions + namespaces: + type: array + items: + $ref: '#/components/schemas/policy.kasregistry.ListPublicKeyMappingResponse.Association' + title: namespaces + title: PublicKey + additionalProperties: false + policy.kasregistry.ListPublicKeyMappingResponse.PublicKeyMapping: + type: object + properties: + kasId: + type: string + title: kas_id + kasName: + type: string + title: kas_name + kasUri: + type: string + title: kas_uri + publicKeys: + type: array + items: + $ref: '#/components/schemas/policy.kasregistry.ListPublicKeyMappingResponse.PublicKey' + title: public_keys + title: PublicKeyMapping + additionalProperties: false + policy.kasregistry.ListPublicKeysRequest: + type: object + oneOf: + - properties: + kasId: + type: string + title: kas_id + format: uuid + description: Optional + title: kas_id + required: + - kasId + - properties: + kasName: + type: string + title: kas_name + minLength: 1 + description: Optional + title: kas_name + required: + - kasName + - properties: + kasUri: + type: string + title: kas_uri + minLength: 1 + format: uri + description: Optional + title: kas_uri + required: + - kasUri + properties: + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListPublicKeysRequest + additionalProperties: false + policy.kasregistry.ListPublicKeysResponse: + type: object + properties: + keys: + type: array + items: + $ref: '#/components/schemas/policy.Key' + title: keys + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListPublicKeysResponse + additionalProperties: false + policy.kasregistry.RotateKeyRequest: + type: object + oneOf: + - properties: + id: + type: string + title: id + format: uuid + description: Current Active Key UUID + title: id + required: + - id + - properties: + key: + title: key + description: Alternative way to specify the active key using KAS ID and Key ID + $ref: '#/components/schemas/policy.kasregistry.KasKeyIdentifier' + title: key + required: + - key + properties: + newKey: + title: new_key + description: Information about the new key to be rotated in + $ref: '#/components/schemas/policy.kasregistry.RotateKeyRequest.NewKey' + title: RotateKeyRequest + additionalProperties: false + description: |+ + For the new key, the wrapped_key is required if key_mode is KEY_MODE_CONFIG_ROOT_KEY or KEY_MODE_PROVIDER_ROOT_KEY. The wrapped_key must be empty if key_mode is KEY_MODE_REMOTE or KEY_MODE_PUBLIC_KEY_ONLY.: + ``` + ((this.new_key.key_mode == 1 || this.new_key.key_mode == 2) && this.new_key.private_key_ctx.wrapped_key != '') || ((this.new_key.key_mode == 3 || this.new_key.key_mode == 4) && this.new_key.private_key_ctx.wrapped_key == '') + ``` + + For the new key, provider config id is required if key_mode is KEY_MODE_PROVIDER_ROOT_KEY or KEY_MODE_REMOTE. It must be empty for KEY_MODE_CONFIG_ROOT_KEY and KEY_MODE_PUBLIC_KEY_ONLY.: + ``` + ((this.new_key.key_mode == 1 || this.new_key.key_mode == 4) && this.new_key.provider_config_id == '') || ((this.new_key.key_mode == 2 || this.new_key.key_mode == 3) && this.new_key.provider_config_id != '') + ``` + + private_key_ctx must not be set if key_mode is KEY_MODE_PUBLIC_KEY_ONLY.: + ``` + !(this.new_key.key_mode == 4 && has(this.new_key.private_key_ctx)) + ``` + + policy.kasregistry.RotateKeyRequest.NewKey: + type: object + properties: + keyId: + type: string + title: key_id + minLength: 1 + description: Required + algorithm: + title: algorithm + description: |+ + Required + The key_algorithm must be one of the defined values.: + ``` + this in [1, 2, 3, 4] + ``` + + $ref: '#/components/schemas/policy.Algorithm' + keyMode: + title: key_mode + description: |+ + Required + The new key_mode must be one of the defined values (1-4).: + ``` + this in [1, 2, 3, 4] + ``` + + $ref: '#/components/schemas/policy.KeyMode' + publicKeyCtx: + title: public_key_ctx + description: Required + $ref: '#/components/schemas/policy.PublicKeyCtx' + privateKeyCtx: + title: private_key_ctx + description: Required + $ref: '#/components/schemas/policy.PrivateKeyCtx' + providerConfigId: + type: string + title: provider_config_id + description: Conditionally Required. Validation handled by message-level CEL + metadata: + title: metadata + description: Common metadata fields + $ref: '#/components/schemas/common.MetadataMutable' + title: NewKey + required: + - publicKeyCtx + additionalProperties: false + description: Nested message for specifying the new key details + policy.kasregistry.RotateKeyResponse: + type: object + properties: + kasKey: + title: kas_key + description: The newly rotated Kas Key + $ref: '#/components/schemas/policy.KasKey' + rotatedResources: + title: rotated_resources + description: All resources that were rotated as part of the key rotation process + $ref: '#/components/schemas/policy.kasregistry.RotatedResources' + title: RotateKeyResponse + additionalProperties: false + description: Response message for the RotateKey request + policy.kasregistry.RotatedResources: + type: object + properties: + rotatedOutKey: + title: rotated_out_key + description: The old key that was rotated out + $ref: '#/components/schemas/policy.KasKey' + attributeDefinitionMappings: + type: array + items: + $ref: '#/components/schemas/policy.kasregistry.ChangeMappings' + title: attribute_definition_mappings + attributeValueMappings: + type: array + items: + $ref: '#/components/schemas/policy.kasregistry.ChangeMappings' + title: attribute_value_mappings + namespaceMappings: + type: array + items: + $ref: '#/components/schemas/policy.kasregistry.ChangeMappings' + title: namespace_mappings + title: RotatedResources + additionalProperties: false + description: All resources that were rotated as part of the key rotation process + policy.kasregistry.SetBaseKeyRequest: + type: object + oneOf: + - properties: + id: + type: string + title: id + format: uuid + description: Current Key UUID tp be set as default + title: id + required: + - id + - properties: + key: + title: key + description: Alternative way to specify the key using KAS ID and Key ID + $ref: '#/components/schemas/policy.kasregistry.KasKeyIdentifier' + title: key + required: + - key + title: SetBaseKeyRequest + additionalProperties: false + description: |- + Sets the specified key as the base key for the Key Access Server + Note: The key must be active. + policy.kasregistry.SetBaseKeyResponse: + type: object + properties: + newBaseKey: + title: new_base_key + description: The key that was set as base + $ref: '#/components/schemas/policy.SimpleKasKey' + previousBaseKey: + title: previous_base_key + description: The previous base key, if any + $ref: '#/components/schemas/policy.SimpleKasKey' + title: SetBaseKeyResponse + additionalProperties: false + policy.kasregistry.UpdateKeyAccessServerRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + uri: + type: string + title: uri + description: |+ + Optional + Optional URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + size(this) == 0 || this.isUri() + ``` + + publicKey: + title: public_key + description: |- + Deprecated + Optional + $ref: '#/components/schemas/policy.PublicKey' + sourceType: + title: source_type + description: |- + Optional + Using UNSPECIFIED will result in a successful update, + but will not actually update the underlying source. + You should not update KAS's from INTERNAL/EXTERNAL + to unspecified. + $ref: '#/components/schemas/policy.SourceType' + name: + type: string + title: name + maxLength: 253 + description: |+ + Optional + Registered KAS name must be an alphanumeric string, allowing hyphens, and underscores but not as the first or last character. The stored KAS name will be normalized to lower case.: + ``` + size(this) == 0 || this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') + ``` + + metadata: + title: metadata + description: |- + Optional + Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateKeyAccessServerRequest + additionalProperties: false + policy.kasregistry.UpdateKeyAccessServerResponse: + type: object + properties: + keyAccessServer: + title: key_access_server + $ref: '#/components/schemas/policy.KeyAccessServer' + title: UpdateKeyAccessServerResponse + additionalProperties: false + policy.kasregistry.UpdateKeyRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required The unique identifier of the key to update + metadata: + title: metadata + description: |- + Optional + Common metadata Mutable metadata for the key + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + description: The behavior for updating the metadata + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateKeyRequest + additionalProperties: false + description: |+ + Update an existing asymmetric key in the Key Management System + Metadata update behavior must be either APPEND or REPLACE, when updating metadata.: + ``` + ((!has(this.metadata)) || (has(this.metadata) && this.metadata_update_behavior != 0)) + ``` + + policy.kasregistry.UpdateKeyResponse: + type: object + properties: + kasKey: + title: kas_key + description: The updated kas key + $ref: '#/components/schemas/policy.KasKey' + title: UpdateKeyResponse + additionalProperties: false + description: Response to an UpdateKeyRequest, containing the updated asymmetric key + policy.kasregistry.UpdatePublicKeyRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + metadata: + title: metadata + description: |- + Optional + Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdatePublicKeyRequest + additionalProperties: false + policy.kasregistry.UpdatePublicKeyResponse: + type: object + properties: + key: + title: key + $ref: '#/components/schemas/policy.Key' + title: UpdatePublicKeyResponse + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. +security: [] +tags: + - name: policy.kasregistry.KeyAccessServerRegistryService diff --git a/specs/policy/kasregistry/key_access_server_registry.swagger.json b/specs/policy/kasregistry/key_access_server_registry.swagger.json new file mode 100644 index 0000000..118f1ea --- /dev/null +++ b/specs/policy/kasregistry/key_access_server_registry.swagger.json @@ -0,0 +1,730 @@ +{ + "swagger": "2.0", + "info": { + "title": "policy/kasregistry/key_access_server_registry.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "KeyAccessServerRegistryService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/key-access-servers": { + "get": { + "operationId": "KeyAccessServerRegistryService_ListKeyAccessServers", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/kasregistryListKeyAccessServersResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "pagination.limit", + "description": "Optional\nSet to configured default limit if not provided\nMaximum limit set in platform config and enforced by services", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "pagination.offset", + "description": "Optional\nDefaulted if not provided", + "in": "query", + "required": false, + "type": "integer", + "format": "int32" + } + ], + "tags": [ + "KeyAccessServerRegistryService" + ] + } + } + }, + "definitions": { + "RotateKeyRequestNewKey": { + "type": "object", + "properties": { + "keyId": { + "type": "string", + "title": "Required" + }, + "algorithm": { + "$ref": "#/definitions/policyAlgorithm", + "title": "Required" + }, + "keyMode": { + "$ref": "#/definitions/policyKeyMode", + "title": "Required" + }, + "publicKeyCtx": { + "$ref": "#/definitions/policyPublicKeyCtx", + "title": "Required" + }, + "privateKeyCtx": { + "$ref": "#/definitions/policyPrivateKeyCtx", + "title": "Required" + }, + "providerConfigId": { + "type": "string", + "description": "Conditionally Required.\n\nValidation handled by message-level CEL" + }, + "metadata": { + "$ref": "#/definitions/commonMetadataMutable", + "title": "Common metadata fields" + } + }, + "title": "Nested message for specifying the new key details" + }, + "commonMetadata": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "title": "created_at set by server (entity who created will recorded in an audit event)" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "title": "updated_at set by server (entity who updated will recorded in an audit event)" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional short description" + } + }, + "title": "Struct to uniquely identify a resource with optional additional metadata" + }, + "commonMetadataMutable": { + "type": "object", + "properties": { + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional labels" + } + } + }, + "commonMetadataUpdateEnum": { + "type": "string", + "enum": [ + "METADATA_UPDATE_ENUM_UNSPECIFIED", + "METADATA_UPDATE_ENUM_EXTEND", + "METADATA_UPDATE_ENUM_REPLACE" + ], + "default": "METADATA_UPDATE_ENUM_UNSPECIFIED", + "title": "- METADATA_UPDATE_ENUM_UNSPECIFIED: unspecified update type\n - METADATA_UPDATE_ENUM_EXTEND: only update the fields that are provided\n - METADATA_UPDATE_ENUM_REPLACE: replace the entire metadata with the provided metadata" + }, + "kasregistryChangeMappings": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "fqn": { + "type": "string" + } + }, + "description": "*\nSimplified information about the resources that were rotated as part of the key rotation process." + }, + "kasregistryCreateKeyAccessServerResponse": { + "type": "object", + "properties": { + "keyAccessServer": { + "$ref": "#/definitions/policyKeyAccessServer" + } + } + }, + "kasregistryCreateKeyResponse": { + "type": "object", + "properties": { + "kasKey": { + "$ref": "#/definitions/policyKasKey", + "description": "The created asymmetric key for a KAS." + } + }, + "title": "Response to a CreateKeyRequest, containing the created asymmetric key" + }, + "kasregistryDeleteKeyAccessServerResponse": { + "type": "object", + "properties": { + "keyAccessServer": { + "$ref": "#/definitions/policyKeyAccessServer" + } + } + }, + "kasregistryGetBaseKeyResponse": { + "type": "object", + "properties": { + "baseKey": { + "$ref": "#/definitions/policySimpleKasKey", + "title": "The current base key" + } + } + }, + "kasregistryGetKeyAccessServerResponse": { + "type": "object", + "properties": { + "keyAccessServer": { + "$ref": "#/definitions/policyKeyAccessServer" + } + } + }, + "kasregistryGetKeyResponse": { + "type": "object", + "properties": { + "kasKey": { + "$ref": "#/definitions/policyKasKey", + "description": "The requested asymmetric key for a KAS." + } + }, + "title": "Response to a GetKeyRequest, containing the requested asymmetric key" + }, + "kasregistryGrantedPolicyObject": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "fqn": { + "type": "string" + } + }, + "title": "Can be namespace, attribute definition, or value" + }, + "kasregistryKasKeyIdentifier": { + "type": "object", + "properties": { + "kasId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "uri": { + "type": "string" + }, + "kid": { + "type": "string", + "title": "Required Key ID of the key in question" + } + }, + "title": "Nested message for specifying the active key using KAS ID and Key ID" + }, + "kasregistryKeyAccessServerGrants": { + "type": "object", + "properties": { + "keyAccessServer": { + "$ref": "#/definitions/policyKeyAccessServer" + }, + "namespaceGrants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/kasregistryGrantedPolicyObject" + } + }, + "attributeGrants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/kasregistryGrantedPolicyObject" + } + }, + "valueGrants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/kasregistryGrantedPolicyObject" + } + } + }, + "title": "Deprecated" + }, + "kasregistryListKeyAccessServerGrantsResponse": { + "type": "object", + "properties": { + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/kasregistryKeyAccessServerGrants" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + }, + "title": "Deprecated" + }, + "kasregistryListKeyAccessServersResponse": { + "type": "object", + "properties": { + "keyAccessServers": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + } + }, + "kasregistryListKeysResponse": { + "type": "object", + "properties": { + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKasKey" + }, + "title": "The list of kas keys" + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse", + "title": "Pagination response for the list of keys" + } + }, + "title": "Response to a ListKeysRequest, containing the list of asymmetric keys and pagination information" + }, + "kasregistryRotateKeyResponse": { + "type": "object", + "properties": { + "kasKey": { + "$ref": "#/definitions/policyKasKey", + "title": "The newly rotated Kas Key" + }, + "rotatedResources": { + "$ref": "#/definitions/kasregistryRotatedResources", + "title": "All resources that were rotated as part of the key rotation process" + } + }, + "title": "Response message for the RotateKey request" + }, + "kasregistryRotatedResources": { + "type": "object", + "properties": { + "rotatedOutKey": { + "$ref": "#/definitions/policyKasKey", + "title": "The old key that was rotated out" + }, + "attributeDefinitionMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/kasregistryChangeMappings" + } + }, + "attributeValueMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/kasregistryChangeMappings" + } + }, + "namespaceMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/kasregistryChangeMappings" + } + } + }, + "title": "All resources that were rotated as part of the key rotation process" + }, + "kasregistrySetBaseKeyResponse": { + "type": "object", + "properties": { + "newBaseKey": { + "$ref": "#/definitions/policySimpleKasKey", + "title": "The key that was set as base" + }, + "previousBaseKey": { + "$ref": "#/definitions/policySimpleKasKey", + "title": "The previous base key, if any" + } + } + }, + "kasregistryUpdateKeyAccessServerResponse": { + "type": "object", + "properties": { + "keyAccessServer": { + "$ref": "#/definitions/policyKeyAccessServer" + } + } + }, + "kasregistryUpdateKeyResponse": { + "type": "object", + "properties": { + "kasKey": { + "$ref": "#/definitions/policyKasKey", + "title": "The updated kas key" + } + }, + "title": "Response to an UpdateKeyRequest, containing the updated asymmetric key" + }, + "policyAlgorithm": { + "type": "string", + "enum": [ + "ALGORITHM_UNSPECIFIED", + "ALGORITHM_RSA_2048", + "ALGORITHM_RSA_4096", + "ALGORITHM_EC_P256", + "ALGORITHM_EC_P384", + "ALGORITHM_EC_P521" + ], + "default": "ALGORITHM_UNSPECIFIED", + "description": "Supported key algorithms." + }, + "policyAsymmetricKey": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Required" + }, + "keyId": { + "type": "string", + "title": "Required" + }, + "keyAlgorithm": { + "$ref": "#/definitions/policyAlgorithm", + "title": "Required" + }, + "keyStatus": { + "$ref": "#/definitions/policyKeyStatus", + "title": "Required" + }, + "keyMode": { + "$ref": "#/definitions/policyKeyMode", + "description": "Specifies how the key is managed (local or remote)", + "title": "Required" + }, + "publicKeyCtx": { + "$ref": "#/definitions/policyPublicKeyCtx", + "description": "Specific structure based on key provider implementation", + "title": "Required" + }, + "privateKeyCtx": { + "$ref": "#/definitions/policyPrivateKeyCtx", + "description": "Specific structure based on key provider implementation", + "title": "Optional" + }, + "providerConfig": { + "$ref": "#/definitions/policyKeyProviderConfig", + "description": "Configuration for the key provider", + "title": "Optional" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata fields" + } + } + }, + "policyKasKey": { + "type": "object", + "properties": { + "kasId": { + "type": "string" + }, + "key": { + "$ref": "#/definitions/policyAsymmetricKey" + }, + "kasUri": { + "type": "string" + } + } + }, + "policyKasPublicKey": { + "type": "object", + "properties": { + "pem": { + "type": "string", + "title": "x509 ASN.1 content in PEM envelope, usually" + }, + "kid": { + "type": "string", + "title": "A unique string identifier for this key" + }, + "alg": { + "$ref": "#/definitions/policyKasPublicKeyAlgEnum", + "description": "A known algorithm type with any additional parameters encoded.\nTo start, these may be `rsa:2048` for encrypting ZTDF files and\n`ec:secp256r1` for nanoTDF, but more formats may be added as needed." + } + }, + "title": "Deprecated\nA KAS public key and some associated metadata for further identifcation" + }, + "policyKasPublicKeyAlgEnum": { + "type": "string", + "enum": [ + "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1" + ], + "default": "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED" + }, + "policyKasPublicKeySet": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKasPublicKey" + } + } + }, + "title": "Deprecated\nA list of known KAS public keys" + }, + "policyKeyAccessServer": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "uri": { + "type": "string", + "title": "Address of a KAS instance" + }, + "publicKey": { + "$ref": "#/definitions/policyPublicKey", + "title": "Deprecated" + }, + "sourceType": { + "$ref": "#/definitions/policySourceType", + "title": "The source of the KAS: (INTERNAL, EXTERNAL)" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Kas keys associated with this KAS" + }, + "name": { + "type": "string", + "title": "Optional\nUnique name of the KAS instance" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "title": "Key Access Server Registry" + }, + "policyKeyMode": { + "type": "string", + "enum": [ + "KEY_MODE_UNSPECIFIED", + "KEY_MODE_CONFIG_ROOT_KEY", + "KEY_MODE_PROVIDER_ROOT_KEY", + "KEY_MODE_REMOTE", + "KEY_MODE_PUBLIC_KEY_ONLY" + ], + "default": "KEY_MODE_UNSPECIFIED", + "description": "Describes the management and operational mode of a cryptographic key.\n\n - KEY_MODE_UNSPECIFIED: KEY_MODE_UNSPECIFIED: Default, unspecified key mode. Indicates an uninitialized or error state.\n - KEY_MODE_CONFIG_ROOT_KEY: KEY_MODE_CONFIG_ROOT_KEY: Local key management where the private key is wrapped by a Key Encryption Key (KEK)\nsourced from local configuration. Unwrapping and all cryptographic operations are performed locally.\n - KEY_MODE_PROVIDER_ROOT_KEY: KEY_MODE_PROVIDER_ROOT_KEY: Local key management where the private key is wrapped by a Key Encryption Key (KEK)\nmanaged by an external provider (e.g., a Hardware Security Module or Cloud KMS).\nKey unwrapping is delegated to the external provider; subsequent cryptographic operations\nare performed locally using the unwrapped key.\n - KEY_MODE_REMOTE: KEY_MODE_REMOTE: Remote key management where the private key is stored in, and all cryptographic\noperations are performed by, a remote Key Management Service (KMS) or HSM.\nThe private key material never leaves the secure boundary of the remote system.\n - KEY_MODE_PUBLIC_KEY_ONLY: KEY_MODE_PUBLIC_KEY_ONLY: Public key only mode. Used when only a public key is available or required,\ntypically for wrapping operations (e.g., encrypting a Data Encryption Key (DEK) for an external KAS).\nThe corresponding private key is not managed or accessible by this system." + }, + "policyKeyProviderConfig": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "configJson": { + "type": "string", + "format": "byte" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyKeyStatus": { + "type": "string", + "enum": [ + "KEY_STATUS_UNSPECIFIED", + "KEY_STATUS_ACTIVE", + "KEY_STATUS_ROTATED" + ], + "default": "KEY_STATUS_UNSPECIFIED", + "title": "The status of the key" + }, + "policyPageRequest": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "title": "Optional\nSet to configured default limit if not provided\nMaximum limit set in platform config and enforced by services" + }, + "offset": { + "type": "integer", + "format": "int32", + "title": "Optional\nDefaulted if not provided" + } + } + }, + "policyPageResponse": { + "type": "object", + "properties": { + "currentOffset": { + "type": "integer", + "format": "int32", + "title": "Requested pagination offset" + }, + "nextOffset": { + "type": "integer", + "format": "int32", + "title": "Calculated with request limit + offset or defaults\nEmpty when none remain after current page" + }, + "total": { + "type": "integer", + "format": "int32", + "title": "Total count of entire list" + } + } + }, + "policyPrivateKeyCtx": { + "type": "object", + "properties": { + "keyId": { + "type": "string", + "description": "Key ID for the symmetric key wrapping this key.", + "title": "Required" + }, + "wrappedKey": { + "type": "string", + "description": "Base64 encoded wrapped key. Conditionally required if key_mode is LOCAL. Should not be present if key_mode is REMOTE.", + "title": "Optional" + } + } + }, + "policyPublicKey": { + "type": "object", + "properties": { + "remote": { + "type": "string", + "title": "kas public key url - optional since can also be retrieved via public key" + }, + "cached": { + "$ref": "#/definitions/policyKasPublicKeySet", + "title": "public key with additional information. Current preferred version" + } + }, + "title": "Deprecated" + }, + "policyPublicKeyCtx": { + "type": "object", + "properties": { + "pem": { + "type": "string", + "description": "Base64 encoded public key in PEM format", + "title": "Required" + } + } + }, + "policySimpleKasKey": { + "type": "object", + "properties": { + "kasUri": { + "type": "string", + "title": "The URL of the Key Access Server" + }, + "publicKey": { + "$ref": "#/definitions/policySimpleKasPublicKey", + "title": "The public key of the Key that belongs to the KAS" + }, + "kasId": { + "type": "string", + "title": "The ID of the Key Access Server" + } + } + }, + "policySimpleKasPublicKey": { + "type": "object", + "properties": { + "algorithm": { + "$ref": "#/definitions/policyAlgorithm" + }, + "kid": { + "type": "string" + }, + "pem": { + "type": "string" + } + } + }, + "policySourceType": { + "type": "string", + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "SOURCE_TYPE_INTERNAL", + "SOURCE_TYPE_EXTERNAL" + ], + "default": "SOURCE_TYPE_UNSPECIFIED", + "description": "Describes whether this kas is managed by the organization or if they imported\nthe kas information from an external party. These two modes are necessary in order\nto encrypt a tdf dek with an external parties kas public key.\n\n - SOURCE_TYPE_INTERNAL: The kas is managed by the organization.\n - SOURCE_TYPE_EXTERNAL: The kas is managed by an external party." + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/policy/keymanagement/key_management.openapi.yaml b/specs/policy/keymanagement/key_management.openapi.yaml new file mode 100644 index 0000000..4d28d36 --- /dev/null +++ b/specs/policy/keymanagement/key_management.openapi.yaml @@ -0,0 +1,600 @@ +openapi: 3.1.0 +info: + title: policy.keymanagement +paths: + /policy.keymanagement.KeyManagementService/CreateProviderConfig: + post: + tags: + - policy.keymanagement.KeyManagementService + summary: CreateProviderConfig + description: |- + Key Management + Provider Management + operationId: policy.keymanagement.KeyManagementService.CreateProviderConfig + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.keymanagement.CreateProviderConfigRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.keymanagement.CreateProviderConfigResponse' + /policy.keymanagement.KeyManagementService/GetProviderConfig: + post: + tags: + - policy.keymanagement.KeyManagementService + summary: GetProviderConfig + operationId: policy.keymanagement.KeyManagementService.GetProviderConfig + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.keymanagement.GetProviderConfigRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.keymanagement.GetProviderConfigResponse' + /policy.keymanagement.KeyManagementService/ListProviderConfigs: + post: + tags: + - policy.keymanagement.KeyManagementService + summary: ListProviderConfigs + operationId: policy.keymanagement.KeyManagementService.ListProviderConfigs + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.keymanagement.ListProviderConfigsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.keymanagement.ListProviderConfigsResponse' + /policy.keymanagement.KeyManagementService/UpdateProviderConfig: + post: + tags: + - policy.keymanagement.KeyManagementService + summary: UpdateProviderConfig + operationId: policy.keymanagement.KeyManagementService.UpdateProviderConfig + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.keymanagement.UpdateProviderConfigRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.keymanagement.UpdateProviderConfigResponse' + /policy.keymanagement.KeyManagementService/DeleteProviderConfig: + post: + tags: + - policy.keymanagement.KeyManagementService + summary: DeleteProviderConfig + operationId: policy.keymanagement.KeyManagementService.DeleteProviderConfig + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.keymanagement.DeleteProviderConfigRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.keymanagement.DeleteProviderConfigResponse' +components: + schemas: + common.MetadataUpdateEnum: + type: string + title: MetadataUpdateEnum + enum: + - METADATA_UPDATE_ENUM_UNSPECIFIED + - METADATA_UPDATE_ENUM_EXTEND + - METADATA_UPDATE_ENUM_REPLACE + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + common.MetadataMutable: + type: object + properties: + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional labels + title: MetadataMutable + additionalProperties: false + common.MetadataMutable.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.KeyProviderConfig: + type: object + properties: + id: + type: string + title: id + name: + type: string + title: name + configJson: + type: string + title: config_json + format: byte + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: KeyProviderConfig + additionalProperties: false + policy.PageRequest: + type: object + properties: + limit: + type: integer + title: limit + format: int32 + description: |- + Optional + Set to configured default limit if not provided + Maximum limit set in platform config and enforced by services + offset: + type: integer + title: offset + format: int32 + description: |- + Optional + Defaulted if not provided + title: PageRequest + additionalProperties: false + policy.PageResponse: + type: object + properties: + currentOffset: + type: integer + title: current_offset + format: int32 + description: Requested pagination offset + nextOffset: + type: integer + title: next_offset + format: int32 + description: |- + Calculated with request limit + offset or defaults + Empty when none remain after current page + total: + type: integer + title: total + format: int32 + description: Total count of entire list + title: PageResponse + additionalProperties: false + policy.keymanagement.CreateProviderConfigRequest: + type: object + properties: + name: + type: string + title: name + description: |- + Required + The name of the key provider. (e.g. "AWS KMS", "Google Cloud KMS", "Azure Key Vault") + configJson: + type: string + title: config_json + format: byte + description: |- + Required + JSON configuration for the key provider. This is unique to individual key providers. + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + title: CreateProviderConfigRequest + required: + - name + - configJson + additionalProperties: false + description: Provider Configuration Requests and Response Messages + policy.keymanagement.CreateProviderConfigResponse: + type: object + properties: + providerConfig: + title: provider_config + $ref: '#/components/schemas/policy.KeyProviderConfig' + title: CreateProviderConfigResponse + additionalProperties: false + policy.keymanagement.DeleteProviderConfigRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: DeleteProviderConfigRequest + additionalProperties: false + description: In order to delete a provider configuration you must first delete all keys associated with the provider. + policy.keymanagement.DeleteProviderConfigResponse: + type: object + properties: + providerConfig: + title: provider_config + $ref: '#/components/schemas/policy.KeyProviderConfig' + title: DeleteProviderConfigResponse + additionalProperties: false + policy.keymanagement.GetProviderConfigRequest: + type: object + oneOf: + - properties: + id: + type: string + title: id + format: uuid + title: id + required: + - id + - properties: + name: + type: string + title: name + minLength: 1 + title: name + required: + - name + title: GetProviderConfigRequest + additionalProperties: false + policy.keymanagement.GetProviderConfigResponse: + type: object + properties: + providerConfig: + title: provider_config + $ref: '#/components/schemas/policy.KeyProviderConfig' + title: GetProviderConfigResponse + additionalProperties: false + policy.keymanagement.ListProviderConfigsRequest: + type: object + properties: + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListProviderConfigsRequest + additionalProperties: false + policy.keymanagement.ListProviderConfigsResponse: + type: object + properties: + providerConfigs: + type: array + items: + $ref: '#/components/schemas/policy.KeyProviderConfig' + title: provider_configs + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListProviderConfigsResponse + additionalProperties: false + policy.keymanagement.UpdateProviderConfigRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + name: + type: string + title: name + description: Optional + configJson: + type: string + title: config_json + format: byte + description: Optional + metadata: + title: metadata + description: |- + Optional + Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateProviderConfigRequest + additionalProperties: false + policy.keymanagement.UpdateProviderConfigResponse: + type: object + properties: + providerConfig: + title: provider_config + $ref: '#/components/schemas/policy.KeyProviderConfig' + title: UpdateProviderConfigResponse + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. +security: [] +tags: + - name: policy.keymanagement.KeyManagementService diff --git a/specs/policy/keymanagement/key_management.swagger.json b/specs/policy/keymanagement/key_management.swagger.json new file mode 100644 index 0000000..ef0a76d --- /dev/null +++ b/specs/policy/keymanagement/key_management.swagger.json @@ -0,0 +1,197 @@ +{ + "swagger": "2.0", + "info": { + "title": "policy/keymanagement/key_management.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "KeyManagementService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "commonMetadata": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "title": "created_at set by server (entity who created will recorded in an audit event)" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "title": "updated_at set by server (entity who updated will recorded in an audit event)" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional short description" + } + }, + "title": "Struct to uniquely identify a resource with optional additional metadata" + }, + "commonMetadataMutable": { + "type": "object", + "properties": { + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional labels" + } + } + }, + "commonMetadataUpdateEnum": { + "type": "string", + "enum": [ + "METADATA_UPDATE_ENUM_UNSPECIFIED", + "METADATA_UPDATE_ENUM_EXTEND", + "METADATA_UPDATE_ENUM_REPLACE" + ], + "default": "METADATA_UPDATE_ENUM_UNSPECIFIED", + "title": "- METADATA_UPDATE_ENUM_UNSPECIFIED: unspecified update type\n - METADATA_UPDATE_ENUM_EXTEND: only update the fields that are provided\n - METADATA_UPDATE_ENUM_REPLACE: replace the entire metadata with the provided metadata" + }, + "keymanagementCreateProviderConfigResponse": { + "type": "object", + "properties": { + "providerConfig": { + "$ref": "#/definitions/policyKeyProviderConfig" + } + } + }, + "keymanagementDeleteProviderConfigResponse": { + "type": "object", + "properties": { + "providerConfig": { + "$ref": "#/definitions/policyKeyProviderConfig" + } + } + }, + "keymanagementGetProviderConfigResponse": { + "type": "object", + "properties": { + "providerConfig": { + "$ref": "#/definitions/policyKeyProviderConfig" + } + } + }, + "keymanagementListProviderConfigsResponse": { + "type": "object", + "properties": { + "providerConfigs": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyProviderConfig" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + } + }, + "keymanagementUpdateProviderConfigResponse": { + "type": "object", + "properties": { + "providerConfig": { + "$ref": "#/definitions/policyKeyProviderConfig" + } + } + }, + "policyKeyProviderConfig": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "configJson": { + "type": "string", + "format": "byte" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyPageRequest": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "title": "Optional\nSet to configured default limit if not provided\nMaximum limit set in platform config and enforced by services" + }, + "offset": { + "type": "integer", + "format": "int32", + "title": "Optional\nDefaulted if not provided" + } + } + }, + "policyPageResponse": { + "type": "object", + "properties": { + "currentOffset": { + "type": "integer", + "format": "int32", + "title": "Requested pagination offset" + }, + "nextOffset": { + "type": "integer", + "format": "int32", + "title": "Calculated with request limit + offset or defaults\nEmpty when none remain after current page" + }, + "total": { + "type": "integer", + "format": "int32", + "title": "Total count of entire list" + } + } + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/policy/namespaces/namespaces.openapi.yaml b/specs/policy/namespaces/namespaces.openapi.yaml new file mode 100644 index 0000000..a33a2be --- /dev/null +++ b/specs/policy/namespaces/namespaces.openapi.yaml @@ -0,0 +1,1063 @@ +openapi: 3.1.0 +info: + title: policy.namespaces +paths: + /policy.namespaces.NamespaceService/GetNamespace: + post: + tags: + - policy.namespaces.NamespaceService + summary: GetNamespace + operationId: policy.namespaces.NamespaceService.GetNamespace + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.GetNamespaceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.GetNamespaceResponse' + /policy.namespaces.NamespaceService/ListNamespaces: + post: + tags: + - policy.namespaces.NamespaceService + summary: ListNamespaces + operationId: policy.namespaces.NamespaceService.ListNamespaces + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.ListNamespacesRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.ListNamespacesResponse' + /policy.namespaces.NamespaceService/CreateNamespace: + post: + tags: + - policy.namespaces.NamespaceService + summary: CreateNamespace + operationId: policy.namespaces.NamespaceService.CreateNamespace + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.CreateNamespaceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.CreateNamespaceResponse' + /policy.namespaces.NamespaceService/UpdateNamespace: + post: + tags: + - policy.namespaces.NamespaceService + summary: UpdateNamespace + operationId: policy.namespaces.NamespaceService.UpdateNamespace + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.UpdateNamespaceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.UpdateNamespaceResponse' + /policy.namespaces.NamespaceService/DeactivateNamespace: + post: + tags: + - policy.namespaces.NamespaceService + summary: DeactivateNamespace + operationId: policy.namespaces.NamespaceService.DeactivateNamespace + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.DeactivateNamespaceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.DeactivateNamespaceResponse' + /policy.namespaces.NamespaceService/AssignKeyAccessServerToNamespace: + post: + tags: + - policy.namespaces.NamespaceService + summary: AssignKeyAccessServerToNamespace + description: |- + --------------------------------------* + Namespace <> Key Access Server RPCs + --------------------------------------- + operationId: policy.namespaces.NamespaceService.AssignKeyAccessServerToNamespace + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.AssignKeyAccessServerToNamespaceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.AssignKeyAccessServerToNamespaceResponse' + /policy.namespaces.NamespaceService/RemoveKeyAccessServerFromNamespace: + post: + tags: + - policy.namespaces.NamespaceService + summary: RemoveKeyAccessServerFromNamespace + operationId: policy.namespaces.NamespaceService.RemoveKeyAccessServerFromNamespace + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.RemoveKeyAccessServerFromNamespaceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.RemoveKeyAccessServerFromNamespaceResponse' + /policy.namespaces.NamespaceService/AssignPublicKeyToNamespace: + post: + tags: + - policy.namespaces.NamespaceService + summary: AssignPublicKeyToNamespace + description: |- + --------------------------------------* + Namespace <> Key RPCs + --------------------------------------- + operationId: policy.namespaces.NamespaceService.AssignPublicKeyToNamespace + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.AssignPublicKeyToNamespaceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.AssignPublicKeyToNamespaceResponse' + /policy.namespaces.NamespaceService/RemovePublicKeyFromNamespace: + post: + tags: + - policy.namespaces.NamespaceService + summary: RemovePublicKeyFromNamespace + operationId: policy.namespaces.NamespaceService.RemovePublicKeyFromNamespace + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.RemovePublicKeyFromNamespaceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.namespaces.RemovePublicKeyFromNamespaceResponse' +components: + schemas: + common.ActiveStateEnum: + type: string + title: ActiveStateEnum + enum: + - ACTIVE_STATE_ENUM_UNSPECIFIED + - ACTIVE_STATE_ENUM_ACTIVE + - ACTIVE_STATE_ENUM_INACTIVE + - ACTIVE_STATE_ENUM_ANY + description: 'buflint ENUM_VALUE_PREFIX: to make sure that C++ scoping rules aren''t violated when users add new enum values to an enum in a given package' + common.MetadataUpdateEnum: + type: string + title: MetadataUpdateEnum + enum: + - METADATA_UPDATE_ENUM_UNSPECIFIED + - METADATA_UPDATE_ENUM_EXTEND + - METADATA_UPDATE_ENUM_REPLACE + policy.Algorithm: + type: string + title: Algorithm + enum: + - ALGORITHM_UNSPECIFIED + - ALGORITHM_RSA_2048 + - ALGORITHM_RSA_4096 + - ALGORITHM_EC_P256 + - ALGORITHM_EC_P384 + - ALGORITHM_EC_P521 + description: Supported key algorithms. + policy.KasPublicKeyAlgEnum: + type: string + title: KasPublicKeyAlgEnum + enum: + - KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048 + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1 + policy.SourceType: + type: string + title: SourceType + enum: + - SOURCE_TYPE_UNSPECIFIED + - SOURCE_TYPE_INTERNAL + - SOURCE_TYPE_EXTERNAL + description: |- + Describes whether this kas is managed by the organization or if they imported + the kas information from an external party. These two modes are necessary in order + to encrypt a tdf dek with an external parties kas public key. + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + common.MetadataMutable: + type: object + properties: + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional labels + title: MetadataMutable + additionalProperties: false + common.MetadataMutable.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.BoolValue: + type: boolean + description: |- + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.KasPublicKey: + type: object + properties: + pem: + type: string + title: pem + maxLength: 8192 + minLength: 1 + description: x509 ASN.1 content in PEM envelope, usually + kid: + type: string + title: kid + maxLength: 32 + minLength: 1 + description: A unique string identifier for this key + alg: + not: + enum: + - 0 + title: alg + description: |- + A known algorithm type with any additional parameters encoded. + To start, these may be `rsa:2048` for encrypting ZTDF files and + `ec:secp256r1` for nanoTDF, but more formats may be added as needed. + $ref: '#/components/schemas/policy.KasPublicKeyAlgEnum' + title: KasPublicKey + additionalProperties: false + description: |- + Deprecated + A KAS public key and some associated metadata for further identifcation + policy.KasPublicKeySet: + type: object + properties: + keys: + type: array + items: + $ref: '#/components/schemas/policy.KasPublicKey' + title: keys + title: KasPublicKeySet + additionalProperties: false + description: |- + Deprecated + A list of known KAS public keys + policy.KeyAccessServer: + type: object + properties: + id: + type: string + title: id + uri: + type: string + title: uri + description: |+ + Address of a KAS instance + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https?://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$') + ``` + + publicKey: + title: public_key + description: Deprecated + $ref: '#/components/schemas/policy.PublicKey' + sourceType: + title: source_type + description: 'The source of the KAS: (INTERNAL, EXTERNAL)' + $ref: '#/components/schemas/policy.SourceType' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Kas keys associated with this KAS + name: + type: string + title: name + description: |- + Optional + Unique name of the KAS instance + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: KeyAccessServer + additionalProperties: false + description: Key Access Server Registry + policy.Namespace: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + name: + type: string + title: name + description: |- + used to partition Attribute Definitions, support by namespace AuthN and + enable federation + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: KAS grants for the namespace + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys for the namespace + title: Namespace + additionalProperties: false + policy.PageRequest: + type: object + properties: + limit: + type: integer + title: limit + format: int32 + description: |- + Optional + Set to configured default limit if not provided + Maximum limit set in platform config and enforced by services + offset: + type: integer + title: offset + format: int32 + description: |- + Optional + Defaulted if not provided + title: PageRequest + additionalProperties: false + policy.PageResponse: + type: object + properties: + currentOffset: + type: integer + title: current_offset + format: int32 + description: Requested pagination offset + nextOffset: + type: integer + title: next_offset + format: int32 + description: |- + Calculated with request limit + offset or defaults + Empty when none remain after current page + total: + type: integer + title: total + format: int32 + description: Total count of entire list + title: PageResponse + additionalProperties: false + policy.PublicKey: + type: object + oneOf: + - properties: + cached: + title: cached + description: public key with additional information. Current preferred version + $ref: '#/components/schemas/policy.KasPublicKeySet' + title: cached + required: + - cached + - properties: + remote: + type: string + title: remote + description: |+ + kas public key url - optional since can also be retrieved via public key + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(/.*)?$') + ``` + + title: remote + required: + - remote + title: PublicKey + additionalProperties: false + description: Deprecated + policy.SimpleKasKey: + type: object + properties: + kasUri: + type: string + title: kas_uri + description: The URL of the Key Access Server + publicKey: + title: public_key + description: The public key of the Key that belongs to the KAS + $ref: '#/components/schemas/policy.SimpleKasPublicKey' + kasId: + type: string + title: kas_id + description: The ID of the Key Access Server + title: SimpleKasKey + additionalProperties: false + policy.SimpleKasPublicKey: + type: object + properties: + algorithm: + title: algorithm + $ref: '#/components/schemas/policy.Algorithm' + kid: + type: string + title: kid + pem: + type: string + title: pem + title: SimpleKasPublicKey + additionalProperties: false + policy.namespaces.AssignKeyAccessServerToNamespaceRequest: + type: object + properties: + namespaceKeyAccessServer: + title: namespace_key_access_server + $ref: '#/components/schemas/policy.namespaces.NamespaceKeyAccessServer' + title: AssignKeyAccessServerToNamespaceRequest + additionalProperties: false + policy.namespaces.AssignKeyAccessServerToNamespaceResponse: + type: object + properties: + namespaceKeyAccessServer: + title: namespace_key_access_server + $ref: '#/components/schemas/policy.namespaces.NamespaceKeyAccessServer' + title: AssignKeyAccessServerToNamespaceResponse + additionalProperties: false + policy.namespaces.AssignPublicKeyToNamespaceRequest: + type: object + properties: + namespaceKey: + title: namespace_key + $ref: '#/components/schemas/policy.namespaces.NamespaceKey' + title: AssignPublicKeyToNamespaceRequest + required: + - namespaceKey + additionalProperties: false + description: Assign Key to Namespace + policy.namespaces.AssignPublicKeyToNamespaceResponse: + type: object + properties: + namespaceKey: + title: namespace_key + $ref: '#/components/schemas/policy.namespaces.NamespaceKey' + title: AssignPublicKeyToNamespaceResponse + additionalProperties: false + policy.namespaces.CreateNamespaceRequest: + type: object + properties: + name: + type: string + title: name + maxLength: 253 + description: |+ + Required + Namespace must be a valid hostname. It should include at least one dot, with each segment (label) starting and ending with an alphanumeric character. Each label must be 1 to 63 characters long, allowing hyphens but not as the first or last character. The top-level domain (the last segment after the final dot) must consist of at least two alphabetic characters. The stored namespace will be normalized to lower case.: + ``` + this.matches('^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$') + ``` + + metadata: + title: metadata + description: Optional + $ref: '#/components/schemas/common.MetadataMutable' + title: CreateNamespaceRequest + required: + - name + additionalProperties: false + policy.namespaces.CreateNamespaceResponse: + type: object + properties: + namespace: + title: namespace + $ref: '#/components/schemas/policy.Namespace' + title: CreateNamespaceResponse + additionalProperties: false + policy.namespaces.DeactivateNamespaceRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: DeactivateNamespaceRequest + additionalProperties: false + policy.namespaces.DeactivateNamespaceResponse: + type: object + title: DeactivateNamespaceResponse + additionalProperties: false + policy.namespaces.GetNamespaceRequest: + type: object + oneOf: + - properties: + fqn: + type: string + title: fqn + minLength: 1 + format: uri + title: fqn + required: + - fqn + - properties: + namespaceId: + type: string + title: namespace_id + format: uuid + description: 'option (buf.validate.oneof).required = true; // TODO: enable this when we remove the deprecated field' + title: namespace_id + required: + - namespaceId + properties: + id: + type: string + title: id + format: uuid + description: Deprecated + deprecated: true + title: GetNamespaceRequest + additionalProperties: false + description: |+ + Either use deprecated 'id' field or one of 'namespace_id' or 'fqn', but not both: + ``` + !(has(this.id) && (has(this.namespace_id) || has(this.fqn))) + ``` + + Either id or one of namespace_id or fqn must be set: + ``` + has(this.id) || has(this.namespace_id) || has(this.fqn) + ``` + + policy.namespaces.GetNamespaceResponse: + type: object + properties: + namespace: + title: namespace + $ref: '#/components/schemas/policy.Namespace' + title: GetNamespaceResponse + additionalProperties: false + policy.namespaces.ListNamespacesRequest: + type: object + properties: + state: + title: state + description: |- + Optional + ACTIVE by default when not specified + $ref: '#/components/schemas/common.ActiveStateEnum' + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListNamespacesRequest + additionalProperties: false + policy.namespaces.ListNamespacesResponse: + type: object + properties: + namespaces: + type: array + items: + $ref: '#/components/schemas/policy.Namespace' + title: namespaces + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListNamespacesResponse + additionalProperties: false + policy.namespaces.NamespaceKey: + type: object + properties: + namespaceId: + type: string + title: namespace_id + format: uuid + description: Required + keyId: + type: string + title: key_id + format: uuid + description: Required (The id from the Asymmetric Key object) + title: NamespaceKey + required: + - namespaceId + - keyId + additionalProperties: false + policy.namespaces.NamespaceKeyAccessServer: + type: object + properties: + namespaceId: + type: string + title: namespace_id + format: uuid + description: Required + keyAccessServerId: + type: string + title: key_access_server_id + format: uuid + description: Required + title: NamespaceKeyAccessServer + additionalProperties: false + policy.namespaces.RemoveKeyAccessServerFromNamespaceRequest: + type: object + properties: + namespaceKeyAccessServer: + title: namespace_key_access_server + $ref: '#/components/schemas/policy.namespaces.NamespaceKeyAccessServer' + title: RemoveKeyAccessServerFromNamespaceRequest + additionalProperties: false + policy.namespaces.RemoveKeyAccessServerFromNamespaceResponse: + type: object + properties: + namespaceKeyAccessServer: + title: namespace_key_access_server + $ref: '#/components/schemas/policy.namespaces.NamespaceKeyAccessServer' + title: RemoveKeyAccessServerFromNamespaceResponse + additionalProperties: false + policy.namespaces.RemovePublicKeyFromNamespaceRequest: + type: object + properties: + namespaceKey: + title: namespace_key + $ref: '#/components/schemas/policy.namespaces.NamespaceKey' + title: RemovePublicKeyFromNamespaceRequest + required: + - namespaceKey + additionalProperties: false + policy.namespaces.RemovePublicKeyFromNamespaceResponse: + type: object + properties: + namespaceKey: + title: namespace_key + $ref: '#/components/schemas/policy.namespaces.NamespaceKey' + title: RemovePublicKeyFromNamespaceResponse + additionalProperties: false + policy.namespaces.UpdateNamespaceRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + metadata: + title: metadata + description: Optional + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateNamespaceRequest + additionalProperties: false + policy.namespaces.UpdateNamespaceResponse: + type: object + properties: + namespace: + title: namespace + $ref: '#/components/schemas/policy.Namespace' + title: UpdateNamespaceResponse + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. +security: [] +tags: + - name: policy.namespaces.NamespaceService diff --git a/specs/policy/namespaces/namespaces.swagger.json b/specs/policy/namespaces/namespaces.swagger.json new file mode 100644 index 0000000..a4e7cb7 --- /dev/null +++ b/specs/policy/namespaces/namespaces.swagger.json @@ -0,0 +1,429 @@ +{ + "swagger": "2.0", + "info": { + "title": "policy/namespaces/namespaces.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "NamespaceService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "commonActiveStateEnum": { + "type": "string", + "enum": [ + "ACTIVE_STATE_ENUM_UNSPECIFIED", + "ACTIVE_STATE_ENUM_ACTIVE", + "ACTIVE_STATE_ENUM_INACTIVE", + "ACTIVE_STATE_ENUM_ANY" + ], + "default": "ACTIVE_STATE_ENUM_UNSPECIFIED", + "title": "buflint ENUM_VALUE_PREFIX: to make sure that C++ scoping rules aren't violated when users add new enum values to an enum in a given package" + }, + "commonMetadata": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "title": "created_at set by server (entity who created will recorded in an audit event)" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "title": "updated_at set by server (entity who updated will recorded in an audit event)" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional short description" + } + }, + "title": "Struct to uniquely identify a resource with optional additional metadata" + }, + "commonMetadataMutable": { + "type": "object", + "properties": { + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional labels" + } + } + }, + "commonMetadataUpdateEnum": { + "type": "string", + "enum": [ + "METADATA_UPDATE_ENUM_UNSPECIFIED", + "METADATA_UPDATE_ENUM_EXTEND", + "METADATA_UPDATE_ENUM_REPLACE" + ], + "default": "METADATA_UPDATE_ENUM_UNSPECIFIED", + "title": "- METADATA_UPDATE_ENUM_UNSPECIFIED: unspecified update type\n - METADATA_UPDATE_ENUM_EXTEND: only update the fields that are provided\n - METADATA_UPDATE_ENUM_REPLACE: replace the entire metadata with the provided metadata" + }, + "namespacesAssignKeyAccessServerToNamespaceResponse": { + "type": "object", + "properties": { + "namespaceKeyAccessServer": { + "$ref": "#/definitions/namespacesNamespaceKeyAccessServer" + } + } + }, + "namespacesAssignPublicKeyToNamespaceResponse": { + "type": "object", + "properties": { + "namespaceKey": { + "$ref": "#/definitions/namespacesNamespaceKey" + } + } + }, + "namespacesCreateNamespaceResponse": { + "type": "object", + "properties": { + "namespace": { + "$ref": "#/definitions/policyNamespace" + } + } + }, + "namespacesDeactivateNamespaceResponse": { + "type": "object" + }, + "namespacesGetNamespaceResponse": { + "type": "object", + "properties": { + "namespace": { + "$ref": "#/definitions/policyNamespace" + } + } + }, + "namespacesListNamespacesResponse": { + "type": "object", + "properties": { + "namespaces": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyNamespace" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + } + }, + "namespacesNamespaceKey": { + "type": "object", + "properties": { + "namespaceId": { + "type": "string", + "title": "Required" + }, + "keyId": { + "type": "string", + "title": "Required (The id from the Asymmetric Key object)" + } + } + }, + "namespacesNamespaceKeyAccessServer": { + "type": "object", + "properties": { + "namespaceId": { + "type": "string", + "title": "Required" + }, + "keyAccessServerId": { + "type": "string", + "title": "Required" + } + } + }, + "namespacesRemoveKeyAccessServerFromNamespaceResponse": { + "type": "object", + "properties": { + "namespaceKeyAccessServer": { + "$ref": "#/definitions/namespacesNamespaceKeyAccessServer" + } + } + }, + "namespacesRemovePublicKeyFromNamespaceResponse": { + "type": "object", + "properties": { + "namespaceKey": { + "$ref": "#/definitions/namespacesNamespaceKey" + } + } + }, + "namespacesUpdateNamespaceResponse": { + "type": "object", + "properties": { + "namespace": { + "$ref": "#/definitions/policyNamespace" + } + } + }, + "policyAlgorithm": { + "type": "string", + "enum": [ + "ALGORITHM_UNSPECIFIED", + "ALGORITHM_RSA_2048", + "ALGORITHM_RSA_4096", + "ALGORITHM_EC_P256", + "ALGORITHM_EC_P384", + "ALGORITHM_EC_P521" + ], + "default": "ALGORITHM_UNSPECIFIED", + "description": "Supported key algorithms." + }, + "policyKasPublicKey": { + "type": "object", + "properties": { + "pem": { + "type": "string", + "title": "x509 ASN.1 content in PEM envelope, usually" + }, + "kid": { + "type": "string", + "title": "A unique string identifier for this key" + }, + "alg": { + "$ref": "#/definitions/policyKasPublicKeyAlgEnum", + "description": "A known algorithm type with any additional parameters encoded.\nTo start, these may be `rsa:2048` for encrypting ZTDF files and\n`ec:secp256r1` for nanoTDF, but more formats may be added as needed." + } + }, + "title": "Deprecated\nA KAS public key and some associated metadata for further identifcation" + }, + "policyKasPublicKeyAlgEnum": { + "type": "string", + "enum": [ + "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1" + ], + "default": "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED" + }, + "policyKasPublicKeySet": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKasPublicKey" + } + } + }, + "title": "Deprecated\nA list of known KAS public keys" + }, + "policyKeyAccessServer": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "uri": { + "type": "string", + "title": "Address of a KAS instance" + }, + "publicKey": { + "$ref": "#/definitions/policyPublicKey", + "title": "Deprecated" + }, + "sourceType": { + "$ref": "#/definitions/policySourceType", + "title": "The source of the KAS: (INTERNAL, EXTERNAL)" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Kas keys associated with this KAS" + }, + "name": { + "type": "string", + "title": "Optional\nUnique name of the KAS instance" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "title": "Key Access Server Registry" + }, + "policyNamespace": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "name": { + "type": "string", + "title": "used to partition Attribute Definitions, support by namespace AuthN and\nenable federation" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "KAS grants for the namespace" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys for the namespace" + } + } + }, + "policyPageRequest": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "title": "Optional\nSet to configured default limit if not provided\nMaximum limit set in platform config and enforced by services" + }, + "offset": { + "type": "integer", + "format": "int32", + "title": "Optional\nDefaulted if not provided" + } + } + }, + "policyPageResponse": { + "type": "object", + "properties": { + "currentOffset": { + "type": "integer", + "format": "int32", + "title": "Requested pagination offset" + }, + "nextOffset": { + "type": "integer", + "format": "int32", + "title": "Calculated with request limit + offset or defaults\nEmpty when none remain after current page" + }, + "total": { + "type": "integer", + "format": "int32", + "title": "Total count of entire list" + } + } + }, + "policyPublicKey": { + "type": "object", + "properties": { + "remote": { + "type": "string", + "title": "kas public key url - optional since can also be retrieved via public key" + }, + "cached": { + "$ref": "#/definitions/policyKasPublicKeySet", + "title": "public key with additional information. Current preferred version" + } + }, + "title": "Deprecated" + }, + "policySimpleKasKey": { + "type": "object", + "properties": { + "kasUri": { + "type": "string", + "title": "The URL of the Key Access Server" + }, + "publicKey": { + "$ref": "#/definitions/policySimpleKasPublicKey", + "title": "The public key of the Key that belongs to the KAS" + }, + "kasId": { + "type": "string", + "title": "The ID of the Key Access Server" + } + } + }, + "policySimpleKasPublicKey": { + "type": "object", + "properties": { + "algorithm": { + "$ref": "#/definitions/policyAlgorithm" + }, + "kid": { + "type": "string" + }, + "pem": { + "type": "string" + } + } + }, + "policySourceType": { + "type": "string", + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "SOURCE_TYPE_INTERNAL", + "SOURCE_TYPE_EXTERNAL" + ], + "default": "SOURCE_TYPE_UNSPECIFIED", + "description": "Describes whether this kas is managed by the organization or if they imported\nthe kas information from an external party. These two modes are necessary in order\nto encrypt a tdf dek with an external parties kas public key.\n\n - SOURCE_TYPE_INTERNAL: The kas is managed by the organization.\n - SOURCE_TYPE_EXTERNAL: The kas is managed by an external party." + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/policy/objects.openapi.yaml b/specs/policy/objects.openapi.yaml new file mode 100644 index 0000000..d2b2c9e --- /dev/null +++ b/specs/policy/objects.openapi.yaml @@ -0,0 +1,943 @@ +openapi: 3.1.0 +info: + title: policy +paths: {} +components: + schemas: + policy.Action.StandardAction: + type: string + title: StandardAction + enum: + - STANDARD_ACTION_UNSPECIFIED + - STANDARD_ACTION_DECRYPT + - STANDARD_ACTION_TRANSMIT + policy.Algorithm: + type: string + title: Algorithm + enum: + - ALGORITHM_UNSPECIFIED + - ALGORITHM_RSA_2048 + - ALGORITHM_RSA_4096 + - ALGORITHM_EC_P256 + - ALGORITHM_EC_P384 + - ALGORITHM_EC_P521 + description: Supported key algorithms. + policy.AttributeRuleTypeEnum: + type: string + title: AttributeRuleTypeEnum + enum: + - ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED + - ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF + - ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF + - ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY + policy.ConditionBooleanTypeEnum: + type: string + title: ConditionBooleanTypeEnum + enum: + - CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED + - CONDITION_BOOLEAN_TYPE_ENUM_AND + - CONDITION_BOOLEAN_TYPE_ENUM_OR + policy.KasPublicKeyAlgEnum: + type: string + title: KasPublicKeyAlgEnum + enum: + - KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048 + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1 + policy.KeyMode: + type: string + title: KeyMode + enum: + - KEY_MODE_UNSPECIFIED + - KEY_MODE_CONFIG_ROOT_KEY + - KEY_MODE_PROVIDER_ROOT_KEY + - KEY_MODE_REMOTE + - KEY_MODE_PUBLIC_KEY_ONLY + description: Describes the management and operational mode of a cryptographic key. + policy.KeyStatus: + type: string + title: KeyStatus + enum: + - KEY_STATUS_UNSPECIFIED + - KEY_STATUS_ACTIVE + - KEY_STATUS_ROTATED + description: The status of the key + policy.SourceType: + type: string + title: SourceType + enum: + - SOURCE_TYPE_UNSPECIFIED + - SOURCE_TYPE_INTERNAL + - SOURCE_TYPE_EXTERNAL + description: |- + Describes whether this kas is managed by the organization or if they imported + the kas information from an external party. These two modes are necessary in order + to encrypt a tdf dek with an external parties kas public key. + policy.SubjectMappingOperatorEnum: + type: string + title: SubjectMappingOperatorEnum + enum: + - SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED + - SUBJECT_MAPPING_OPERATOR_ENUM_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.BoolValue: + type: boolean + description: |- + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.Action: + type: object + oneOf: + - properties: + custom: + type: string + title: custom + description: Deprecated + title: custom + required: + - custom + - properties: + standard: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + title: standard + required: + - standard + properties: + id: + type: string + title: id + description: Generated uuid in database + name: + type: string + title: name + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: Action + additionalProperties: false + description: An action an entity can take + policy.AsymmetricKey: + type: object + properties: + id: + type: string + title: id + description: Required + keyId: + type: string + title: key_id + description: Required + keyAlgorithm: + title: key_algorithm + description: Required + $ref: '#/components/schemas/policy.Algorithm' + keyStatus: + title: key_status + description: Required + $ref: '#/components/schemas/policy.KeyStatus' + keyMode: + title: key_mode + description: Required Specifies how the key is managed (local or remote) + $ref: '#/components/schemas/policy.KeyMode' + publicKeyCtx: + title: public_key_ctx + description: Required Specific structure based on key provider implementation + $ref: '#/components/schemas/policy.PublicKeyCtx' + privateKeyCtx: + title: private_key_ctx + description: Optional Specific structure based on key provider implementation + $ref: '#/components/schemas/policy.PrivateKeyCtx' + providerConfig: + title: provider_config + description: Optional Configuration for the key provider + $ref: '#/components/schemas/policy.KeyProviderConfig' + metadata: + title: metadata + description: Common metadata fields + $ref: '#/components/schemas/common.Metadata' + title: AsymmetricKey + additionalProperties: false + policy.Attribute: + type: object + properties: + id: + type: string + title: id + namespace: + title: namespace + description: namespace of the attribute + $ref: '#/components/schemas/policy.Namespace' + name: + type: string + title: name + description: attribute name + rule: + title: rule + description: attribute rule enum + $ref: '#/components/schemas/policy.AttributeRuleTypeEnum' + values: + type: array + items: + $ref: '#/components/schemas/policy.Value' + title: values + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: Deprecated + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys associated with the attribute + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Attribute + required: + - rule + additionalProperties: false + policy.Condition: + type: object + properties: + subjectExternalSelectorValue: + type: string + title: subject_external_selector_value + description: |- + a selector for a field value on a flattened Entity Representation (such as + from idP/LDAP) + operator: + title: operator + description: the evaluation operator of relation + $ref: '#/components/schemas/policy.SubjectMappingOperatorEnum' + subjectExternalValues: + type: array + items: + type: string + minItems: 1 + title: subject_external_values + minItems: 1 + description: |- + list of comparison values for the result of applying the + subject_external_selector_value on a flattened Entity Representation + (Subject), evaluated by the operator + title: Condition + required: + - subjectExternalSelectorValue + - operator + additionalProperties: false + description: |- + * + A Condition defines a rule of + policy.ConditionGroup: + type: object + properties: + conditions: + type: array + items: + $ref: '#/components/schemas/policy.Condition' + title: conditions + minItems: 1 + booleanOperator: + title: boolean_operator + description: the boolean evaluation type across the conditions + $ref: '#/components/schemas/policy.ConditionBooleanTypeEnum' + title: ConditionGroup + required: + - booleanOperator + additionalProperties: false + description: A collection of Conditions evaluated by the boolean_operator provided + policy.KasKey: + type: object + properties: + kasId: + type: string + title: kas_id + key: + title: key + $ref: '#/components/schemas/policy.AsymmetricKey' + kasUri: + type: string + title: kas_uri + title: KasKey + additionalProperties: false + policy.KasPublicKey: + type: object + properties: + pem: + type: string + title: pem + maxLength: 8192 + minLength: 1 + description: x509 ASN.1 content in PEM envelope, usually + kid: + type: string + title: kid + maxLength: 32 + minLength: 1 + description: A unique string identifier for this key + alg: + not: + enum: + - 0 + title: alg + description: |- + A known algorithm type with any additional parameters encoded. + To start, these may be `rsa:2048` for encrypting ZTDF files and + `ec:secp256r1` for nanoTDF, but more formats may be added as needed. + $ref: '#/components/schemas/policy.KasPublicKeyAlgEnum' + title: KasPublicKey + additionalProperties: false + description: |- + Deprecated + A KAS public key and some associated metadata for further identifcation + policy.KasPublicKeySet: + type: object + properties: + keys: + type: array + items: + $ref: '#/components/schemas/policy.KasPublicKey' + title: keys + title: KasPublicKeySet + additionalProperties: false + description: |- + Deprecated + A list of known KAS public keys + policy.Key: + type: object + properties: + id: + type: string + title: id + description: the database record ID, not the key ID (`kid`) + isActive: + title: is_active + $ref: '#/components/schemas/google.protobuf.BoolValue' + wasMapped: + title: was_mapped + $ref: '#/components/schemas/google.protobuf.BoolValue' + publicKey: + title: public_key + $ref: '#/components/schemas/policy.KasPublicKey' + kas: + title: kas + $ref: '#/components/schemas/policy.KeyAccessServer' + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Key + additionalProperties: false + policy.KeyAccessServer: + type: object + properties: + id: + type: string + title: id + uri: + type: string + title: uri + description: |+ + Address of a KAS instance + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https?://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$') + ``` + + publicKey: + title: public_key + description: Deprecated + $ref: '#/components/schemas/policy.PublicKey' + sourceType: + title: source_type + description: 'The source of the KAS: (INTERNAL, EXTERNAL)' + $ref: '#/components/schemas/policy.SourceType' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Kas keys associated with this KAS + name: + type: string + title: name + description: |- + Optional + Unique name of the KAS instance + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: KeyAccessServer + additionalProperties: false + description: Key Access Server Registry + policy.KeyProviderConfig: + type: object + properties: + id: + type: string + title: id + name: + type: string + title: name + configJson: + type: string + title: config_json + format: byte + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: KeyProviderConfig + additionalProperties: false + policy.Namespace: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + name: + type: string + title: name + description: |- + used to partition Attribute Definitions, support by namespace AuthN and + enable federation + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: KAS grants for the namespace + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys for the namespace + title: Namespace + additionalProperties: false + policy.PrivateKeyCtx: + type: object + properties: + keyId: + type: string + title: key_id + minLength: 1 + description: Required Key ID for the symmetric key wrapping this key. + wrappedKey: + type: string + title: wrapped_key + description: Optional Base64 encoded wrapped key. Conditionally required if key_mode is LOCAL. Should not be present if key_mode is REMOTE. + title: PrivateKeyCtx + additionalProperties: false + policy.PublicKey: + type: object + oneOf: + - properties: + cached: + title: cached + description: public key with additional information. Current preferred version + $ref: '#/components/schemas/policy.KasPublicKeySet' + title: cached + required: + - cached + - properties: + remote: + type: string + title: remote + description: |+ + kas public key url - optional since can also be retrieved via public key + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(/.*)?$') + ``` + + title: remote + required: + - remote + title: PublicKey + additionalProperties: false + description: Deprecated + policy.PublicKeyCtx: + type: object + properties: + pem: + type: string + title: pem + minLength: 1 + description: Required Base64 encoded public key in PEM format + title: PublicKeyCtx + additionalProperties: false + policy.RegisteredResource: + type: object + properties: + id: + type: string + title: id + name: + type: string + title: name + values: + type: array + items: + $ref: '#/components/schemas/policy.RegisteredResourceValue' + title: values + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: RegisteredResource + additionalProperties: false + policy.RegisteredResourceValue: + type: object + properties: + id: + type: string + title: id + value: + type: string + title: value + resource: + title: resource + $ref: '#/components/schemas/policy.RegisteredResource' + actionAttributeValues: + type: array + items: + $ref: '#/components/schemas/policy.RegisteredResourceValue.ActionAttributeValue' + title: action_attribute_values + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: RegisteredResourceValue + additionalProperties: false + policy.RegisteredResourceValue.ActionAttributeValue: + type: object + properties: + id: + type: string + title: id + action: + title: action + $ref: '#/components/schemas/policy.Action' + attributeValue: + title: attribute_value + $ref: '#/components/schemas/policy.Value' + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: ActionAttributeValue + additionalProperties: false + policy.ResourceMapping: + type: object + properties: + id: + type: string + title: id + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + attributeValue: + title: attribute_value + $ref: '#/components/schemas/policy.Value' + terms: + type: array + items: + type: string + title: terms + group: + title: group + $ref: '#/components/schemas/policy.ResourceMappingGroup' + title: ResourceMapping + required: + - attributeValue + additionalProperties: false + description: |- + Resource Mappings (aka Access Control Resource Encodings aka ACRE) are + structures supporting the mapping of Resources and Attribute Values + policy.ResourceMappingGroup: + type: object + properties: + id: + type: string + title: id + namespaceId: + type: string + title: namespace_id + description: the namespace containing the group of resource mappings + name: + type: string + title: name + description: |- + the common name for the group of resource mappings, which must be unique + per namespace + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: ResourceMappingGroup + required: + - namespaceId + - name + additionalProperties: false + description: |- + Resource Mapping Groups are namespaced collections of Resource Mappings + associated under a common group name. + policy.SimpleKasKey: + type: object + properties: + kasUri: + type: string + title: kas_uri + description: The URL of the Key Access Server + publicKey: + title: public_key + description: The public key of the Key that belongs to the KAS + $ref: '#/components/schemas/policy.SimpleKasPublicKey' + kasId: + type: string + title: kas_id + description: The ID of the Key Access Server + title: SimpleKasKey + additionalProperties: false + policy.SimpleKasPublicKey: + type: object + properties: + algorithm: + title: algorithm + $ref: '#/components/schemas/policy.Algorithm' + kid: + type: string + title: kid + pem: + type: string + title: pem + title: SimpleKasPublicKey + additionalProperties: false + policy.SubjectConditionSet: + type: object + properties: + id: + type: string + title: id + subjectSets: + type: array + items: + $ref: '#/components/schemas/policy.SubjectSet' + title: subject_sets + minItems: 1 + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectConditionSet + additionalProperties: false + description: |- + A container for multiple Subject Sets, each containing Condition Groups, each + containing Conditions. Multiple Subject Sets in a SubjectConditionSet are + evaluated with AND logic. As each Subject Mapping has only one Attribute + Value, the SubjectConditionSet is reusable across multiple Subject Mappings / + Attribute Values and is an independent unit. + policy.SubjectMapping: + type: object + properties: + id: + type: string + title: id + attributeValue: + title: attribute_value + description: 'the Attribute Value mapped to; aka: "The Entity Entitlement Attribute"' + $ref: '#/components/schemas/policy.Value' + subjectConditionSet: + title: subject_condition_set + description: the reusable SubjectConditionSet mapped to the given Attribute Value + $ref: '#/components/schemas/policy.SubjectConditionSet' + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + description: The actions permitted by subjects in this mapping + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectMapping + additionalProperties: false + description: |- + Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute + value + action(s) combination + policy.SubjectProperty: + type: object + properties: + externalSelectorValue: + type: string + title: external_selector_value + minLength: 1 + externalValue: + type: string + title: external_value + title: SubjectProperty + required: + - externalSelectorValue + additionalProperties: false + description: |- + A property of a Subject/Entity as its selector expression -> value result + pair. This would mirror external user attributes retrieved from an + authoritative source such as an IDP (Identity Provider) or User Store. + Examples include such ADFS/LDAP, OKTA, etc. For now, a valid property must + contain both a selector expression & a resulting value. + + The external_selector_value is a specifier to select a value from a flattened + external representation of an Entity (such as from idP/LDAP), and the + external_value is the value selected by the external_selector_value on that + Entity Representation (Subject Context). These mirror the Condition. + policy.SubjectSet: + type: object + properties: + conditionGroups: + type: array + items: + $ref: '#/components/schemas/policy.ConditionGroup' + title: condition_groups + minItems: 1 + description: multiple Condition Groups are evaluated with AND logic + title: SubjectSet + additionalProperties: false + description: A collection of Condition Groups + policy.SymmetricKey: + type: object + properties: + id: + type: string + title: id + keyId: + type: string + title: key_id + keyStatus: + title: key_status + $ref: '#/components/schemas/policy.KeyStatus' + keyMode: + title: key_mode + description: Specifies how the key is managed (local or remote) + $ref: '#/components/schemas/policy.KeyMode' + keyCtx: + type: string + title: key_ctx + format: byte + description: Specific structure based on key provider implementation + providerConfig: + title: provider_config + description: Configuration for the key provider + $ref: '#/components/schemas/policy.KeyProviderConfig' + metadata: + title: metadata + description: Common metadata fields + $ref: '#/components/schemas/common.Metadata' + title: SymmetricKey + additionalProperties: false + policy.Value: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + value: + type: string + title: value + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: |- + Deprecated + list of key access servers + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + subjectMappings: + type: array + items: + $ref: '#/components/schemas/policy.SubjectMapping' + title: subject_mappings + description: subject mapping + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + resourceMappings: + type: array + items: + $ref: '#/components/schemas/policy.ResourceMapping' + title: resource_mappings + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Value + additionalProperties: false +security: [] diff --git a/specs/policy/objects.swagger.json b/specs/policy/objects.swagger.json new file mode 100644 index 0000000..efccb95 --- /dev/null +++ b/specs/policy/objects.swagger.json @@ -0,0 +1,46 @@ +{ + "swagger": "2.0", + "info": { + "title": "policy/objects.proto", + "version": "version not set" + }, + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/policy/registeredresources/registered_resources.openapi.yaml b/specs/policy/registeredresources/registered_resources.openapi.yaml new file mode 100644 index 0000000..3f53184 --- /dev/null +++ b/specs/policy/registeredresources/registered_resources.openapi.yaml @@ -0,0 +1,1675 @@ +openapi: 3.1.0 +info: + title: policy.registeredresources +paths: + /policy.registeredresources.RegisteredResourcesService/CreateRegisteredResource: + post: + tags: + - policy.registeredresources.RegisteredResourcesService + summary: CreateRegisteredResource + operationId: policy.registeredresources.RegisteredResourcesService.CreateRegisteredResource + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.CreateRegisteredResourceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.CreateRegisteredResourceResponse' + /policy.registeredresources.RegisteredResourcesService/GetRegisteredResource: + post: + tags: + - policy.registeredresources.RegisteredResourcesService + summary: GetRegisteredResource + operationId: policy.registeredresources.RegisteredResourcesService.GetRegisteredResource + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.GetRegisteredResourceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.GetRegisteredResourceResponse' + /policy.registeredresources.RegisteredResourcesService/ListRegisteredResources: + post: + tags: + - policy.registeredresources.RegisteredResourcesService + summary: ListRegisteredResources + operationId: policy.registeredresources.RegisteredResourcesService.ListRegisteredResources + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.ListRegisteredResourcesRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.ListRegisteredResourcesResponse' + /policy.registeredresources.RegisteredResourcesService/UpdateRegisteredResource: + post: + tags: + - policy.registeredresources.RegisteredResourcesService + summary: UpdateRegisteredResource + operationId: policy.registeredresources.RegisteredResourcesService.UpdateRegisteredResource + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.UpdateRegisteredResourceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.UpdateRegisteredResourceResponse' + /policy.registeredresources.RegisteredResourcesService/DeleteRegisteredResource: + post: + tags: + - policy.registeredresources.RegisteredResourcesService + summary: DeleteRegisteredResource + operationId: policy.registeredresources.RegisteredResourcesService.DeleteRegisteredResource + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.DeleteRegisteredResourceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.DeleteRegisteredResourceResponse' + /policy.registeredresources.RegisteredResourcesService/CreateRegisteredResourceValue: + post: + tags: + - policy.registeredresources.RegisteredResourcesService + summary: CreateRegisteredResourceValue + operationId: policy.registeredresources.RegisteredResourcesService.CreateRegisteredResourceValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.CreateRegisteredResourceValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.CreateRegisteredResourceValueResponse' + /policy.registeredresources.RegisteredResourcesService/GetRegisteredResourceValue: + post: + tags: + - policy.registeredresources.RegisteredResourcesService + summary: GetRegisteredResourceValue + operationId: policy.registeredresources.RegisteredResourcesService.GetRegisteredResourceValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.GetRegisteredResourceValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.GetRegisteredResourceValueResponse' + /policy.registeredresources.RegisteredResourcesService/GetRegisteredResourceValuesByFQNs: + post: + tags: + - policy.registeredresources.RegisteredResourcesService + summary: GetRegisteredResourceValuesByFQNs + operationId: policy.registeredresources.RegisteredResourcesService.GetRegisteredResourceValuesByFQNs + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.GetRegisteredResourceValuesByFQNsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.GetRegisteredResourceValuesByFQNsResponse' + /policy.registeredresources.RegisteredResourcesService/ListRegisteredResourceValues: + post: + tags: + - policy.registeredresources.RegisteredResourcesService + summary: ListRegisteredResourceValues + operationId: policy.registeredresources.RegisteredResourcesService.ListRegisteredResourceValues + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.ListRegisteredResourceValuesRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.ListRegisteredResourceValuesResponse' + /policy.registeredresources.RegisteredResourcesService/UpdateRegisteredResourceValue: + post: + tags: + - policy.registeredresources.RegisteredResourcesService + summary: UpdateRegisteredResourceValue + operationId: policy.registeredresources.RegisteredResourcesService.UpdateRegisteredResourceValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.UpdateRegisteredResourceValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.UpdateRegisteredResourceValueResponse' + /policy.registeredresources.RegisteredResourcesService/DeleteRegisteredResourceValue: + post: + tags: + - policy.registeredresources.RegisteredResourcesService + summary: DeleteRegisteredResourceValue + operationId: policy.registeredresources.RegisteredResourcesService.DeleteRegisteredResourceValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.DeleteRegisteredResourceValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.registeredresources.DeleteRegisteredResourceValueResponse' +components: + schemas: + common.MetadataUpdateEnum: + type: string + title: MetadataUpdateEnum + enum: + - METADATA_UPDATE_ENUM_UNSPECIFIED + - METADATA_UPDATE_ENUM_EXTEND + - METADATA_UPDATE_ENUM_REPLACE + policy.Action.StandardAction: + type: string + title: StandardAction + enum: + - STANDARD_ACTION_UNSPECIFIED + - STANDARD_ACTION_DECRYPT + - STANDARD_ACTION_TRANSMIT + policy.Algorithm: + type: string + title: Algorithm + enum: + - ALGORITHM_UNSPECIFIED + - ALGORITHM_RSA_2048 + - ALGORITHM_RSA_4096 + - ALGORITHM_EC_P256 + - ALGORITHM_EC_P384 + - ALGORITHM_EC_P521 + description: Supported key algorithms. + policy.AttributeRuleTypeEnum: + type: string + title: AttributeRuleTypeEnum + enum: + - ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED + - ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF + - ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF + - ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY + policy.ConditionBooleanTypeEnum: + type: string + title: ConditionBooleanTypeEnum + enum: + - CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED + - CONDITION_BOOLEAN_TYPE_ENUM_AND + - CONDITION_BOOLEAN_TYPE_ENUM_OR + policy.KasPublicKeyAlgEnum: + type: string + title: KasPublicKeyAlgEnum + enum: + - KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048 + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1 + policy.SourceType: + type: string + title: SourceType + enum: + - SOURCE_TYPE_UNSPECIFIED + - SOURCE_TYPE_INTERNAL + - SOURCE_TYPE_EXTERNAL + description: |- + Describes whether this kas is managed by the organization or if they imported + the kas information from an external party. These two modes are necessary in order + to encrypt a tdf dek with an external parties kas public key. + policy.SubjectMappingOperatorEnum: + type: string + title: SubjectMappingOperatorEnum + enum: + - SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED + - SUBJECT_MAPPING_OPERATOR_ENUM_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + common.MetadataMutable: + type: object + properties: + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional labels + title: MetadataMutable + additionalProperties: false + common.MetadataMutable.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.BoolValue: + type: boolean + description: |- + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.Action: + type: object + oneOf: + - properties: + custom: + type: string + title: custom + description: Deprecated + title: custom + required: + - custom + - properties: + standard: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + title: standard + required: + - standard + properties: + id: + type: string + title: id + description: Generated uuid in database + name: + type: string + title: name + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: Action + additionalProperties: false + description: An action an entity can take + policy.Attribute: + type: object + properties: + id: + type: string + title: id + namespace: + title: namespace + description: namespace of the attribute + $ref: '#/components/schemas/policy.Namespace' + name: + type: string + title: name + description: attribute name + rule: + title: rule + description: attribute rule enum + $ref: '#/components/schemas/policy.AttributeRuleTypeEnum' + values: + type: array + items: + $ref: '#/components/schemas/policy.Value' + title: values + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: Deprecated + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys associated with the attribute + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Attribute + required: + - rule + additionalProperties: false + policy.Condition: + type: object + properties: + subjectExternalSelectorValue: + type: string + title: subject_external_selector_value + description: |- + a selector for a field value on a flattened Entity Representation (such as + from idP/LDAP) + operator: + title: operator + description: the evaluation operator of relation + $ref: '#/components/schemas/policy.SubjectMappingOperatorEnum' + subjectExternalValues: + type: array + items: + type: string + minItems: 1 + title: subject_external_values + minItems: 1 + description: |- + list of comparison values for the result of applying the + subject_external_selector_value on a flattened Entity Representation + (Subject), evaluated by the operator + title: Condition + required: + - subjectExternalSelectorValue + - operator + additionalProperties: false + description: |- + * + A Condition defines a rule of + policy.ConditionGroup: + type: object + properties: + conditions: + type: array + items: + $ref: '#/components/schemas/policy.Condition' + title: conditions + minItems: 1 + booleanOperator: + title: boolean_operator + description: the boolean evaluation type across the conditions + $ref: '#/components/schemas/policy.ConditionBooleanTypeEnum' + title: ConditionGroup + required: + - booleanOperator + additionalProperties: false + description: A collection of Conditions evaluated by the boolean_operator provided + policy.KasPublicKey: + type: object + properties: + pem: + type: string + title: pem + maxLength: 8192 + minLength: 1 + description: x509 ASN.1 content in PEM envelope, usually + kid: + type: string + title: kid + maxLength: 32 + minLength: 1 + description: A unique string identifier for this key + alg: + not: + enum: + - 0 + title: alg + description: |- + A known algorithm type with any additional parameters encoded. + To start, these may be `rsa:2048` for encrypting ZTDF files and + `ec:secp256r1` for nanoTDF, but more formats may be added as needed. + $ref: '#/components/schemas/policy.KasPublicKeyAlgEnum' + title: KasPublicKey + additionalProperties: false + description: |- + Deprecated + A KAS public key and some associated metadata for further identifcation + policy.KasPublicKeySet: + type: object + properties: + keys: + type: array + items: + $ref: '#/components/schemas/policy.KasPublicKey' + title: keys + title: KasPublicKeySet + additionalProperties: false + description: |- + Deprecated + A list of known KAS public keys + policy.KeyAccessServer: + type: object + properties: + id: + type: string + title: id + uri: + type: string + title: uri + description: |+ + Address of a KAS instance + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https?://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$') + ``` + + publicKey: + title: public_key + description: Deprecated + $ref: '#/components/schemas/policy.PublicKey' + sourceType: + title: source_type + description: 'The source of the KAS: (INTERNAL, EXTERNAL)' + $ref: '#/components/schemas/policy.SourceType' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Kas keys associated with this KAS + name: + type: string + title: name + description: |- + Optional + Unique name of the KAS instance + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: KeyAccessServer + additionalProperties: false + description: Key Access Server Registry + policy.Namespace: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + name: + type: string + title: name + description: |- + used to partition Attribute Definitions, support by namespace AuthN and + enable federation + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: KAS grants for the namespace + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys for the namespace + title: Namespace + additionalProperties: false + policy.PageRequest: + type: object + properties: + limit: + type: integer + title: limit + format: int32 + description: |- + Optional + Set to configured default limit if not provided + Maximum limit set in platform config and enforced by services + offset: + type: integer + title: offset + format: int32 + description: |- + Optional + Defaulted if not provided + title: PageRequest + additionalProperties: false + policy.PageResponse: + type: object + properties: + currentOffset: + type: integer + title: current_offset + format: int32 + description: Requested pagination offset + nextOffset: + type: integer + title: next_offset + format: int32 + description: |- + Calculated with request limit + offset or defaults + Empty when none remain after current page + total: + type: integer + title: total + format: int32 + description: Total count of entire list + title: PageResponse + additionalProperties: false + policy.PublicKey: + type: object + oneOf: + - properties: + cached: + title: cached + description: public key with additional information. Current preferred version + $ref: '#/components/schemas/policy.KasPublicKeySet' + title: cached + required: + - cached + - properties: + remote: + type: string + title: remote + description: |+ + kas public key url - optional since can also be retrieved via public key + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(/.*)?$') + ``` + + title: remote + required: + - remote + title: PublicKey + additionalProperties: false + description: Deprecated + policy.RegisteredResource: + type: object + properties: + id: + type: string + title: id + name: + type: string + title: name + values: + type: array + items: + $ref: '#/components/schemas/policy.RegisteredResourceValue' + title: values + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: RegisteredResource + additionalProperties: false + policy.RegisteredResourceValue: + type: object + properties: + id: + type: string + title: id + value: + type: string + title: value + resource: + title: resource + $ref: '#/components/schemas/policy.RegisteredResource' + actionAttributeValues: + type: array + items: + $ref: '#/components/schemas/policy.RegisteredResourceValue.ActionAttributeValue' + title: action_attribute_values + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: RegisteredResourceValue + additionalProperties: false + policy.RegisteredResourceValue.ActionAttributeValue: + type: object + properties: + id: + type: string + title: id + action: + title: action + $ref: '#/components/schemas/policy.Action' + attributeValue: + title: attribute_value + $ref: '#/components/schemas/policy.Value' + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: ActionAttributeValue + additionalProperties: false + policy.ResourceMapping: + type: object + properties: + id: + type: string + title: id + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + attributeValue: + title: attribute_value + $ref: '#/components/schemas/policy.Value' + terms: + type: array + items: + type: string + title: terms + group: + title: group + $ref: '#/components/schemas/policy.ResourceMappingGroup' + title: ResourceMapping + required: + - attributeValue + additionalProperties: false + description: |- + Resource Mappings (aka Access Control Resource Encodings aka ACRE) are + structures supporting the mapping of Resources and Attribute Values + policy.ResourceMappingGroup: + type: object + properties: + id: + type: string + title: id + namespaceId: + type: string + title: namespace_id + description: the namespace containing the group of resource mappings + name: + type: string + title: name + description: |- + the common name for the group of resource mappings, which must be unique + per namespace + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: ResourceMappingGroup + required: + - namespaceId + - name + additionalProperties: false + description: |- + Resource Mapping Groups are namespaced collections of Resource Mappings + associated under a common group name. + policy.SimpleKasKey: + type: object + properties: + kasUri: + type: string + title: kas_uri + description: The URL of the Key Access Server + publicKey: + title: public_key + description: The public key of the Key that belongs to the KAS + $ref: '#/components/schemas/policy.SimpleKasPublicKey' + kasId: + type: string + title: kas_id + description: The ID of the Key Access Server + title: SimpleKasKey + additionalProperties: false + policy.SimpleKasPublicKey: + type: object + properties: + algorithm: + title: algorithm + $ref: '#/components/schemas/policy.Algorithm' + kid: + type: string + title: kid + pem: + type: string + title: pem + title: SimpleKasPublicKey + additionalProperties: false + policy.SubjectConditionSet: + type: object + properties: + id: + type: string + title: id + subjectSets: + type: array + items: + $ref: '#/components/schemas/policy.SubjectSet' + title: subject_sets + minItems: 1 + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectConditionSet + additionalProperties: false + description: |- + A container for multiple Subject Sets, each containing Condition Groups, each + containing Conditions. Multiple Subject Sets in a SubjectConditionSet are + evaluated with AND logic. As each Subject Mapping has only one Attribute + Value, the SubjectConditionSet is reusable across multiple Subject Mappings / + Attribute Values and is an independent unit. + policy.SubjectMapping: + type: object + properties: + id: + type: string + title: id + attributeValue: + title: attribute_value + description: 'the Attribute Value mapped to; aka: "The Entity Entitlement Attribute"' + $ref: '#/components/schemas/policy.Value' + subjectConditionSet: + title: subject_condition_set + description: the reusable SubjectConditionSet mapped to the given Attribute Value + $ref: '#/components/schemas/policy.SubjectConditionSet' + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + description: The actions permitted by subjects in this mapping + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectMapping + additionalProperties: false + description: |- + Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute + value + action(s) combination + policy.SubjectSet: + type: object + properties: + conditionGroups: + type: array + items: + $ref: '#/components/schemas/policy.ConditionGroup' + title: condition_groups + minItems: 1 + description: multiple Condition Groups are evaluated with AND logic + title: SubjectSet + additionalProperties: false + description: A collection of Condition Groups + policy.Value: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + value: + type: string + title: value + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: |- + Deprecated + list of key access servers + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + subjectMappings: + type: array + items: + $ref: '#/components/schemas/policy.SubjectMapping' + title: subject_mappings + description: subject mapping + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + resourceMappings: + type: array + items: + $ref: '#/components/schemas/policy.ResourceMapping' + title: resource_mappings + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Value + additionalProperties: false + policy.registeredresources.ActionAttributeValue: + type: object + allOf: + - oneOf: + - properties: + actionId: + type: string + title: action_id + format: uuid + title: action_id + required: + - actionId + - properties: + actionName: + type: string + title: action_name + maxLength: 253 + description: |+ + Action name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored action name will be normalized to lower case.: + ``` + this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') + ``` + + title: action_name + required: + - actionName + - oneOf: + - properties: + attributeValueFqn: + type: string + title: attribute_value_fqn + minLength: 1 + format: uri + title: attribute_value_fqn + required: + - attributeValueFqn + - properties: + attributeValueId: + type: string + title: attribute_value_id + format: uuid + title: attribute_value_id + required: + - attributeValueId + title: ActionAttributeValue + additionalProperties: false + policy.registeredresources.CreateRegisteredResourceRequest: + type: object + properties: + name: + type: string + title: name + maxLength: 253 + description: |+ + Required + Registered Resource Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.: + ``` + this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') + ``` + + values: + type: array + items: + type: string + maxLength: 253 + pattern: ^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$ + uniqueItems: true + title: values + uniqueItems: true + description: "Optional \n Registered Resource Values (when provided) must be alphanumeric strings, allowing hyphens and underscores but not as the first or last character.\n The stored value will be normalized to lower case." + metadata: + title: metadata + description: |- + Optional + Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + title: CreateRegisteredResourceRequest + required: + - name + additionalProperties: false + policy.registeredresources.CreateRegisteredResourceResponse: + type: object + properties: + resource: + title: resource + $ref: '#/components/schemas/policy.RegisteredResource' + title: CreateRegisteredResourceResponse + additionalProperties: false + policy.registeredresources.CreateRegisteredResourceValueRequest: + type: object + properties: + resourceId: + type: string + title: resource_id + format: uuid + description: Required + value: + type: string + title: value + maxLength: 253 + description: |+ + Required + Registered Resource Value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored value will be normalized to lower case.: + ``` + this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') + ``` + + actionAttributeValues: + type: array + items: + $ref: '#/components/schemas/policy.registeredresources.ActionAttributeValue' + title: action_attribute_values + description: |- + Optional + The associated Action <> AttributeValue combinations to be utilized in authorization/entitlement decisioning + (i.e. action read -> attribute value https://example.com/attr/department/value/marketing) + metadata: + title: metadata + description: |- + Optional + Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + title: CreateRegisteredResourceValueRequest + required: + - value + additionalProperties: false + policy.registeredresources.CreateRegisteredResourceValueResponse: + type: object + properties: + value: + title: value + $ref: '#/components/schemas/policy.RegisteredResourceValue' + title: CreateRegisteredResourceValueResponse + additionalProperties: false + policy.registeredresources.DeleteRegisteredResourceRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: DeleteRegisteredResourceRequest + additionalProperties: false + policy.registeredresources.DeleteRegisteredResourceResponse: + type: object + properties: + resource: + title: resource + $ref: '#/components/schemas/policy.RegisteredResource' + title: DeleteRegisteredResourceResponse + additionalProperties: false + policy.registeredresources.DeleteRegisteredResourceValueRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: DeleteRegisteredResourceValueRequest + additionalProperties: false + policy.registeredresources.DeleteRegisteredResourceValueResponse: + type: object + properties: + value: + title: value + $ref: '#/components/schemas/policy.RegisteredResourceValue' + title: DeleteRegisteredResourceValueResponse + additionalProperties: false + policy.registeredresources.GetRegisteredResourceRequest: + type: object + oneOf: + - properties: + id: + type: string + title: id + format: uuid + title: id + required: + - id + - properties: + name: + type: string + title: name + maxLength: 253 + description: |+ + Registered Resource Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.: + ``` + size(this) > 0 ? this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') : true + ``` + + title: name + required: + - name + title: GetRegisteredResourceRequest + additionalProperties: false + policy.registeredresources.GetRegisteredResourceResponse: + type: object + properties: + resource: + title: resource + $ref: '#/components/schemas/policy.RegisteredResource' + title: GetRegisteredResourceResponse + additionalProperties: false + policy.registeredresources.GetRegisteredResourceValueRequest: + type: object + oneOf: + - properties: + fqn: + type: string + title: fqn + minLength: 1 + format: uri + title: fqn + required: + - fqn + - properties: + id: + type: string + title: id + format: uuid + title: id + required: + - id + title: GetRegisteredResourceValueRequest + additionalProperties: false + policy.registeredresources.GetRegisteredResourceValueResponse: + type: object + properties: + value: + title: value + $ref: '#/components/schemas/policy.RegisteredResourceValue' + title: GetRegisteredResourceValueResponse + additionalProperties: false + policy.registeredresources.GetRegisteredResourceValuesByFQNsRequest: + type: object + properties: + fqns: + type: array + items: + type: string + minLength: 1 + format: uri + minItems: 1 + uniqueItems: true + title: fqns + minItems: 1 + uniqueItems: true + description: Required + title: GetRegisteredResourceValuesByFQNsRequest + additionalProperties: false + policy.registeredresources.GetRegisteredResourceValuesByFQNsResponse: + type: object + properties: + fqnValueMap: + type: object + title: fqn_value_map + additionalProperties: + title: value + $ref: '#/components/schemas/policy.RegisteredResourceValue' + title: GetRegisteredResourceValuesByFQNsResponse + additionalProperties: false + policy.registeredresources.GetRegisteredResourceValuesByFQNsResponse.FqnValueMapEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/policy.RegisteredResourceValue' + title: FqnValueMapEntry + additionalProperties: false + policy.registeredresources.ListRegisteredResourceValuesRequest: + type: object + properties: + resourceId: + type: string + title: resource_id + description: |+ + Optional + Optional field must be a valid UUID: + ``` + size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') + ``` + + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListRegisteredResourceValuesRequest + additionalProperties: false + policy.registeredresources.ListRegisteredResourceValuesResponse: + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/policy.RegisteredResourceValue' + title: values + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListRegisteredResourceValuesResponse + additionalProperties: false + policy.registeredresources.ListRegisteredResourcesRequest: + type: object + properties: + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListRegisteredResourcesRequest + additionalProperties: false + policy.registeredresources.ListRegisteredResourcesResponse: + type: object + properties: + resources: + type: array + items: + $ref: '#/components/schemas/policy.RegisteredResource' + title: resources + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListRegisteredResourcesResponse + additionalProperties: false + policy.registeredresources.UpdateRegisteredResourceRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + name: + type: string + title: name + maxLength: 253 + description: |+ + Optional + Registered Resource Name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored name will be normalized to lower case.: + ``` + size(this) > 0 ? this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') : true + ``` + + metadata: + title: metadata + description: |- + Optional + Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateRegisteredResourceRequest + additionalProperties: false + policy.registeredresources.UpdateRegisteredResourceResponse: + type: object + properties: + resource: + title: resource + $ref: '#/components/schemas/policy.RegisteredResource' + title: UpdateRegisteredResourceResponse + additionalProperties: false + policy.registeredresources.UpdateRegisteredResourceValueRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + value: + type: string + title: value + maxLength: 253 + description: |+ + Optional + Registered Resource Value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored value will be normalized to lower case.: + ``` + size(this) > 0 ? this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') : true + ``` + + actionAttributeValues: + type: array + items: + $ref: '#/components/schemas/policy.registeredresources.ActionAttributeValue' + title: action_attribute_values + description: |- + Optional + Action Attribute Values provided here will replace all existing records in the database. To delete all action attribute values, set this field to an empty list. + metadata: + title: metadata + description: |- + Optional + Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateRegisteredResourceValueRequest + additionalProperties: false + policy.registeredresources.UpdateRegisteredResourceValueResponse: + type: object + properties: + value: + title: value + $ref: '#/components/schemas/policy.RegisteredResourceValue' + title: UpdateRegisteredResourceValueResponse + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. +security: [] +tags: + - name: policy.registeredresources.RegisteredResourcesService + description: Registered Resources diff --git a/specs/policy/registeredresources/registered_resources.swagger.json b/specs/policy/registeredresources/registered_resources.swagger.json new file mode 100644 index 0000000..70307e2 --- /dev/null +++ b/specs/policy/registeredresources/registered_resources.swagger.json @@ -0,0 +1,823 @@ +{ + "swagger": "2.0", + "info": { + "title": "policy/registeredresources/registered_resources.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "RegisteredResourcesService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "ActionStandardAction": { + "type": "string", + "enum": [ + "STANDARD_ACTION_UNSPECIFIED", + "STANDARD_ACTION_DECRYPT", + "STANDARD_ACTION_TRANSMIT" + ], + "default": "STANDARD_ACTION_UNSPECIFIED", + "title": "- STANDARD_ACTION_DECRYPT: Deprecated\nMigrate to 'read' action name\n - STANDARD_ACTION_TRANSMIT: Deprecated\nMigrate to 'create' action name" + }, + "commonMetadata": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "title": "created_at set by server (entity who created will recorded in an audit event)" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "title": "updated_at set by server (entity who updated will recorded in an audit event)" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional short description" + } + }, + "title": "Struct to uniquely identify a resource with optional additional metadata" + }, + "commonMetadataMutable": { + "type": "object", + "properties": { + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional labels" + } + } + }, + "commonMetadataUpdateEnum": { + "type": "string", + "enum": [ + "METADATA_UPDATE_ENUM_UNSPECIFIED", + "METADATA_UPDATE_ENUM_EXTEND", + "METADATA_UPDATE_ENUM_REPLACE" + ], + "default": "METADATA_UPDATE_ENUM_UNSPECIFIED", + "title": "- METADATA_UPDATE_ENUM_UNSPECIFIED: unspecified update type\n - METADATA_UPDATE_ENUM_EXTEND: only update the fields that are provided\n - METADATA_UPDATE_ENUM_REPLACE: replace the entire metadata with the provided metadata" + }, + "policyAction": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Generated uuid in database" + }, + "standard": { + "$ref": "#/definitions/ActionStandardAction", + "title": "Deprecated" + }, + "custom": { + "type": "string", + "title": "Deprecated" + }, + "name": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "An action an entity can take" + }, + "policyAlgorithm": { + "type": "string", + "enum": [ + "ALGORITHM_UNSPECIFIED", + "ALGORITHM_RSA_2048", + "ALGORITHM_RSA_4096", + "ALGORITHM_EC_P256", + "ALGORITHM_EC_P384", + "ALGORITHM_EC_P521" + ], + "default": "ALGORITHM_UNSPECIFIED", + "description": "Supported key algorithms." + }, + "policyAttribute": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespace": { + "$ref": "#/definitions/policyNamespace", + "title": "namespace of the attribute" + }, + "name": { + "type": "string", + "title": "attribute name" + }, + "rule": { + "$ref": "#/definitions/policyAttributeRuleTypeEnum", + "title": "attribute rule enum" + }, + "values": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyValue" + } + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "Deprecated" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys associated with the attribute" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyAttributeRuleTypeEnum": { + "type": "string", + "enum": [ + "ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED", + "ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF", + "ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF", + "ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY" + ], + "default": "ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED" + }, + "policyCondition": { + "type": "object", + "properties": { + "subjectExternalSelectorValue": { + "type": "string", + "title": "a selector for a field value on a flattened Entity Representation (such as\nfrom idP/LDAP)" + }, + "operator": { + "$ref": "#/definitions/policySubjectMappingOperatorEnum", + "title": "the evaluation operator of relation" + }, + "subjectExternalValues": { + "type": "array", + "items": { + "type": "string" + }, + "title": "list of comparison values for the result of applying the\nsubject_external_selector_value on a flattened Entity Representation\n(Subject), evaluated by the operator" + } + }, + "title": "*\nA Condition defines a rule of \u003cthe value at the flattened 'selector value'\nlocation\u003e \u003coperator\u003e \u003csubject external values\u003e" + }, + "policyConditionBooleanTypeEnum": { + "type": "string", + "enum": [ + "CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED", + "CONDITION_BOOLEAN_TYPE_ENUM_AND", + "CONDITION_BOOLEAN_TYPE_ENUM_OR" + ], + "default": "CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED" + }, + "policyConditionGroup": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyCondition" + } + }, + "booleanOperator": { + "$ref": "#/definitions/policyConditionBooleanTypeEnum", + "title": "the boolean evaluation type across the conditions" + } + }, + "title": "A collection of Conditions evaluated by the boolean_operator provided" + }, + "policyKasPublicKey": { + "type": "object", + "properties": { + "pem": { + "type": "string", + "title": "x509 ASN.1 content in PEM envelope, usually" + }, + "kid": { + "type": "string", + "title": "A unique string identifier for this key" + }, + "alg": { + "$ref": "#/definitions/policyKasPublicKeyAlgEnum", + "description": "A known algorithm type with any additional parameters encoded.\nTo start, these may be `rsa:2048` for encrypting ZTDF files and\n`ec:secp256r1` for nanoTDF, but more formats may be added as needed." + } + }, + "title": "Deprecated\nA KAS public key and some associated metadata for further identifcation" + }, + "policyKasPublicKeyAlgEnum": { + "type": "string", + "enum": [ + "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1" + ], + "default": "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED" + }, + "policyKasPublicKeySet": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKasPublicKey" + } + } + }, + "title": "Deprecated\nA list of known KAS public keys" + }, + "policyKeyAccessServer": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "uri": { + "type": "string", + "title": "Address of a KAS instance" + }, + "publicKey": { + "$ref": "#/definitions/policyPublicKey", + "title": "Deprecated" + }, + "sourceType": { + "$ref": "#/definitions/policySourceType", + "title": "The source of the KAS: (INTERNAL, EXTERNAL)" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Kas keys associated with this KAS" + }, + "name": { + "type": "string", + "title": "Optional\nUnique name of the KAS instance" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "title": "Key Access Server Registry" + }, + "policyNamespace": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "name": { + "type": "string", + "title": "used to partition Attribute Definitions, support by namespace AuthN and\nenable federation" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "KAS grants for the namespace" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys for the namespace" + } + } + }, + "policyPageRequest": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "title": "Optional\nSet to configured default limit if not provided\nMaximum limit set in platform config and enforced by services" + }, + "offset": { + "type": "integer", + "format": "int32", + "title": "Optional\nDefaulted if not provided" + } + } + }, + "policyPageResponse": { + "type": "object", + "properties": { + "currentOffset": { + "type": "integer", + "format": "int32", + "title": "Requested pagination offset" + }, + "nextOffset": { + "type": "integer", + "format": "int32", + "title": "Calculated with request limit + offset or defaults\nEmpty when none remain after current page" + }, + "total": { + "type": "integer", + "format": "int32", + "title": "Total count of entire list" + } + } + }, + "policyPublicKey": { + "type": "object", + "properties": { + "remote": { + "type": "string", + "title": "kas public key url - optional since can also be retrieved via public key" + }, + "cached": { + "$ref": "#/definitions/policyKasPublicKeySet", + "title": "public key with additional information. Current preferred version" + } + }, + "title": "Deprecated" + }, + "policyRegisteredResource": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "values": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyRegisteredResourceValue" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyRegisteredResourceValue": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "value": { + "type": "string" + }, + "resource": { + "$ref": "#/definitions/policyRegisteredResource" + }, + "actionAttributeValues": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyRegisteredResourceValueActionAttributeValue" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyRegisteredResourceValueActionAttributeValue": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "action": { + "$ref": "#/definitions/policyAction" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyResourceMapping": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue" + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + }, + "group": { + "$ref": "#/definitions/policyResourceMappingGroup" + } + }, + "title": "Resource Mappings (aka Access Control Resource Encodings aka ACRE) are\nstructures supporting the mapping of Resources and Attribute Values" + }, + "policyResourceMappingGroup": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespaceId": { + "type": "string", + "title": "the namespace containing the group of resource mappings" + }, + "name": { + "type": "string", + "title": "the common name for the group of resource mappings, which must be unique\nper namespace" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "description": "Resource Mapping Groups are namespaced collections of Resource Mappings\nassociated under a common group name." + }, + "policySimpleKasKey": { + "type": "object", + "properties": { + "kasUri": { + "type": "string", + "title": "The URL of the Key Access Server" + }, + "publicKey": { + "$ref": "#/definitions/policySimpleKasPublicKey", + "title": "The public key of the Key that belongs to the KAS" + }, + "kasId": { + "type": "string", + "title": "The ID of the Key Access Server" + } + } + }, + "policySimpleKasPublicKey": { + "type": "object", + "properties": { + "algorithm": { + "$ref": "#/definitions/policyAlgorithm" + }, + "kid": { + "type": "string" + }, + "pem": { + "type": "string" + } + } + }, + "policySourceType": { + "type": "string", + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "SOURCE_TYPE_INTERNAL", + "SOURCE_TYPE_EXTERNAL" + ], + "default": "SOURCE_TYPE_UNSPECIFIED", + "description": "Describes whether this kas is managed by the organization or if they imported\nthe kas information from an external party. These two modes are necessary in order\nto encrypt a tdf dek with an external parties kas public key.\n\n - SOURCE_TYPE_INTERNAL: The kas is managed by the organization.\n - SOURCE_TYPE_EXTERNAL: The kas is managed by an external party." + }, + "policySubjectConditionSet": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "subjectSets": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectSet" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "description": "A container for multiple Subject Sets, each containing Condition Groups, each\ncontaining Conditions. Multiple Subject Sets in a SubjectConditionSet are\nevaluated with AND logic. As each Subject Mapping has only one Attribute\nValue, the SubjectConditionSet is reusable across multiple Subject Mappings /\nAttribute Values and is an independent unit." + }, + "policySubjectMapping": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue", + "title": "the Attribute Value mapped to; aka: \"The Entity Entitlement Attribute\"" + }, + "subjectConditionSet": { + "$ref": "#/definitions/policySubjectConditionSet", + "title": "the reusable SubjectConditionSet mapped to the given Attribute Value" + }, + "actions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyAction" + }, + "title": "The actions permitted by subjects in this mapping" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute\nvalue + action(s) combination" + }, + "policySubjectMappingOperatorEnum": { + "type": "string", + "enum": [ + "SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED", + "SUBJECT_MAPPING_OPERATOR_ENUM_IN", + "SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN", + "SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS" + ], + "default": "SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED", + "title": "- SUBJECT_MAPPING_OPERATOR_ENUM_IN: operator that returns true if a value in a list matches the string\n - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN: operator that returns true if a value is not in a list that is matched by\nstring\n - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS: operator that returns true if a value in a list contains the substring" + }, + "policySubjectSet": { + "type": "object", + "properties": { + "conditionGroups": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyConditionGroup" + }, + "title": "multiple Condition Groups are evaluated with AND logic" + } + }, + "title": "A collection of Condition Groups" + }, + "policyValue": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "attribute": { + "$ref": "#/definitions/policyAttribute" + }, + "value": { + "type": "string" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "Deprecated\nlist of key access servers" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "subjectMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectMapping" + }, + "title": "subject mapping" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + } + }, + "resourceMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyResourceMapping" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyregisteredresourcesActionAttributeValue": { + "type": "object", + "properties": { + "actionId": { + "type": "string" + }, + "actionName": { + "type": "string" + }, + "attributeValueId": { + "type": "string" + }, + "attributeValueFqn": { + "type": "string" + } + } + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "registeredresourcesCreateRegisteredResourceResponse": { + "type": "object", + "properties": { + "resource": { + "$ref": "#/definitions/policyRegisteredResource" + } + } + }, + "registeredresourcesCreateRegisteredResourceValueResponse": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/policyRegisteredResourceValue" + } + } + }, + "registeredresourcesDeleteRegisteredResourceResponse": { + "type": "object", + "properties": { + "resource": { + "$ref": "#/definitions/policyRegisteredResource" + } + } + }, + "registeredresourcesDeleteRegisteredResourceValueResponse": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/policyRegisteredResourceValue" + } + } + }, + "registeredresourcesGetRegisteredResourceResponse": { + "type": "object", + "properties": { + "resource": { + "$ref": "#/definitions/policyRegisteredResource" + } + } + }, + "registeredresourcesGetRegisteredResourceValueResponse": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/policyRegisteredResourceValue" + } + } + }, + "registeredresourcesGetRegisteredResourceValuesByFQNsResponse": { + "type": "object", + "properties": { + "fqnValueMap": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/policyRegisteredResourceValue" + } + } + } + }, + "registeredresourcesListRegisteredResourceValuesResponse": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyRegisteredResourceValue" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + } + }, + "registeredresourcesListRegisteredResourcesResponse": { + "type": "object", + "properties": { + "resources": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyRegisteredResource" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + } + }, + "registeredresourcesUpdateRegisteredResourceResponse": { + "type": "object", + "properties": { + "resource": { + "$ref": "#/definitions/policyRegisteredResource" + } + } + }, + "registeredresourcesUpdateRegisteredResourceValueResponse": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/policyRegisteredResourceValue" + } + } + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/policy/resourcemapping/resource_mapping.openapi.yaml b/specs/policy/resourcemapping/resource_mapping.openapi.yaml new file mode 100644 index 0000000..f8134a6 --- /dev/null +++ b/specs/policy/resourcemapping/resource_mapping.openapi.yaml @@ -0,0 +1,1559 @@ +openapi: 3.1.0 +info: + title: policy.resourcemapping +paths: + /policy.resourcemapping.ResourceMappingService/ListResourceMappingGroups: + post: + tags: + - policy.resourcemapping.ResourceMappingService + summary: ListResourceMappingGroups + operationId: policy.resourcemapping.ResourceMappingService.ListResourceMappingGroups + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.ListResourceMappingGroupsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.ListResourceMappingGroupsResponse' + /policy.resourcemapping.ResourceMappingService/GetResourceMappingGroup: + post: + tags: + - policy.resourcemapping.ResourceMappingService + summary: GetResourceMappingGroup + operationId: policy.resourcemapping.ResourceMappingService.GetResourceMappingGroup + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.GetResourceMappingGroupRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.GetResourceMappingGroupResponse' + /policy.resourcemapping.ResourceMappingService/CreateResourceMappingGroup: + post: + tags: + - policy.resourcemapping.ResourceMappingService + summary: CreateResourceMappingGroup + operationId: policy.resourcemapping.ResourceMappingService.CreateResourceMappingGroup + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.CreateResourceMappingGroupRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.CreateResourceMappingGroupResponse' + /policy.resourcemapping.ResourceMappingService/UpdateResourceMappingGroup: + post: + tags: + - policy.resourcemapping.ResourceMappingService + summary: UpdateResourceMappingGroup + operationId: policy.resourcemapping.ResourceMappingService.UpdateResourceMappingGroup + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.UpdateResourceMappingGroupRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.UpdateResourceMappingGroupResponse' + /policy.resourcemapping.ResourceMappingService/DeleteResourceMappingGroup: + post: + tags: + - policy.resourcemapping.ResourceMappingService + summary: DeleteResourceMappingGroup + operationId: policy.resourcemapping.ResourceMappingService.DeleteResourceMappingGroup + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.DeleteResourceMappingGroupRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.DeleteResourceMappingGroupResponse' + /policy.resourcemapping.ResourceMappingService/ListResourceMappings: + post: + tags: + - policy.resourcemapping.ResourceMappingService + summary: ListResourceMappings + operationId: policy.resourcemapping.ResourceMappingService.ListResourceMappings + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.ListResourceMappingsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.ListResourceMappingsResponse' + /policy.resourcemapping.ResourceMappingService/ListResourceMappingsByGroupFqns: + post: + tags: + - policy.resourcemapping.ResourceMappingService + summary: ListResourceMappingsByGroupFqns + operationId: policy.resourcemapping.ResourceMappingService.ListResourceMappingsByGroupFqns + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.ListResourceMappingsByGroupFqnsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.ListResourceMappingsByGroupFqnsResponse' + /policy.resourcemapping.ResourceMappingService/GetResourceMapping: + post: + tags: + - policy.resourcemapping.ResourceMappingService + summary: GetResourceMapping + operationId: policy.resourcemapping.ResourceMappingService.GetResourceMapping + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.GetResourceMappingRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.GetResourceMappingResponse' + /policy.resourcemapping.ResourceMappingService/CreateResourceMapping: + post: + tags: + - policy.resourcemapping.ResourceMappingService + summary: CreateResourceMapping + operationId: policy.resourcemapping.ResourceMappingService.CreateResourceMapping + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.CreateResourceMappingRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.CreateResourceMappingResponse' + /policy.resourcemapping.ResourceMappingService/UpdateResourceMapping: + post: + tags: + - policy.resourcemapping.ResourceMappingService + summary: UpdateResourceMapping + operationId: policy.resourcemapping.ResourceMappingService.UpdateResourceMapping + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.UpdateResourceMappingRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.UpdateResourceMappingResponse' + /policy.resourcemapping.ResourceMappingService/DeleteResourceMapping: + post: + tags: + - policy.resourcemapping.ResourceMappingService + summary: DeleteResourceMapping + operationId: policy.resourcemapping.ResourceMappingService.DeleteResourceMapping + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.DeleteResourceMappingRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.resourcemapping.DeleteResourceMappingResponse' +components: + schemas: + common.MetadataUpdateEnum: + type: string + title: MetadataUpdateEnum + enum: + - METADATA_UPDATE_ENUM_UNSPECIFIED + - METADATA_UPDATE_ENUM_EXTEND + - METADATA_UPDATE_ENUM_REPLACE + policy.Action.StandardAction: + type: string + title: StandardAction + enum: + - STANDARD_ACTION_UNSPECIFIED + - STANDARD_ACTION_DECRYPT + - STANDARD_ACTION_TRANSMIT + policy.Algorithm: + type: string + title: Algorithm + enum: + - ALGORITHM_UNSPECIFIED + - ALGORITHM_RSA_2048 + - ALGORITHM_RSA_4096 + - ALGORITHM_EC_P256 + - ALGORITHM_EC_P384 + - ALGORITHM_EC_P521 + description: Supported key algorithms. + policy.AttributeRuleTypeEnum: + type: string + title: AttributeRuleTypeEnum + enum: + - ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED + - ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF + - ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF + - ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY + policy.ConditionBooleanTypeEnum: + type: string + title: ConditionBooleanTypeEnum + enum: + - CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED + - CONDITION_BOOLEAN_TYPE_ENUM_AND + - CONDITION_BOOLEAN_TYPE_ENUM_OR + policy.KasPublicKeyAlgEnum: + type: string + title: KasPublicKeyAlgEnum + enum: + - KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048 + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1 + policy.SourceType: + type: string + title: SourceType + enum: + - SOURCE_TYPE_UNSPECIFIED + - SOURCE_TYPE_INTERNAL + - SOURCE_TYPE_EXTERNAL + description: |- + Describes whether this kas is managed by the organization or if they imported + the kas information from an external party. These two modes are necessary in order + to encrypt a tdf dek with an external parties kas public key. + policy.SubjectMappingOperatorEnum: + type: string + title: SubjectMappingOperatorEnum + enum: + - SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED + - SUBJECT_MAPPING_OPERATOR_ENUM_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + common.MetadataMutable: + type: object + properties: + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional labels + title: MetadataMutable + additionalProperties: false + common.MetadataMutable.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.BoolValue: + type: boolean + description: |- + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.Action: + type: object + oneOf: + - properties: + custom: + type: string + title: custom + description: Deprecated + title: custom + required: + - custom + - properties: + standard: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + title: standard + required: + - standard + properties: + id: + type: string + title: id + description: Generated uuid in database + name: + type: string + title: name + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: Action + additionalProperties: false + description: An action an entity can take + policy.Attribute: + type: object + properties: + id: + type: string + title: id + namespace: + title: namespace + description: namespace of the attribute + $ref: '#/components/schemas/policy.Namespace' + name: + type: string + title: name + description: attribute name + rule: + title: rule + description: attribute rule enum + $ref: '#/components/schemas/policy.AttributeRuleTypeEnum' + values: + type: array + items: + $ref: '#/components/schemas/policy.Value' + title: values + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: Deprecated + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys associated with the attribute + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Attribute + required: + - rule + additionalProperties: false + policy.Condition: + type: object + properties: + subjectExternalSelectorValue: + type: string + title: subject_external_selector_value + description: |- + a selector for a field value on a flattened Entity Representation (such as + from idP/LDAP) + operator: + title: operator + description: the evaluation operator of relation + $ref: '#/components/schemas/policy.SubjectMappingOperatorEnum' + subjectExternalValues: + type: array + items: + type: string + minItems: 1 + title: subject_external_values + minItems: 1 + description: |- + list of comparison values for the result of applying the + subject_external_selector_value on a flattened Entity Representation + (Subject), evaluated by the operator + title: Condition + required: + - subjectExternalSelectorValue + - operator + additionalProperties: false + description: |- + * + A Condition defines a rule of + policy.ConditionGroup: + type: object + properties: + conditions: + type: array + items: + $ref: '#/components/schemas/policy.Condition' + title: conditions + minItems: 1 + booleanOperator: + title: boolean_operator + description: the boolean evaluation type across the conditions + $ref: '#/components/schemas/policy.ConditionBooleanTypeEnum' + title: ConditionGroup + required: + - booleanOperator + additionalProperties: false + description: A collection of Conditions evaluated by the boolean_operator provided + policy.KasPublicKey: + type: object + properties: + pem: + type: string + title: pem + maxLength: 8192 + minLength: 1 + description: x509 ASN.1 content in PEM envelope, usually + kid: + type: string + title: kid + maxLength: 32 + minLength: 1 + description: A unique string identifier for this key + alg: + not: + enum: + - 0 + title: alg + description: |- + A known algorithm type with any additional parameters encoded. + To start, these may be `rsa:2048` for encrypting ZTDF files and + `ec:secp256r1` for nanoTDF, but more formats may be added as needed. + $ref: '#/components/schemas/policy.KasPublicKeyAlgEnum' + title: KasPublicKey + additionalProperties: false + description: |- + Deprecated + A KAS public key and some associated metadata for further identifcation + policy.KasPublicKeySet: + type: object + properties: + keys: + type: array + items: + $ref: '#/components/schemas/policy.KasPublicKey' + title: keys + title: KasPublicKeySet + additionalProperties: false + description: |- + Deprecated + A list of known KAS public keys + policy.KeyAccessServer: + type: object + properties: + id: + type: string + title: id + uri: + type: string + title: uri + description: |+ + Address of a KAS instance + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https?://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$') + ``` + + publicKey: + title: public_key + description: Deprecated + $ref: '#/components/schemas/policy.PublicKey' + sourceType: + title: source_type + description: 'The source of the KAS: (INTERNAL, EXTERNAL)' + $ref: '#/components/schemas/policy.SourceType' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Kas keys associated with this KAS + name: + type: string + title: name + description: |- + Optional + Unique name of the KAS instance + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: KeyAccessServer + additionalProperties: false + description: Key Access Server Registry + policy.Namespace: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + name: + type: string + title: name + description: |- + used to partition Attribute Definitions, support by namespace AuthN and + enable federation + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: KAS grants for the namespace + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys for the namespace + title: Namespace + additionalProperties: false + policy.PageRequest: + type: object + properties: + limit: + type: integer + title: limit + format: int32 + description: |- + Optional + Set to configured default limit if not provided + Maximum limit set in platform config and enforced by services + offset: + type: integer + title: offset + format: int32 + description: |- + Optional + Defaulted if not provided + title: PageRequest + additionalProperties: false + policy.PageResponse: + type: object + properties: + currentOffset: + type: integer + title: current_offset + format: int32 + description: Requested pagination offset + nextOffset: + type: integer + title: next_offset + format: int32 + description: |- + Calculated with request limit + offset or defaults + Empty when none remain after current page + total: + type: integer + title: total + format: int32 + description: Total count of entire list + title: PageResponse + additionalProperties: false + policy.PublicKey: + type: object + oneOf: + - properties: + cached: + title: cached + description: public key with additional information. Current preferred version + $ref: '#/components/schemas/policy.KasPublicKeySet' + title: cached + required: + - cached + - properties: + remote: + type: string + title: remote + description: |+ + kas public key url - optional since can also be retrieved via public key + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(/.*)?$') + ``` + + title: remote + required: + - remote + title: PublicKey + additionalProperties: false + description: Deprecated + policy.ResourceMapping: + type: object + properties: + id: + type: string + title: id + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + attributeValue: + title: attribute_value + $ref: '#/components/schemas/policy.Value' + terms: + type: array + items: + type: string + title: terms + group: + title: group + $ref: '#/components/schemas/policy.ResourceMappingGroup' + title: ResourceMapping + required: + - attributeValue + additionalProperties: false + description: |- + Resource Mappings (aka Access Control Resource Encodings aka ACRE) are + structures supporting the mapping of Resources and Attribute Values + policy.ResourceMappingGroup: + type: object + properties: + id: + type: string + title: id + namespaceId: + type: string + title: namespace_id + description: the namespace containing the group of resource mappings + name: + type: string + title: name + description: |- + the common name for the group of resource mappings, which must be unique + per namespace + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: ResourceMappingGroup + required: + - namespaceId + - name + additionalProperties: false + description: |- + Resource Mapping Groups are namespaced collections of Resource Mappings + associated under a common group name. + policy.SimpleKasKey: + type: object + properties: + kasUri: + type: string + title: kas_uri + description: The URL of the Key Access Server + publicKey: + title: public_key + description: The public key of the Key that belongs to the KAS + $ref: '#/components/schemas/policy.SimpleKasPublicKey' + kasId: + type: string + title: kas_id + description: The ID of the Key Access Server + title: SimpleKasKey + additionalProperties: false + policy.SimpleKasPublicKey: + type: object + properties: + algorithm: + title: algorithm + $ref: '#/components/schemas/policy.Algorithm' + kid: + type: string + title: kid + pem: + type: string + title: pem + title: SimpleKasPublicKey + additionalProperties: false + policy.SubjectConditionSet: + type: object + properties: + id: + type: string + title: id + subjectSets: + type: array + items: + $ref: '#/components/schemas/policy.SubjectSet' + title: subject_sets + minItems: 1 + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectConditionSet + additionalProperties: false + description: |- + A container for multiple Subject Sets, each containing Condition Groups, each + containing Conditions. Multiple Subject Sets in a SubjectConditionSet are + evaluated with AND logic. As each Subject Mapping has only one Attribute + Value, the SubjectConditionSet is reusable across multiple Subject Mappings / + Attribute Values and is an independent unit. + policy.SubjectMapping: + type: object + properties: + id: + type: string + title: id + attributeValue: + title: attribute_value + description: 'the Attribute Value mapped to; aka: "The Entity Entitlement Attribute"' + $ref: '#/components/schemas/policy.Value' + subjectConditionSet: + title: subject_condition_set + description: the reusable SubjectConditionSet mapped to the given Attribute Value + $ref: '#/components/schemas/policy.SubjectConditionSet' + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + description: The actions permitted by subjects in this mapping + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectMapping + additionalProperties: false + description: |- + Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute + value + action(s) combination + policy.SubjectSet: + type: object + properties: + conditionGroups: + type: array + items: + $ref: '#/components/schemas/policy.ConditionGroup' + title: condition_groups + minItems: 1 + description: multiple Condition Groups are evaluated with AND logic + title: SubjectSet + additionalProperties: false + description: A collection of Condition Groups + policy.Value: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + value: + type: string + title: value + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: |- + Deprecated + list of key access servers + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + subjectMappings: + type: array + items: + $ref: '#/components/schemas/policy.SubjectMapping' + title: subject_mappings + description: subject mapping + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + resourceMappings: + type: array + items: + $ref: '#/components/schemas/policy.ResourceMapping' + title: resource_mappings + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Value + additionalProperties: false + policy.resourcemapping.CreateResourceMappingGroupRequest: + type: object + properties: + namespaceId: + type: string + title: namespace_id + format: uuid + description: Required + name: + type: string + title: name + description: Required + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + title: CreateResourceMappingGroupRequest + required: + - name + additionalProperties: false + policy.resourcemapping.CreateResourceMappingGroupResponse: + type: object + properties: + resourceMappingGroup: + title: resource_mapping_group + $ref: '#/components/schemas/policy.ResourceMappingGroup' + title: CreateResourceMappingGroupResponse + additionalProperties: false + policy.resourcemapping.CreateResourceMappingRequest: + type: object + properties: + attributeValueId: + type: string + title: attribute_value_id + format: uuid + description: Required + terms: + type: array + items: + type: string + maxItems: 1000 + minItems: 1 + title: terms + maxItems: 1000 + minItems: 1 + description: Required + groupId: + type: string + title: group_id + description: |+ + Optional + Optional field must be a valid UUID: + ``` + size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') + ``` + + metadata: + title: metadata + description: Optional + $ref: '#/components/schemas/common.MetadataMutable' + title: CreateResourceMappingRequest + additionalProperties: false + policy.resourcemapping.CreateResourceMappingResponse: + type: object + properties: + resourceMapping: + title: resource_mapping + $ref: '#/components/schemas/policy.ResourceMapping' + title: CreateResourceMappingResponse + additionalProperties: false + policy.resourcemapping.DeleteResourceMappingGroupRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: DeleteResourceMappingGroupRequest + additionalProperties: false + policy.resourcemapping.DeleteResourceMappingGroupResponse: + type: object + properties: + resourceMappingGroup: + title: resource_mapping_group + $ref: '#/components/schemas/policy.ResourceMappingGroup' + title: DeleteResourceMappingGroupResponse + additionalProperties: false + policy.resourcemapping.DeleteResourceMappingRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: DeleteResourceMappingRequest + additionalProperties: false + policy.resourcemapping.DeleteResourceMappingResponse: + type: object + properties: + resourceMapping: + title: resource_mapping + $ref: '#/components/schemas/policy.ResourceMapping' + title: DeleteResourceMappingResponse + additionalProperties: false + policy.resourcemapping.GetResourceMappingGroupRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: GetResourceMappingGroupRequest + additionalProperties: false + policy.resourcemapping.GetResourceMappingGroupResponse: + type: object + properties: + resourceMappingGroup: + title: resource_mapping_group + $ref: '#/components/schemas/policy.ResourceMappingGroup' + title: GetResourceMappingGroupResponse + additionalProperties: false + policy.resourcemapping.GetResourceMappingRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: GetResourceMappingRequest + additionalProperties: false + policy.resourcemapping.GetResourceMappingResponse: + type: object + properties: + resourceMapping: + title: resource_mapping + $ref: '#/components/schemas/policy.ResourceMapping' + title: GetResourceMappingResponse + additionalProperties: false + policy.resourcemapping.ListResourceMappingGroupsRequest: + type: object + properties: + namespaceId: + type: string + title: namespace_id + description: |+ + Optional + Optional field must be a valid UUID: + ``` + size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') + ``` + + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListResourceMappingGroupsRequest + additionalProperties: false + policy.resourcemapping.ListResourceMappingGroupsResponse: + type: object + properties: + resourceMappingGroups: + type: array + items: + $ref: '#/components/schemas/policy.ResourceMappingGroup' + title: resource_mapping_groups + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListResourceMappingGroupsResponse + additionalProperties: false + policy.resourcemapping.ListResourceMappingsByGroupFqnsRequest: + type: object + properties: + fqns: + type: array + items: + type: string + minItems: 1 + title: fqns + minItems: 1 + description: |- + Required + Structure of the RM Group FQN is 'https:///resm/' + title: ListResourceMappingsByGroupFqnsRequest + additionalProperties: false + policy.resourcemapping.ListResourceMappingsByGroupFqnsResponse: + type: object + properties: + fqnResourceMappingGroups: + type: object + title: fqn_resource_mapping_groups + additionalProperties: + title: value + $ref: '#/components/schemas/policy.resourcemapping.ResourceMappingsByGroup' + title: ListResourceMappingsByGroupFqnsResponse + additionalProperties: false + policy.resourcemapping.ListResourceMappingsByGroupFqnsResponse.FqnResourceMappingGroupsEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/policy.resourcemapping.ResourceMappingsByGroup' + title: FqnResourceMappingGroupsEntry + additionalProperties: false + policy.resourcemapping.ListResourceMappingsRequest: + type: object + properties: + groupId: + type: string + title: group_id + description: |+ + Optional + Optional field must be a valid UUID: + ``` + size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') + ``` + + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListResourceMappingsRequest + additionalProperties: false + policy.resourcemapping.ListResourceMappingsResponse: + type: object + properties: + resourceMappings: + type: array + items: + $ref: '#/components/schemas/policy.ResourceMapping' + title: resource_mappings + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListResourceMappingsResponse + additionalProperties: false + policy.resourcemapping.ResourceMappingsByGroup: + type: object + properties: + group: + title: group + $ref: '#/components/schemas/policy.ResourceMappingGroup' + mappings: + type: array + items: + $ref: '#/components/schemas/policy.ResourceMapping' + title: mappings + title: ResourceMappingsByGroup + additionalProperties: false + policy.resourcemapping.UpdateResourceMappingGroupRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + namespaceId: + type: string + title: namespace_id + description: |+ + Optional + Optional field must be a valid UUID: + ``` + size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') + ``` + + name: + type: string + title: name + maxLength: 253 + description: |+ + Optional + Optional field must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored group name will be normalized to lower case.: + ``` + size(this) == 0 || this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') + ``` + + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateResourceMappingGroupRequest + additionalProperties: false + policy.resourcemapping.UpdateResourceMappingGroupResponse: + type: object + properties: + resourceMappingGroup: + title: resource_mapping_group + $ref: '#/components/schemas/policy.ResourceMappingGroup' + title: UpdateResourceMappingGroupResponse + additionalProperties: false + policy.resourcemapping.UpdateResourceMappingRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + attributeValueId: + type: string + title: attribute_value_id + description: |+ + Optional + Optional field must be a valid UUID: + ``` + size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') + ``` + + terms: + type: array + items: + type: string + maxItems: 1000 + title: terms + maxItems: 1000 + description: Optional + groupId: + type: string + title: group_id + description: |+ + Optional + Optional field must be a valid UUID: + ``` + size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') + ``` + + metadata: + title: metadata + description: |- + Optional + Common Metadata + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateResourceMappingRequest + additionalProperties: false + policy.resourcemapping.UpdateResourceMappingResponse: + type: object + properties: + resourceMapping: + title: resource_mapping + $ref: '#/components/schemas/policy.ResourceMapping' + title: UpdateResourceMappingResponse + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. +security: [] +tags: + - name: policy.resourcemapping.ResourceMappingService + description: Resource Mapping Groups diff --git a/specs/policy/resourcemapping/resource_mapping.swagger.json b/specs/policy/resourcemapping/resource_mapping.swagger.json new file mode 100644 index 0000000..c976295 --- /dev/null +++ b/specs/policy/resourcemapping/resource_mapping.swagger.json @@ -0,0 +1,756 @@ +{ + "swagger": "2.0", + "info": { + "title": "policy/resourcemapping/resource_mapping.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "ResourceMappingService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "ActionStandardAction": { + "type": "string", + "enum": [ + "STANDARD_ACTION_UNSPECIFIED", + "STANDARD_ACTION_DECRYPT", + "STANDARD_ACTION_TRANSMIT" + ], + "default": "STANDARD_ACTION_UNSPECIFIED", + "title": "- STANDARD_ACTION_DECRYPT: Deprecated\nMigrate to 'read' action name\n - STANDARD_ACTION_TRANSMIT: Deprecated\nMigrate to 'create' action name" + }, + "commonMetadata": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "title": "created_at set by server (entity who created will recorded in an audit event)" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "title": "updated_at set by server (entity who updated will recorded in an audit event)" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional short description" + } + }, + "title": "Struct to uniquely identify a resource with optional additional metadata" + }, + "commonMetadataMutable": { + "type": "object", + "properties": { + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional labels" + } + } + }, + "commonMetadataUpdateEnum": { + "type": "string", + "enum": [ + "METADATA_UPDATE_ENUM_UNSPECIFIED", + "METADATA_UPDATE_ENUM_EXTEND", + "METADATA_UPDATE_ENUM_REPLACE" + ], + "default": "METADATA_UPDATE_ENUM_UNSPECIFIED", + "title": "- METADATA_UPDATE_ENUM_UNSPECIFIED: unspecified update type\n - METADATA_UPDATE_ENUM_EXTEND: only update the fields that are provided\n - METADATA_UPDATE_ENUM_REPLACE: replace the entire metadata with the provided metadata" + }, + "policyAction": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Generated uuid in database" + }, + "standard": { + "$ref": "#/definitions/ActionStandardAction", + "title": "Deprecated" + }, + "custom": { + "type": "string", + "title": "Deprecated" + }, + "name": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "An action an entity can take" + }, + "policyAlgorithm": { + "type": "string", + "enum": [ + "ALGORITHM_UNSPECIFIED", + "ALGORITHM_RSA_2048", + "ALGORITHM_RSA_4096", + "ALGORITHM_EC_P256", + "ALGORITHM_EC_P384", + "ALGORITHM_EC_P521" + ], + "default": "ALGORITHM_UNSPECIFIED", + "description": "Supported key algorithms." + }, + "policyAttribute": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespace": { + "$ref": "#/definitions/policyNamespace", + "title": "namespace of the attribute" + }, + "name": { + "type": "string", + "title": "attribute name" + }, + "rule": { + "$ref": "#/definitions/policyAttributeRuleTypeEnum", + "title": "attribute rule enum" + }, + "values": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyValue" + } + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "Deprecated" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys associated with the attribute" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyAttributeRuleTypeEnum": { + "type": "string", + "enum": [ + "ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED", + "ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF", + "ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF", + "ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY" + ], + "default": "ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED" + }, + "policyCondition": { + "type": "object", + "properties": { + "subjectExternalSelectorValue": { + "type": "string", + "title": "a selector for a field value on a flattened Entity Representation (such as\nfrom idP/LDAP)" + }, + "operator": { + "$ref": "#/definitions/policySubjectMappingOperatorEnum", + "title": "the evaluation operator of relation" + }, + "subjectExternalValues": { + "type": "array", + "items": { + "type": "string" + }, + "title": "list of comparison values for the result of applying the\nsubject_external_selector_value on a flattened Entity Representation\n(Subject), evaluated by the operator" + } + }, + "title": "*\nA Condition defines a rule of \u003cthe value at the flattened 'selector value'\nlocation\u003e \u003coperator\u003e \u003csubject external values\u003e" + }, + "policyConditionBooleanTypeEnum": { + "type": "string", + "enum": [ + "CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED", + "CONDITION_BOOLEAN_TYPE_ENUM_AND", + "CONDITION_BOOLEAN_TYPE_ENUM_OR" + ], + "default": "CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED" + }, + "policyConditionGroup": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyCondition" + } + }, + "booleanOperator": { + "$ref": "#/definitions/policyConditionBooleanTypeEnum", + "title": "the boolean evaluation type across the conditions" + } + }, + "title": "A collection of Conditions evaluated by the boolean_operator provided" + }, + "policyKasPublicKey": { + "type": "object", + "properties": { + "pem": { + "type": "string", + "title": "x509 ASN.1 content in PEM envelope, usually" + }, + "kid": { + "type": "string", + "title": "A unique string identifier for this key" + }, + "alg": { + "$ref": "#/definitions/policyKasPublicKeyAlgEnum", + "description": "A known algorithm type with any additional parameters encoded.\nTo start, these may be `rsa:2048` for encrypting ZTDF files and\n`ec:secp256r1` for nanoTDF, but more formats may be added as needed." + } + }, + "title": "Deprecated\nA KAS public key and some associated metadata for further identifcation" + }, + "policyKasPublicKeyAlgEnum": { + "type": "string", + "enum": [ + "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1" + ], + "default": "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED" + }, + "policyKasPublicKeySet": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKasPublicKey" + } + } + }, + "title": "Deprecated\nA list of known KAS public keys" + }, + "policyKeyAccessServer": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "uri": { + "type": "string", + "title": "Address of a KAS instance" + }, + "publicKey": { + "$ref": "#/definitions/policyPublicKey", + "title": "Deprecated" + }, + "sourceType": { + "$ref": "#/definitions/policySourceType", + "title": "The source of the KAS: (INTERNAL, EXTERNAL)" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Kas keys associated with this KAS" + }, + "name": { + "type": "string", + "title": "Optional\nUnique name of the KAS instance" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "title": "Key Access Server Registry" + }, + "policyNamespace": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "name": { + "type": "string", + "title": "used to partition Attribute Definitions, support by namespace AuthN and\nenable federation" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "KAS grants for the namespace" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys for the namespace" + } + } + }, + "policyPageRequest": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "title": "Optional\nSet to configured default limit if not provided\nMaximum limit set in platform config and enforced by services" + }, + "offset": { + "type": "integer", + "format": "int32", + "title": "Optional\nDefaulted if not provided" + } + } + }, + "policyPageResponse": { + "type": "object", + "properties": { + "currentOffset": { + "type": "integer", + "format": "int32", + "title": "Requested pagination offset" + }, + "nextOffset": { + "type": "integer", + "format": "int32", + "title": "Calculated with request limit + offset or defaults\nEmpty when none remain after current page" + }, + "total": { + "type": "integer", + "format": "int32", + "title": "Total count of entire list" + } + } + }, + "policyPublicKey": { + "type": "object", + "properties": { + "remote": { + "type": "string", + "title": "kas public key url - optional since can also be retrieved via public key" + }, + "cached": { + "$ref": "#/definitions/policyKasPublicKeySet", + "title": "public key with additional information. Current preferred version" + } + }, + "title": "Deprecated" + }, + "policyResourceMapping": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue" + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + }, + "group": { + "$ref": "#/definitions/policyResourceMappingGroup" + } + }, + "title": "Resource Mappings (aka Access Control Resource Encodings aka ACRE) are\nstructures supporting the mapping of Resources and Attribute Values" + }, + "policyResourceMappingGroup": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespaceId": { + "type": "string", + "title": "the namespace containing the group of resource mappings" + }, + "name": { + "type": "string", + "title": "the common name for the group of resource mappings, which must be unique\nper namespace" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "description": "Resource Mapping Groups are namespaced collections of Resource Mappings\nassociated under a common group name." + }, + "policySimpleKasKey": { + "type": "object", + "properties": { + "kasUri": { + "type": "string", + "title": "The URL of the Key Access Server" + }, + "publicKey": { + "$ref": "#/definitions/policySimpleKasPublicKey", + "title": "The public key of the Key that belongs to the KAS" + }, + "kasId": { + "type": "string", + "title": "The ID of the Key Access Server" + } + } + }, + "policySimpleKasPublicKey": { + "type": "object", + "properties": { + "algorithm": { + "$ref": "#/definitions/policyAlgorithm" + }, + "kid": { + "type": "string" + }, + "pem": { + "type": "string" + } + } + }, + "policySourceType": { + "type": "string", + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "SOURCE_TYPE_INTERNAL", + "SOURCE_TYPE_EXTERNAL" + ], + "default": "SOURCE_TYPE_UNSPECIFIED", + "description": "Describes whether this kas is managed by the organization or if they imported\nthe kas information from an external party. These two modes are necessary in order\nto encrypt a tdf dek with an external parties kas public key.\n\n - SOURCE_TYPE_INTERNAL: The kas is managed by the organization.\n - SOURCE_TYPE_EXTERNAL: The kas is managed by an external party." + }, + "policySubjectConditionSet": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "subjectSets": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectSet" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "description": "A container for multiple Subject Sets, each containing Condition Groups, each\ncontaining Conditions. Multiple Subject Sets in a SubjectConditionSet are\nevaluated with AND logic. As each Subject Mapping has only one Attribute\nValue, the SubjectConditionSet is reusable across multiple Subject Mappings /\nAttribute Values and is an independent unit." + }, + "policySubjectMapping": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue", + "title": "the Attribute Value mapped to; aka: \"The Entity Entitlement Attribute\"" + }, + "subjectConditionSet": { + "$ref": "#/definitions/policySubjectConditionSet", + "title": "the reusable SubjectConditionSet mapped to the given Attribute Value" + }, + "actions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyAction" + }, + "title": "The actions permitted by subjects in this mapping" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute\nvalue + action(s) combination" + }, + "policySubjectMappingOperatorEnum": { + "type": "string", + "enum": [ + "SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED", + "SUBJECT_MAPPING_OPERATOR_ENUM_IN", + "SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN", + "SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS" + ], + "default": "SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED", + "title": "- SUBJECT_MAPPING_OPERATOR_ENUM_IN: operator that returns true if a value in a list matches the string\n - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN: operator that returns true if a value is not in a list that is matched by\nstring\n - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS: operator that returns true if a value in a list contains the substring" + }, + "policySubjectSet": { + "type": "object", + "properties": { + "conditionGroups": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyConditionGroup" + }, + "title": "multiple Condition Groups are evaluated with AND logic" + } + }, + "title": "A collection of Condition Groups" + }, + "policyValue": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "attribute": { + "$ref": "#/definitions/policyAttribute" + }, + "value": { + "type": "string" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "Deprecated\nlist of key access servers" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "subjectMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectMapping" + }, + "title": "subject mapping" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + } + }, + "resourceMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyResourceMapping" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "resourcemappingCreateResourceMappingGroupResponse": { + "type": "object", + "properties": { + "resourceMappingGroup": { + "$ref": "#/definitions/policyResourceMappingGroup" + } + } + }, + "resourcemappingCreateResourceMappingResponse": { + "type": "object", + "properties": { + "resourceMapping": { + "$ref": "#/definitions/policyResourceMapping" + } + } + }, + "resourcemappingDeleteResourceMappingGroupResponse": { + "type": "object", + "properties": { + "resourceMappingGroup": { + "$ref": "#/definitions/policyResourceMappingGroup" + } + } + }, + "resourcemappingDeleteResourceMappingResponse": { + "type": "object", + "properties": { + "resourceMapping": { + "$ref": "#/definitions/policyResourceMapping" + } + } + }, + "resourcemappingGetResourceMappingGroupResponse": { + "type": "object", + "properties": { + "resourceMappingGroup": { + "$ref": "#/definitions/policyResourceMappingGroup" + } + } + }, + "resourcemappingGetResourceMappingResponse": { + "type": "object", + "properties": { + "resourceMapping": { + "$ref": "#/definitions/policyResourceMapping" + } + } + }, + "resourcemappingListResourceMappingGroupsResponse": { + "type": "object", + "properties": { + "resourceMappingGroups": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyResourceMappingGroup" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + } + }, + "resourcemappingListResourceMappingsByGroupFqnsResponse": { + "type": "object", + "properties": { + "fqnResourceMappingGroups": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/resourcemappingResourceMappingsByGroup" + } + } + } + }, + "resourcemappingListResourceMappingsResponse": { + "type": "object", + "properties": { + "resourceMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyResourceMapping" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + } + }, + "resourcemappingResourceMappingsByGroup": { + "type": "object", + "properties": { + "group": { + "$ref": "#/definitions/policyResourceMappingGroup" + }, + "mappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyResourceMapping" + } + } + } + }, + "resourcemappingUpdateResourceMappingGroupResponse": { + "type": "object", + "properties": { + "resourceMappingGroup": { + "$ref": "#/definitions/policyResourceMappingGroup" + } + } + }, + "resourcemappingUpdateResourceMappingResponse": { + "type": "object", + "properties": { + "resourceMapping": { + "$ref": "#/definitions/policyResourceMapping" + } + } + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/policy/selectors.openapi.yaml b/specs/policy/selectors.openapi.yaml new file mode 100644 index 0000000..a35d717 --- /dev/null +++ b/specs/policy/selectors.openapi.yaml @@ -0,0 +1,146 @@ +openapi: 3.1.0 +info: + title: policy +paths: {} +components: + schemas: + policy.AttributeDefinitionSelector: + type: object + properties: + withKeyAccessGrants: + type: boolean + title: with_key_access_grants + withNamespace: + title: with_namespace + $ref: '#/components/schemas/policy.AttributeDefinitionSelector.NamespaceSelector' + withValues: + title: with_values + $ref: '#/components/schemas/policy.AttributeDefinitionSelector.ValueSelector' + title: AttributeDefinitionSelector + additionalProperties: false + policy.AttributeDefinitionSelector.NamespaceSelector: + type: object + title: NamespaceSelector + additionalProperties: false + policy.AttributeDefinitionSelector.ValueSelector: + type: object + properties: + withKeyAccessGrants: + type: boolean + title: with_key_access_grants + withSubjectMaps: + type: boolean + title: with_subject_maps + withResourceMaps: + type: boolean + title: with_resource_maps + title: ValueSelector + additionalProperties: false + policy.AttributeNamespaceSelector: + type: object + properties: + withAttributes: + title: with_attributes + $ref: '#/components/schemas/policy.AttributeNamespaceSelector.AttributeSelector' + title: AttributeNamespaceSelector + additionalProperties: false + policy.AttributeNamespaceSelector.AttributeSelector: + type: object + properties: + withKeyAccessGrants: + type: boolean + title: with_key_access_grants + withValues: + title: with_values + $ref: '#/components/schemas/policy.AttributeNamespaceSelector.AttributeSelector.ValueSelector' + title: AttributeSelector + additionalProperties: false + policy.AttributeNamespaceSelector.AttributeSelector.ValueSelector: + type: object + properties: + withKeyAccessGrants: + type: boolean + title: with_key_access_grants + withSubjectMaps: + type: boolean + title: with_subject_maps + withResourceMaps: + type: boolean + title: with_resource_maps + title: ValueSelector + additionalProperties: false + policy.AttributeValueSelector: + type: object + properties: + withKeyAccessGrants: + type: boolean + title: with_key_access_grants + withSubjectMaps: + type: boolean + title: with_subject_maps + withResourceMaps: + type: boolean + title: with_resource_maps + withAttribute: + title: with_attribute + $ref: '#/components/schemas/policy.AttributeValueSelector.AttributeSelector' + title: AttributeValueSelector + additionalProperties: false + policy.AttributeValueSelector.AttributeSelector: + type: object + properties: + withKeyAccessGrants: + type: boolean + title: with_key_access_grants + withNamespace: + title: with_namespace + $ref: '#/components/schemas/policy.AttributeValueSelector.AttributeSelector.NamespaceSelector' + title: AttributeSelector + additionalProperties: false + policy.AttributeValueSelector.AttributeSelector.NamespaceSelector: + type: object + title: NamespaceSelector + additionalProperties: false + policy.PageRequest: + type: object + properties: + limit: + type: integer + title: limit + format: int32 + description: |- + Optional + Set to configured default limit if not provided + Maximum limit set in platform config and enforced by services + offset: + type: integer + title: offset + format: int32 + description: |- + Optional + Defaulted if not provided + title: PageRequest + additionalProperties: false + policy.PageResponse: + type: object + properties: + currentOffset: + type: integer + title: current_offset + format: int32 + description: Requested pagination offset + nextOffset: + type: integer + title: next_offset + format: int32 + description: |- + Calculated with request limit + offset or defaults + Empty when none remain after current page + total: + type: integer + title: total + format: int32 + description: Total count of entire list + title: PageResponse + additionalProperties: false +security: [] diff --git a/specs/policy/selectors.swagger.json b/specs/policy/selectors.swagger.json new file mode 100644 index 0000000..5e1366e --- /dev/null +++ b/specs/policy/selectors.swagger.json @@ -0,0 +1,46 @@ +{ + "swagger": "2.0", + "info": { + "title": "policy/selectors.proto", + "version": "version not set" + }, + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + } + } +} diff --git a/specs/policy/subjectmapping/subject_mapping.openapi.yaml b/specs/policy/subjectmapping/subject_mapping.openapi.yaml new file mode 100644 index 0000000..ca1b88f --- /dev/null +++ b/specs/policy/subjectmapping/subject_mapping.openapi.yaml @@ -0,0 +1,1599 @@ +openapi: 3.1.0 +info: + title: policy.subjectmapping +paths: + /policy.subjectmapping.SubjectMappingService/MatchSubjectMappings: + post: + tags: + - policy.subjectmapping.SubjectMappingService + summary: MatchSubjectMappings + description: Find matching Subject Mappings for a given Subject + operationId: policy.subjectmapping.SubjectMappingService.MatchSubjectMappings + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.MatchSubjectMappingsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.MatchSubjectMappingsResponse' + /policy.subjectmapping.SubjectMappingService/ListSubjectMappings: + post: + tags: + - policy.subjectmapping.SubjectMappingService + summary: ListSubjectMappings + operationId: policy.subjectmapping.SubjectMappingService.ListSubjectMappings + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.ListSubjectMappingsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.ListSubjectMappingsResponse' + /policy.subjectmapping.SubjectMappingService/GetSubjectMapping: + post: + tags: + - policy.subjectmapping.SubjectMappingService + summary: GetSubjectMapping + operationId: policy.subjectmapping.SubjectMappingService.GetSubjectMapping + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.GetSubjectMappingRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.GetSubjectMappingResponse' + /policy.subjectmapping.SubjectMappingService/CreateSubjectMapping: + post: + tags: + - policy.subjectmapping.SubjectMappingService + summary: CreateSubjectMapping + operationId: policy.subjectmapping.SubjectMappingService.CreateSubjectMapping + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.CreateSubjectMappingRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.CreateSubjectMappingResponse' + /policy.subjectmapping.SubjectMappingService/UpdateSubjectMapping: + post: + tags: + - policy.subjectmapping.SubjectMappingService + summary: UpdateSubjectMapping + operationId: policy.subjectmapping.SubjectMappingService.UpdateSubjectMapping + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.UpdateSubjectMappingRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.UpdateSubjectMappingResponse' + /policy.subjectmapping.SubjectMappingService/DeleteSubjectMapping: + post: + tags: + - policy.subjectmapping.SubjectMappingService + summary: DeleteSubjectMapping + operationId: policy.subjectmapping.SubjectMappingService.DeleteSubjectMapping + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.DeleteSubjectMappingRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.DeleteSubjectMappingResponse' + /policy.subjectmapping.SubjectMappingService/ListSubjectConditionSets: + post: + tags: + - policy.subjectmapping.SubjectMappingService + summary: ListSubjectConditionSets + operationId: policy.subjectmapping.SubjectMappingService.ListSubjectConditionSets + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.ListSubjectConditionSetsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.ListSubjectConditionSetsResponse' + /policy.subjectmapping.SubjectMappingService/GetSubjectConditionSet: + post: + tags: + - policy.subjectmapping.SubjectMappingService + summary: GetSubjectConditionSet + operationId: policy.subjectmapping.SubjectMappingService.GetSubjectConditionSet + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.GetSubjectConditionSetRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.GetSubjectConditionSetResponse' + /policy.subjectmapping.SubjectMappingService/CreateSubjectConditionSet: + post: + tags: + - policy.subjectmapping.SubjectMappingService + summary: CreateSubjectConditionSet + operationId: policy.subjectmapping.SubjectMappingService.CreateSubjectConditionSet + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.CreateSubjectConditionSetRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.CreateSubjectConditionSetResponse' + /policy.subjectmapping.SubjectMappingService/UpdateSubjectConditionSet: + post: + tags: + - policy.subjectmapping.SubjectMappingService + summary: UpdateSubjectConditionSet + operationId: policy.subjectmapping.SubjectMappingService.UpdateSubjectConditionSet + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.UpdateSubjectConditionSetRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.UpdateSubjectConditionSetResponse' + /policy.subjectmapping.SubjectMappingService/DeleteSubjectConditionSet: + post: + tags: + - policy.subjectmapping.SubjectMappingService + summary: DeleteSubjectConditionSet + operationId: policy.subjectmapping.SubjectMappingService.DeleteSubjectConditionSet + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.DeleteSubjectConditionSetRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.DeleteSubjectConditionSetResponse' + /policy.subjectmapping.SubjectMappingService/DeleteAllUnmappedSubjectConditionSets: + post: + tags: + - policy.subjectmapping.SubjectMappingService + summary: DeleteAllUnmappedSubjectConditionSets + operationId: policy.subjectmapping.SubjectMappingService.DeleteAllUnmappedSubjectConditionSets + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.DeleteAllUnmappedSubjectConditionSetsRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.subjectmapping.DeleteAllUnmappedSubjectConditionSetsResponse' +components: + schemas: + common.MetadataUpdateEnum: + type: string + title: MetadataUpdateEnum + enum: + - METADATA_UPDATE_ENUM_UNSPECIFIED + - METADATA_UPDATE_ENUM_EXTEND + - METADATA_UPDATE_ENUM_REPLACE + policy.Action.StandardAction: + type: string + title: StandardAction + enum: + - STANDARD_ACTION_UNSPECIFIED + - STANDARD_ACTION_DECRYPT + - STANDARD_ACTION_TRANSMIT + policy.Algorithm: + type: string + title: Algorithm + enum: + - ALGORITHM_UNSPECIFIED + - ALGORITHM_RSA_2048 + - ALGORITHM_RSA_4096 + - ALGORITHM_EC_P256 + - ALGORITHM_EC_P384 + - ALGORITHM_EC_P521 + description: Supported key algorithms. + policy.AttributeRuleTypeEnum: + type: string + title: AttributeRuleTypeEnum + enum: + - ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED + - ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF + - ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF + - ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY + policy.ConditionBooleanTypeEnum: + type: string + title: ConditionBooleanTypeEnum + enum: + - CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED + - CONDITION_BOOLEAN_TYPE_ENUM_AND + - CONDITION_BOOLEAN_TYPE_ENUM_OR + policy.KasPublicKeyAlgEnum: + type: string + title: KasPublicKeyAlgEnum + enum: + - KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048 + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1 + policy.SourceType: + type: string + title: SourceType + enum: + - SOURCE_TYPE_UNSPECIFIED + - SOURCE_TYPE_INTERNAL + - SOURCE_TYPE_EXTERNAL + description: |- + Describes whether this kas is managed by the organization or if they imported + the kas information from an external party. These two modes are necessary in order + to encrypt a tdf dek with an external parties kas public key. + policy.SubjectMappingOperatorEnum: + type: string + title: SubjectMappingOperatorEnum + enum: + - SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED + - SUBJECT_MAPPING_OPERATOR_ENUM_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + common.MetadataMutable: + type: object + properties: + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional labels + title: MetadataMutable + additionalProperties: false + common.MetadataMutable.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.BoolValue: + type: boolean + description: |- + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.Action: + type: object + oneOf: + - properties: + custom: + type: string + title: custom + description: Deprecated + title: custom + required: + - custom + - properties: + standard: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + title: standard + required: + - standard + properties: + id: + type: string + title: id + description: Generated uuid in database + name: + type: string + title: name + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: Action + additionalProperties: false + description: An action an entity can take + policy.Attribute: + type: object + properties: + id: + type: string + title: id + namespace: + title: namespace + description: namespace of the attribute + $ref: '#/components/schemas/policy.Namespace' + name: + type: string + title: name + description: attribute name + rule: + title: rule + description: attribute rule enum + $ref: '#/components/schemas/policy.AttributeRuleTypeEnum' + values: + type: array + items: + $ref: '#/components/schemas/policy.Value' + title: values + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: Deprecated + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys associated with the attribute + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Attribute + required: + - rule + additionalProperties: false + policy.Condition: + type: object + properties: + subjectExternalSelectorValue: + type: string + title: subject_external_selector_value + description: |- + a selector for a field value on a flattened Entity Representation (such as + from idP/LDAP) + operator: + title: operator + description: the evaluation operator of relation + $ref: '#/components/schemas/policy.SubjectMappingOperatorEnum' + subjectExternalValues: + type: array + items: + type: string + minItems: 1 + title: subject_external_values + minItems: 1 + description: |- + list of comparison values for the result of applying the + subject_external_selector_value on a flattened Entity Representation + (Subject), evaluated by the operator + title: Condition + required: + - subjectExternalSelectorValue + - operator + additionalProperties: false + description: |- + * + A Condition defines a rule of + policy.ConditionGroup: + type: object + properties: + conditions: + type: array + items: + $ref: '#/components/schemas/policy.Condition' + title: conditions + minItems: 1 + booleanOperator: + title: boolean_operator + description: the boolean evaluation type across the conditions + $ref: '#/components/schemas/policy.ConditionBooleanTypeEnum' + title: ConditionGroup + required: + - booleanOperator + additionalProperties: false + description: A collection of Conditions evaluated by the boolean_operator provided + policy.KasPublicKey: + type: object + properties: + pem: + type: string + title: pem + maxLength: 8192 + minLength: 1 + description: x509 ASN.1 content in PEM envelope, usually + kid: + type: string + title: kid + maxLength: 32 + minLength: 1 + description: A unique string identifier for this key + alg: + not: + enum: + - 0 + title: alg + description: |- + A known algorithm type with any additional parameters encoded. + To start, these may be `rsa:2048` for encrypting ZTDF files and + `ec:secp256r1` for nanoTDF, but more formats may be added as needed. + $ref: '#/components/schemas/policy.KasPublicKeyAlgEnum' + title: KasPublicKey + additionalProperties: false + description: |- + Deprecated + A KAS public key and some associated metadata for further identifcation + policy.KasPublicKeySet: + type: object + properties: + keys: + type: array + items: + $ref: '#/components/schemas/policy.KasPublicKey' + title: keys + title: KasPublicKeySet + additionalProperties: false + description: |- + Deprecated + A list of known KAS public keys + policy.KeyAccessServer: + type: object + properties: + id: + type: string + title: id + uri: + type: string + title: uri + description: |+ + Address of a KAS instance + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https?://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$') + ``` + + publicKey: + title: public_key + description: Deprecated + $ref: '#/components/schemas/policy.PublicKey' + sourceType: + title: source_type + description: 'The source of the KAS: (INTERNAL, EXTERNAL)' + $ref: '#/components/schemas/policy.SourceType' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Kas keys associated with this KAS + name: + type: string + title: name + description: |- + Optional + Unique name of the KAS instance + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: KeyAccessServer + additionalProperties: false + description: Key Access Server Registry + policy.Namespace: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + name: + type: string + title: name + description: |- + used to partition Attribute Definitions, support by namespace AuthN and + enable federation + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: KAS grants for the namespace + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys for the namespace + title: Namespace + additionalProperties: false + policy.PageRequest: + type: object + properties: + limit: + type: integer + title: limit + format: int32 + description: |- + Optional + Set to configured default limit if not provided + Maximum limit set in platform config and enforced by services + offset: + type: integer + title: offset + format: int32 + description: |- + Optional + Defaulted if not provided + title: PageRequest + additionalProperties: false + policy.PageResponse: + type: object + properties: + currentOffset: + type: integer + title: current_offset + format: int32 + description: Requested pagination offset + nextOffset: + type: integer + title: next_offset + format: int32 + description: |- + Calculated with request limit + offset or defaults + Empty when none remain after current page + total: + type: integer + title: total + format: int32 + description: Total count of entire list + title: PageResponse + additionalProperties: false + policy.PublicKey: + type: object + oneOf: + - properties: + cached: + title: cached + description: public key with additional information. Current preferred version + $ref: '#/components/schemas/policy.KasPublicKeySet' + title: cached + required: + - cached + - properties: + remote: + type: string + title: remote + description: |+ + kas public key url - optional since can also be retrieved via public key + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(/.*)?$') + ``` + + title: remote + required: + - remote + title: PublicKey + additionalProperties: false + description: Deprecated + policy.ResourceMapping: + type: object + properties: + id: + type: string + title: id + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + attributeValue: + title: attribute_value + $ref: '#/components/schemas/policy.Value' + terms: + type: array + items: + type: string + title: terms + group: + title: group + $ref: '#/components/schemas/policy.ResourceMappingGroup' + title: ResourceMapping + required: + - attributeValue + additionalProperties: false + description: |- + Resource Mappings (aka Access Control Resource Encodings aka ACRE) are + structures supporting the mapping of Resources and Attribute Values + policy.ResourceMappingGroup: + type: object + properties: + id: + type: string + title: id + namespaceId: + type: string + title: namespace_id + description: the namespace containing the group of resource mappings + name: + type: string + title: name + description: |- + the common name for the group of resource mappings, which must be unique + per namespace + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: ResourceMappingGroup + required: + - namespaceId + - name + additionalProperties: false + description: |- + Resource Mapping Groups are namespaced collections of Resource Mappings + associated under a common group name. + policy.SimpleKasKey: + type: object + properties: + kasUri: + type: string + title: kas_uri + description: The URL of the Key Access Server + publicKey: + title: public_key + description: The public key of the Key that belongs to the KAS + $ref: '#/components/schemas/policy.SimpleKasPublicKey' + kasId: + type: string + title: kas_id + description: The ID of the Key Access Server + title: SimpleKasKey + additionalProperties: false + policy.SimpleKasPublicKey: + type: object + properties: + algorithm: + title: algorithm + $ref: '#/components/schemas/policy.Algorithm' + kid: + type: string + title: kid + pem: + type: string + title: pem + title: SimpleKasPublicKey + additionalProperties: false + policy.SubjectConditionSet: + type: object + properties: + id: + type: string + title: id + subjectSets: + type: array + items: + $ref: '#/components/schemas/policy.SubjectSet' + title: subject_sets + minItems: 1 + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectConditionSet + additionalProperties: false + description: |- + A container for multiple Subject Sets, each containing Condition Groups, each + containing Conditions. Multiple Subject Sets in a SubjectConditionSet are + evaluated with AND logic. As each Subject Mapping has only one Attribute + Value, the SubjectConditionSet is reusable across multiple Subject Mappings / + Attribute Values and is an independent unit. + policy.SubjectMapping: + type: object + properties: + id: + type: string + title: id + attributeValue: + title: attribute_value + description: 'the Attribute Value mapped to; aka: "The Entity Entitlement Attribute"' + $ref: '#/components/schemas/policy.Value' + subjectConditionSet: + title: subject_condition_set + description: the reusable SubjectConditionSet mapped to the given Attribute Value + $ref: '#/components/schemas/policy.SubjectConditionSet' + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + description: The actions permitted by subjects in this mapping + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectMapping + additionalProperties: false + description: |- + Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute + value + action(s) combination + policy.SubjectProperty: + type: object + properties: + externalSelectorValue: + type: string + title: external_selector_value + minLength: 1 + externalValue: + type: string + title: external_value + title: SubjectProperty + required: + - externalSelectorValue + additionalProperties: false + description: |- + A property of a Subject/Entity as its selector expression -> value result + pair. This would mirror external user attributes retrieved from an + authoritative source such as an IDP (Identity Provider) or User Store. + Examples include such ADFS/LDAP, OKTA, etc. For now, a valid property must + contain both a selector expression & a resulting value. + + The external_selector_value is a specifier to select a value from a flattened + external representation of an Entity (such as from idP/LDAP), and the + external_value is the value selected by the external_selector_value on that + Entity Representation (Subject Context). These mirror the Condition. + policy.SubjectSet: + type: object + properties: + conditionGroups: + type: array + items: + $ref: '#/components/schemas/policy.ConditionGroup' + title: condition_groups + minItems: 1 + description: multiple Condition Groups are evaluated with AND logic + title: SubjectSet + additionalProperties: false + description: A collection of Condition Groups + policy.Value: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + value: + type: string + title: value + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: |- + Deprecated + list of key access servers + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + subjectMappings: + type: array + items: + $ref: '#/components/schemas/policy.SubjectMapping' + title: subject_mappings + description: subject mapping + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + resourceMappings: + type: array + items: + $ref: '#/components/schemas/policy.ResourceMapping' + title: resource_mappings + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Value + additionalProperties: false + policy.subjectmapping.CreateSubjectConditionSetRequest: + type: object + properties: + subjectConditionSet: + title: subject_condition_set + $ref: '#/components/schemas/policy.subjectmapping.SubjectConditionSetCreate' + title: CreateSubjectConditionSetRequest + required: + - subjectConditionSet + additionalProperties: false + policy.subjectmapping.CreateSubjectConditionSetResponse: + type: object + properties: + subjectConditionSet: + title: subject_condition_set + $ref: '#/components/schemas/policy.SubjectConditionSet' + title: CreateSubjectConditionSetResponse + additionalProperties: false + policy.subjectmapping.CreateSubjectMappingRequest: + type: object + properties: + attributeValueId: + type: string + title: attribute_value_id + format: uuid + description: |- + Required + Attribute Value to be mapped to + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + minItems: 1 + description: |+ + Required + The actions permitted by subjects in this mapping + Action name or ID must not be empty if provided: + ``` + this.all(item, item.name != '' || item.id != '') + ``` + + existingSubjectConditionSetId: + type: string + title: existing_subject_condition_set_id + description: |+ + Either of the following: + Reuse existing SubjectConditionSet (NOTE: prioritized over new_subject_condition_set) + Optional field must be a valid UUID: + ``` + size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') + ``` + + newSubjectConditionSet: + title: new_subject_condition_set + description: 'Create new SubjectConditionSet (NOTE: ignored if existing_subject_condition_set_id is provided)' + $ref: '#/components/schemas/policy.subjectmapping.SubjectConditionSetCreate' + metadata: + title: metadata + description: Optional + $ref: '#/components/schemas/common.MetadataMutable' + title: CreateSubjectMappingRequest + additionalProperties: false + policy.subjectmapping.CreateSubjectMappingResponse: + type: object + properties: + subjectMapping: + title: subject_mapping + $ref: '#/components/schemas/policy.SubjectMapping' + title: CreateSubjectMappingResponse + additionalProperties: false + policy.subjectmapping.DeleteAllUnmappedSubjectConditionSetsRequest: + type: object + title: DeleteAllUnmappedSubjectConditionSetsRequest + additionalProperties: false + description: Prune any Subject Condition Sets not utilized within a Subject Mapping + policy.subjectmapping.DeleteAllUnmappedSubjectConditionSetsResponse: + type: object + properties: + subjectConditionSets: + type: array + items: + $ref: '#/components/schemas/policy.SubjectConditionSet' + title: subject_condition_sets + description: Only IDs of any deleted Subject Condition Set provided + title: DeleteAllUnmappedSubjectConditionSetsResponse + additionalProperties: false + policy.subjectmapping.DeleteSubjectConditionSetRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: DeleteSubjectConditionSetRequest + additionalProperties: false + policy.subjectmapping.DeleteSubjectConditionSetResponse: + type: object + properties: + subjectConditionSet: + title: subject_condition_set + description: Only ID of deleted Subject Condition Set provided + $ref: '#/components/schemas/policy.SubjectConditionSet' + title: DeleteSubjectConditionSetResponse + additionalProperties: false + policy.subjectmapping.DeleteSubjectMappingRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: DeleteSubjectMappingRequest + additionalProperties: false + policy.subjectmapping.DeleteSubjectMappingResponse: + type: object + properties: + subjectMapping: + title: subject_mapping + description: Only ID of the updated Subject Mapping provided + $ref: '#/components/schemas/policy.SubjectMapping' + title: DeleteSubjectMappingResponse + additionalProperties: false + policy.subjectmapping.GetSubjectConditionSetRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: GetSubjectConditionSetRequest + additionalProperties: false + policy.subjectmapping.GetSubjectConditionSetResponse: + type: object + properties: + subjectConditionSet: + title: subject_condition_set + $ref: '#/components/schemas/policy.SubjectConditionSet' + associatedSubjectMappings: + type: array + items: + $ref: '#/components/schemas/policy.SubjectMapping' + title: associated_subject_mappings + description: contextualized Subject Mappings associated with this SubjectConditionSet + title: GetSubjectConditionSetResponse + additionalProperties: false + policy.subjectmapping.GetSubjectMappingRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: GetSubjectMappingRequest + additionalProperties: false + policy.subjectmapping.GetSubjectMappingResponse: + type: object + properties: + subjectMapping: + title: subject_mapping + $ref: '#/components/schemas/policy.SubjectMapping' + title: GetSubjectMappingResponse + additionalProperties: false + policy.subjectmapping.ListSubjectConditionSetsRequest: + type: object + properties: + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListSubjectConditionSetsRequest + additionalProperties: false + policy.subjectmapping.ListSubjectConditionSetsResponse: + type: object + properties: + subjectConditionSets: + type: array + items: + $ref: '#/components/schemas/policy.SubjectConditionSet' + title: subject_condition_sets + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListSubjectConditionSetsResponse + additionalProperties: false + policy.subjectmapping.ListSubjectMappingsRequest: + type: object + properties: + pagination: + title: pagination + description: Optional + $ref: '#/components/schemas/policy.PageRequest' + title: ListSubjectMappingsRequest + additionalProperties: false + policy.subjectmapping.ListSubjectMappingsResponse: + type: object + properties: + subjectMappings: + type: array + items: + $ref: '#/components/schemas/policy.SubjectMapping' + title: subject_mappings + pagination: + title: pagination + $ref: '#/components/schemas/policy.PageResponse' + title: ListSubjectMappingsResponse + additionalProperties: false + policy.subjectmapping.MatchSubjectMappingsRequest: + type: object + properties: + subjectProperties: + type: array + items: + $ref: '#/components/schemas/policy.SubjectProperty' + title: subject_properties + minItems: 1 + title: MatchSubjectMappingsRequest + additionalProperties: false + description: |- + MatchSubjectMappingsRequest liberally returns a list of SubjectMappings based on the provided SubjectProperties. + The SubjectMappings are returned if an external selector field matches. + policy.subjectmapping.MatchSubjectMappingsResponse: + type: object + properties: + subjectMappings: + type: array + items: + $ref: '#/components/schemas/policy.SubjectMapping' + title: subject_mappings + title: MatchSubjectMappingsResponse + additionalProperties: false + policy.subjectmapping.SubjectConditionSetCreate: + type: object + properties: + subjectSets: + type: array + items: + $ref: '#/components/schemas/policy.SubjectSet' + title: subject_sets + minItems: 1 + description: Required + metadata: + title: metadata + description: |- + Optional + Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + title: SubjectConditionSetCreate + additionalProperties: false + policy.subjectmapping.UpdateSubjectConditionSetRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + subjectSets: + type: array + items: + $ref: '#/components/schemas/policy.SubjectSet' + title: subject_sets + description: |- + Optional + If provided, replaces entire existing structure of Subject Sets, Condition Groups, & Conditions + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateSubjectConditionSetRequest + additionalProperties: false + policy.subjectmapping.UpdateSubjectConditionSetResponse: + type: object + properties: + subjectConditionSet: + title: subject_condition_set + description: Only ID of updated Subject Condition Set provided + $ref: '#/components/schemas/policy.SubjectConditionSet' + title: UpdateSubjectConditionSetResponse + additionalProperties: false + policy.subjectmapping.UpdateSubjectMappingRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + subjectConditionSetId: + type: string + title: subject_condition_set_id + description: |+ + Optional + Replaces the existing SubjectConditionSet id with a new one + Optional field must be a valid UUID: + ``` + size(this) == 0 || this.matches('[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}') + ``` + + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + description: |+ + Optional + Replaces entire list of actions permitted by subjects + Action name or ID must not be empty if provided: + ``` + this.size() == 0 || this.all(item, item.name != '' || item.id != '') + ``` + + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.MetadataMutable' + metadataUpdateBehavior: + title: metadata_update_behavior + $ref: '#/components/schemas/common.MetadataUpdateEnum' + title: UpdateSubjectMappingRequest + additionalProperties: false + policy.subjectmapping.UpdateSubjectMappingResponse: + type: object + properties: + subjectMapping: + title: subject_mapping + description: Only ID of the updated Subject Mapping provided + $ref: '#/components/schemas/policy.SubjectMapping' + title: UpdateSubjectMappingResponse + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. +security: [] +tags: + - name: policy.subjectmapping.SubjectMappingService diff --git a/specs/policy/subjectmapping/subject_mapping.swagger.json b/specs/policy/subjectmapping/subject_mapping.swagger.json new file mode 100644 index 0000000..d2e8d9f --- /dev/null +++ b/specs/policy/subjectmapping/subject_mapping.swagger.json @@ -0,0 +1,796 @@ +{ + "swagger": "2.0", + "info": { + "title": "policy/subjectmapping/subject_mapping.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "SubjectMappingService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "ActionStandardAction": { + "type": "string", + "enum": [ + "STANDARD_ACTION_UNSPECIFIED", + "STANDARD_ACTION_DECRYPT", + "STANDARD_ACTION_TRANSMIT" + ], + "default": "STANDARD_ACTION_UNSPECIFIED", + "title": "- STANDARD_ACTION_DECRYPT: Deprecated\nMigrate to 'read' action name\n - STANDARD_ACTION_TRANSMIT: Deprecated\nMigrate to 'create' action name" + }, + "commonMetadata": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "title": "created_at set by server (entity who created will recorded in an audit event)" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "title": "updated_at set by server (entity who updated will recorded in an audit event)" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional short description" + } + }, + "title": "Struct to uniquely identify a resource with optional additional metadata" + }, + "commonMetadataMutable": { + "type": "object", + "properties": { + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional labels" + } + } + }, + "commonMetadataUpdateEnum": { + "type": "string", + "enum": [ + "METADATA_UPDATE_ENUM_UNSPECIFIED", + "METADATA_UPDATE_ENUM_EXTEND", + "METADATA_UPDATE_ENUM_REPLACE" + ], + "default": "METADATA_UPDATE_ENUM_UNSPECIFIED", + "title": "- METADATA_UPDATE_ENUM_UNSPECIFIED: unspecified update type\n - METADATA_UPDATE_ENUM_EXTEND: only update the fields that are provided\n - METADATA_UPDATE_ENUM_REPLACE: replace the entire metadata with the provided metadata" + }, + "policyAction": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Generated uuid in database" + }, + "standard": { + "$ref": "#/definitions/ActionStandardAction", + "title": "Deprecated" + }, + "custom": { + "type": "string", + "title": "Deprecated" + }, + "name": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "An action an entity can take" + }, + "policyAlgorithm": { + "type": "string", + "enum": [ + "ALGORITHM_UNSPECIFIED", + "ALGORITHM_RSA_2048", + "ALGORITHM_RSA_4096", + "ALGORITHM_EC_P256", + "ALGORITHM_EC_P384", + "ALGORITHM_EC_P521" + ], + "default": "ALGORITHM_UNSPECIFIED", + "description": "Supported key algorithms." + }, + "policyAttribute": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespace": { + "$ref": "#/definitions/policyNamespace", + "title": "namespace of the attribute" + }, + "name": { + "type": "string", + "title": "attribute name" + }, + "rule": { + "$ref": "#/definitions/policyAttributeRuleTypeEnum", + "title": "attribute rule enum" + }, + "values": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyValue" + } + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "Deprecated" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys associated with the attribute" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyAttributeRuleTypeEnum": { + "type": "string", + "enum": [ + "ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED", + "ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF", + "ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF", + "ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY" + ], + "default": "ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED" + }, + "policyCondition": { + "type": "object", + "properties": { + "subjectExternalSelectorValue": { + "type": "string", + "title": "a selector for a field value on a flattened Entity Representation (such as\nfrom idP/LDAP)" + }, + "operator": { + "$ref": "#/definitions/policySubjectMappingOperatorEnum", + "title": "the evaluation operator of relation" + }, + "subjectExternalValues": { + "type": "array", + "items": { + "type": "string" + }, + "title": "list of comparison values for the result of applying the\nsubject_external_selector_value on a flattened Entity Representation\n(Subject), evaluated by the operator" + } + }, + "title": "*\nA Condition defines a rule of \u003cthe value at the flattened 'selector value'\nlocation\u003e \u003coperator\u003e \u003csubject external values\u003e" + }, + "policyConditionBooleanTypeEnum": { + "type": "string", + "enum": [ + "CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED", + "CONDITION_BOOLEAN_TYPE_ENUM_AND", + "CONDITION_BOOLEAN_TYPE_ENUM_OR" + ], + "default": "CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED" + }, + "policyConditionGroup": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyCondition" + } + }, + "booleanOperator": { + "$ref": "#/definitions/policyConditionBooleanTypeEnum", + "title": "the boolean evaluation type across the conditions" + } + }, + "title": "A collection of Conditions evaluated by the boolean_operator provided" + }, + "policyKasPublicKey": { + "type": "object", + "properties": { + "pem": { + "type": "string", + "title": "x509 ASN.1 content in PEM envelope, usually" + }, + "kid": { + "type": "string", + "title": "A unique string identifier for this key" + }, + "alg": { + "$ref": "#/definitions/policyKasPublicKeyAlgEnum", + "description": "A known algorithm type with any additional parameters encoded.\nTo start, these may be `rsa:2048` for encrypting ZTDF files and\n`ec:secp256r1` for nanoTDF, but more formats may be added as needed." + } + }, + "title": "Deprecated\nA KAS public key and some associated metadata for further identifcation" + }, + "policyKasPublicKeyAlgEnum": { + "type": "string", + "enum": [ + "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1" + ], + "default": "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED" + }, + "policyKasPublicKeySet": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKasPublicKey" + } + } + }, + "title": "Deprecated\nA list of known KAS public keys" + }, + "policyKeyAccessServer": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "uri": { + "type": "string", + "title": "Address of a KAS instance" + }, + "publicKey": { + "$ref": "#/definitions/policyPublicKey", + "title": "Deprecated" + }, + "sourceType": { + "$ref": "#/definitions/policySourceType", + "title": "The source of the KAS: (INTERNAL, EXTERNAL)" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Kas keys associated with this KAS" + }, + "name": { + "type": "string", + "title": "Optional\nUnique name of the KAS instance" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "title": "Key Access Server Registry" + }, + "policyNamespace": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "name": { + "type": "string", + "title": "used to partition Attribute Definitions, support by namespace AuthN and\nenable federation" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "KAS grants for the namespace" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys for the namespace" + } + } + }, + "policyPageRequest": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "title": "Optional\nSet to configured default limit if not provided\nMaximum limit set in platform config and enforced by services" + }, + "offset": { + "type": "integer", + "format": "int32", + "title": "Optional\nDefaulted if not provided" + } + } + }, + "policyPageResponse": { + "type": "object", + "properties": { + "currentOffset": { + "type": "integer", + "format": "int32", + "title": "Requested pagination offset" + }, + "nextOffset": { + "type": "integer", + "format": "int32", + "title": "Calculated with request limit + offset or defaults\nEmpty when none remain after current page" + }, + "total": { + "type": "integer", + "format": "int32", + "title": "Total count of entire list" + } + } + }, + "policyPublicKey": { + "type": "object", + "properties": { + "remote": { + "type": "string", + "title": "kas public key url - optional since can also be retrieved via public key" + }, + "cached": { + "$ref": "#/definitions/policyKasPublicKeySet", + "title": "public key with additional information. Current preferred version" + } + }, + "title": "Deprecated" + }, + "policyResourceMapping": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue" + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + }, + "group": { + "$ref": "#/definitions/policyResourceMappingGroup" + } + }, + "title": "Resource Mappings (aka Access Control Resource Encodings aka ACRE) are\nstructures supporting the mapping of Resources and Attribute Values" + }, + "policyResourceMappingGroup": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespaceId": { + "type": "string", + "title": "the namespace containing the group of resource mappings" + }, + "name": { + "type": "string", + "title": "the common name for the group of resource mappings, which must be unique\nper namespace" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "description": "Resource Mapping Groups are namespaced collections of Resource Mappings\nassociated under a common group name." + }, + "policySimpleKasKey": { + "type": "object", + "properties": { + "kasUri": { + "type": "string", + "title": "The URL of the Key Access Server" + }, + "publicKey": { + "$ref": "#/definitions/policySimpleKasPublicKey", + "title": "The public key of the Key that belongs to the KAS" + }, + "kasId": { + "type": "string", + "title": "The ID of the Key Access Server" + } + } + }, + "policySimpleKasPublicKey": { + "type": "object", + "properties": { + "algorithm": { + "$ref": "#/definitions/policyAlgorithm" + }, + "kid": { + "type": "string" + }, + "pem": { + "type": "string" + } + } + }, + "policySourceType": { + "type": "string", + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "SOURCE_TYPE_INTERNAL", + "SOURCE_TYPE_EXTERNAL" + ], + "default": "SOURCE_TYPE_UNSPECIFIED", + "description": "Describes whether this kas is managed by the organization or if they imported\nthe kas information from an external party. These two modes are necessary in order\nto encrypt a tdf dek with an external parties kas public key.\n\n - SOURCE_TYPE_INTERNAL: The kas is managed by the organization.\n - SOURCE_TYPE_EXTERNAL: The kas is managed by an external party." + }, + "policySubjectConditionSet": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "subjectSets": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectSet" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "description": "A container for multiple Subject Sets, each containing Condition Groups, each\ncontaining Conditions. Multiple Subject Sets in a SubjectConditionSet are\nevaluated with AND logic. As each Subject Mapping has only one Attribute\nValue, the SubjectConditionSet is reusable across multiple Subject Mappings /\nAttribute Values and is an independent unit." + }, + "policySubjectMapping": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue", + "title": "the Attribute Value mapped to; aka: \"The Entity Entitlement Attribute\"" + }, + "subjectConditionSet": { + "$ref": "#/definitions/policySubjectConditionSet", + "title": "the reusable SubjectConditionSet mapped to the given Attribute Value" + }, + "actions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyAction" + }, + "title": "The actions permitted by subjects in this mapping" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute\nvalue + action(s) combination" + }, + "policySubjectMappingOperatorEnum": { + "type": "string", + "enum": [ + "SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED", + "SUBJECT_MAPPING_OPERATOR_ENUM_IN", + "SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN", + "SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS" + ], + "default": "SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED", + "title": "- SUBJECT_MAPPING_OPERATOR_ENUM_IN: operator that returns true if a value in a list matches the string\n - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN: operator that returns true if a value is not in a list that is matched by\nstring\n - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS: operator that returns true if a value in a list contains the substring" + }, + "policySubjectProperty": { + "type": "object", + "properties": { + "externalSelectorValue": { + "type": "string" + }, + "externalValue": { + "type": "string" + } + }, + "description": "A property of a Subject/Entity as its selector expression -\u003e value result\npair. This would mirror external user attributes retrieved from an\nauthoritative source such as an IDP (Identity Provider) or User Store.\nExamples include such ADFS/LDAP, OKTA, etc. For now, a valid property must\ncontain both a selector expression \u0026 a resulting value.\n\nThe external_selector_value is a specifier to select a value from a flattened\nexternal representation of an Entity (such as from idP/LDAP), and the\nexternal_value is the value selected by the external_selector_value on that\nEntity Representation (Subject Context). These mirror the Condition." + }, + "policySubjectSet": { + "type": "object", + "properties": { + "conditionGroups": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyConditionGroup" + }, + "title": "multiple Condition Groups are evaluated with AND logic" + } + }, + "title": "A collection of Condition Groups" + }, + "policyValue": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "attribute": { + "$ref": "#/definitions/policyAttribute" + }, + "value": { + "type": "string" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "Deprecated\nlist of key access servers" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "subjectMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectMapping" + }, + "title": "subject mapping" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + } + }, + "resourceMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyResourceMapping" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "subjectmappingCreateSubjectConditionSetResponse": { + "type": "object", + "properties": { + "subjectConditionSet": { + "$ref": "#/definitions/policySubjectConditionSet" + } + } + }, + "subjectmappingCreateSubjectMappingResponse": { + "type": "object", + "properties": { + "subjectMapping": { + "$ref": "#/definitions/policySubjectMapping" + } + } + }, + "subjectmappingDeleteAllUnmappedSubjectConditionSetsResponse": { + "type": "object", + "properties": { + "subjectConditionSets": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectConditionSet" + }, + "title": "Only IDs of any deleted Subject Condition Set provided" + } + } + }, + "subjectmappingDeleteSubjectConditionSetResponse": { + "type": "object", + "properties": { + "subjectConditionSet": { + "$ref": "#/definitions/policySubjectConditionSet", + "title": "Only ID of deleted Subject Condition Set provided" + } + } + }, + "subjectmappingDeleteSubjectMappingResponse": { + "type": "object", + "properties": { + "subjectMapping": { + "$ref": "#/definitions/policySubjectMapping", + "title": "Only ID of the updated Subject Mapping provided" + } + } + }, + "subjectmappingGetSubjectConditionSetResponse": { + "type": "object", + "properties": { + "subjectConditionSet": { + "$ref": "#/definitions/policySubjectConditionSet" + }, + "associatedSubjectMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectMapping" + }, + "title": "contextualized Subject Mappings associated with this SubjectConditionSet" + } + } + }, + "subjectmappingGetSubjectMappingResponse": { + "type": "object", + "properties": { + "subjectMapping": { + "$ref": "#/definitions/policySubjectMapping" + } + } + }, + "subjectmappingListSubjectConditionSetsResponse": { + "type": "object", + "properties": { + "subjectConditionSets": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectConditionSet" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + } + }, + "subjectmappingListSubjectMappingsResponse": { + "type": "object", + "properties": { + "subjectMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectMapping" + } + }, + "pagination": { + "$ref": "#/definitions/policyPageResponse" + } + } + }, + "subjectmappingMatchSubjectMappingsResponse": { + "type": "object", + "properties": { + "subjectMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectMapping" + } + } + } + }, + "subjectmappingSubjectConditionSetCreate": { + "type": "object", + "properties": { + "subjectSets": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectSet" + }, + "title": "Required" + }, + "metadata": { + "$ref": "#/definitions/commonMetadataMutable", + "title": "Optional\nCommon metadata" + } + } + }, + "subjectmappingUpdateSubjectConditionSetResponse": { + "type": "object", + "properties": { + "subjectConditionSet": { + "$ref": "#/definitions/policySubjectConditionSet", + "title": "Only ID of updated Subject Condition Set provided" + } + } + }, + "subjectmappingUpdateSubjectMappingResponse": { + "type": "object", + "properties": { + "subjectMapping": { + "$ref": "#/definitions/policySubjectMapping", + "title": "Only ID of the updated Subject Mapping provided" + } + } + } + } +} diff --git a/specs/policy/unsafe/unsafe.openapi.yaml b/specs/policy/unsafe/unsafe.openapi.yaml new file mode 100644 index 0000000..875c41c --- /dev/null +++ b/specs/policy/unsafe/unsafe.openapi.yaml @@ -0,0 +1,1439 @@ +openapi: 3.1.0 +info: + title: policy.unsafe +paths: + /policy.unsafe.UnsafeService/UnsafeUpdateNamespace: + post: + tags: + - policy.unsafe.UnsafeService + summary: UnsafeUpdateNamespace + description: |- + --------------------------------------* + Namespace RPCs + --------------------------------------- + operationId: policy.unsafe.UnsafeService.UnsafeUpdateNamespace + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeUpdateNamespaceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeUpdateNamespaceResponse' + /policy.unsafe.UnsafeService/UnsafeReactivateNamespace: + post: + tags: + - policy.unsafe.UnsafeService + summary: UnsafeReactivateNamespace + operationId: policy.unsafe.UnsafeService.UnsafeReactivateNamespace + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeReactivateNamespaceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeReactivateNamespaceResponse' + /policy.unsafe.UnsafeService/UnsafeDeleteNamespace: + post: + tags: + - policy.unsafe.UnsafeService + summary: UnsafeDeleteNamespace + operationId: policy.unsafe.UnsafeService.UnsafeDeleteNamespace + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeDeleteNamespaceRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeDeleteNamespaceResponse' + /policy.unsafe.UnsafeService/UnsafeUpdateAttribute: + post: + tags: + - policy.unsafe.UnsafeService + summary: UnsafeUpdateAttribute + description: |- + --------------------------------------* + Attribute RPCs + --------------------------------------- + operationId: policy.unsafe.UnsafeService.UnsafeUpdateAttribute + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeUpdateAttributeRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeUpdateAttributeResponse' + /policy.unsafe.UnsafeService/UnsafeReactivateAttribute: + post: + tags: + - policy.unsafe.UnsafeService + summary: UnsafeReactivateAttribute + operationId: policy.unsafe.UnsafeService.UnsafeReactivateAttribute + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeReactivateAttributeRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeReactivateAttributeResponse' + /policy.unsafe.UnsafeService/UnsafeDeleteAttribute: + post: + tags: + - policy.unsafe.UnsafeService + summary: UnsafeDeleteAttribute + operationId: policy.unsafe.UnsafeService.UnsafeDeleteAttribute + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeDeleteAttributeRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeDeleteAttributeResponse' + /policy.unsafe.UnsafeService/UnsafeUpdateAttributeValue: + post: + tags: + - policy.unsafe.UnsafeService + summary: UnsafeUpdateAttributeValue + description: |- + --------------------------------------* + Value RPCs + --------------------------------------- + operationId: policy.unsafe.UnsafeService.UnsafeUpdateAttributeValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeUpdateAttributeValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeUpdateAttributeValueResponse' + /policy.unsafe.UnsafeService/UnsafeReactivateAttributeValue: + post: + tags: + - policy.unsafe.UnsafeService + summary: UnsafeReactivateAttributeValue + operationId: policy.unsafe.UnsafeService.UnsafeReactivateAttributeValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeReactivateAttributeValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeReactivateAttributeValueResponse' + /policy.unsafe.UnsafeService/UnsafeDeleteAttributeValue: + post: + tags: + - policy.unsafe.UnsafeService + summary: UnsafeDeleteAttributeValue + operationId: policy.unsafe.UnsafeService.UnsafeDeleteAttributeValue + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeDeleteAttributeValueRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeDeleteAttributeValueResponse' + /policy.unsafe.UnsafeService/UnsafeDeleteKasKey: + post: + tags: + - policy.unsafe.UnsafeService + summary: UnsafeDeleteKasKey + description: |- + --------------------------------------* + Kas Key RPCs + --------------------------------------- + operationId: policy.unsafe.UnsafeService.UnsafeDeleteKasKey + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeDeleteKasKeyRequest' + required: true + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/policy.unsafe.UnsafeDeleteKasKeyResponse' +components: + schemas: + policy.Action.StandardAction: + type: string + title: StandardAction + enum: + - STANDARD_ACTION_UNSPECIFIED + - STANDARD_ACTION_DECRYPT + - STANDARD_ACTION_TRANSMIT + policy.Algorithm: + type: string + title: Algorithm + enum: + - ALGORITHM_UNSPECIFIED + - ALGORITHM_RSA_2048 + - ALGORITHM_RSA_4096 + - ALGORITHM_EC_P256 + - ALGORITHM_EC_P384 + - ALGORITHM_EC_P521 + description: Supported key algorithms. + policy.AttributeRuleTypeEnum: + type: string + title: AttributeRuleTypeEnum + enum: + - ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED + - ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF + - ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF + - ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY + policy.ConditionBooleanTypeEnum: + type: string + title: ConditionBooleanTypeEnum + enum: + - CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED + - CONDITION_BOOLEAN_TYPE_ENUM_AND + - CONDITION_BOOLEAN_TYPE_ENUM_OR + policy.KasPublicKeyAlgEnum: + type: string + title: KasPublicKeyAlgEnum + enum: + - KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048 + - KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1 + - KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1 + policy.SourceType: + type: string + title: SourceType + enum: + - SOURCE_TYPE_UNSPECIFIED + - SOURCE_TYPE_INTERNAL + - SOURCE_TYPE_EXTERNAL + description: |- + Describes whether this kas is managed by the organization or if they imported + the kas information from an external party. These two modes are necessary in order + to encrypt a tdf dek with an external parties kas public key. + policy.SubjectMappingOperatorEnum: + type: string + title: SubjectMappingOperatorEnum + enum: + - SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED + - SUBJECT_MAPPING_OPERATOR_ENUM_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN + - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: created_at set by server (entity who created will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: updated_at set by server (entity who updated will recorded in an audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.BoolValue: + type: boolean + description: |- + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + google.protobuf.Timestamp: + type: string + format: date-time + description: |- + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.Action: + type: object + oneOf: + - properties: + custom: + type: string + title: custom + description: Deprecated + title: custom + required: + - custom + - properties: + standard: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + title: standard + required: + - standard + properties: + id: + type: string + title: id + description: Generated uuid in database + name: + type: string + title: name + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: Action + additionalProperties: false + description: An action an entity can take + policy.Attribute: + type: object + properties: + id: + type: string + title: id + namespace: + title: namespace + description: namespace of the attribute + $ref: '#/components/schemas/policy.Namespace' + name: + type: string + title: name + description: attribute name + rule: + title: rule + description: attribute rule enum + $ref: '#/components/schemas/policy.AttributeRuleTypeEnum' + values: + type: array + items: + $ref: '#/components/schemas/policy.Value' + title: values + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: Deprecated + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys associated with the attribute + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Attribute + required: + - rule + additionalProperties: false + policy.Condition: + type: object + properties: + subjectExternalSelectorValue: + type: string + title: subject_external_selector_value + description: |- + a selector for a field value on a flattened Entity Representation (such as + from idP/LDAP) + operator: + title: operator + description: the evaluation operator of relation + $ref: '#/components/schemas/policy.SubjectMappingOperatorEnum' + subjectExternalValues: + type: array + items: + type: string + minItems: 1 + title: subject_external_values + minItems: 1 + description: |- + list of comparison values for the result of applying the + subject_external_selector_value on a flattened Entity Representation + (Subject), evaluated by the operator + title: Condition + required: + - subjectExternalSelectorValue + - operator + additionalProperties: false + description: |- + * + A Condition defines a rule of + policy.ConditionGroup: + type: object + properties: + conditions: + type: array + items: + $ref: '#/components/schemas/policy.Condition' + title: conditions + minItems: 1 + booleanOperator: + title: boolean_operator + description: the boolean evaluation type across the conditions + $ref: '#/components/schemas/policy.ConditionBooleanTypeEnum' + title: ConditionGroup + required: + - booleanOperator + additionalProperties: false + description: A collection of Conditions evaluated by the boolean_operator provided + policy.KasPublicKey: + type: object + properties: + pem: + type: string + title: pem + maxLength: 8192 + minLength: 1 + description: x509 ASN.1 content in PEM envelope, usually + kid: + type: string + title: kid + maxLength: 32 + minLength: 1 + description: A unique string identifier for this key + alg: + not: + enum: + - 0 + title: alg + description: |- + A known algorithm type with any additional parameters encoded. + To start, these may be `rsa:2048` for encrypting ZTDF files and + `ec:secp256r1` for nanoTDF, but more formats may be added as needed. + $ref: '#/components/schemas/policy.KasPublicKeyAlgEnum' + title: KasPublicKey + additionalProperties: false + description: |- + Deprecated + A KAS public key and some associated metadata for further identifcation + policy.KasPublicKeySet: + type: object + properties: + keys: + type: array + items: + $ref: '#/components/schemas/policy.KasPublicKey' + title: keys + title: KasPublicKeySet + additionalProperties: false + description: |- + Deprecated + A list of known KAS public keys + policy.Key: + type: object + properties: + id: + type: string + title: id + description: the database record ID, not the key ID (`kid`) + isActive: + title: is_active + $ref: '#/components/schemas/google.protobuf.BoolValue' + wasMapped: + title: was_mapped + $ref: '#/components/schemas/google.protobuf.BoolValue' + publicKey: + title: public_key + $ref: '#/components/schemas/policy.KasPublicKey' + kas: + title: kas + $ref: '#/components/schemas/policy.KeyAccessServer' + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Key + additionalProperties: false + policy.KeyAccessServer: + type: object + properties: + id: + type: string + title: id + uri: + type: string + title: uri + description: |+ + Address of a KAS instance + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https?://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(:[0-9]+)?(/.*)?$') + ``` + + publicKey: + title: public_key + description: Deprecated + $ref: '#/components/schemas/policy.PublicKey' + sourceType: + title: source_type + description: 'The source of the KAS: (INTERNAL, EXTERNAL)' + $ref: '#/components/schemas/policy.SourceType' + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Kas keys associated with this KAS + name: + type: string + title: name + description: |- + Optional + Unique name of the KAS instance + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: KeyAccessServer + additionalProperties: false + description: Key Access Server Registry + policy.Namespace: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + name: + type: string + title: name + description: |- + used to partition Attribute Definitions, support by namespace AuthN and + enable federation + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: KAS grants for the namespace + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + description: Keys for the namespace + title: Namespace + additionalProperties: false + policy.PublicKey: + type: object + oneOf: + - properties: + cached: + title: cached + description: public key with additional information. Current preferred version + $ref: '#/components/schemas/policy.KasPublicKeySet' + title: cached + required: + - cached + - properties: + remote: + type: string + title: remote + description: |+ + kas public key url - optional since can also be retrieved via public key + URI must be a valid URL (e.g., 'https://demo.com/') followed by additional segments. Each segment must start and end with an alphanumeric character, can contain hyphens, alphanumeric characters, and slashes.: + ``` + this.matches('^https://[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?)*(/.*)?$') + ``` + + title: remote + required: + - remote + title: PublicKey + additionalProperties: false + description: Deprecated + policy.ResourceMapping: + type: object + properties: + id: + type: string + title: id + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + attributeValue: + title: attribute_value + $ref: '#/components/schemas/policy.Value' + terms: + type: array + items: + type: string + title: terms + group: + title: group + $ref: '#/components/schemas/policy.ResourceMappingGroup' + title: ResourceMapping + required: + - attributeValue + additionalProperties: false + description: |- + Resource Mappings (aka Access Control Resource Encodings aka ACRE) are + structures supporting the mapping of Resources and Attribute Values + policy.ResourceMappingGroup: + type: object + properties: + id: + type: string + title: id + namespaceId: + type: string + title: namespace_id + description: the namespace containing the group of resource mappings + name: + type: string + title: name + description: |- + the common name for the group of resource mappings, which must be unique + per namespace + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: ResourceMappingGroup + required: + - namespaceId + - name + additionalProperties: false + description: |- + Resource Mapping Groups are namespaced collections of Resource Mappings + associated under a common group name. + policy.SimpleKasKey: + type: object + properties: + kasUri: + type: string + title: kas_uri + description: The URL of the Key Access Server + publicKey: + title: public_key + description: The public key of the Key that belongs to the KAS + $ref: '#/components/schemas/policy.SimpleKasPublicKey' + kasId: + type: string + title: kas_id + description: The ID of the Key Access Server + title: SimpleKasKey + additionalProperties: false + policy.SimpleKasPublicKey: + type: object + properties: + algorithm: + title: algorithm + $ref: '#/components/schemas/policy.Algorithm' + kid: + type: string + title: kid + pem: + type: string + title: pem + title: SimpleKasPublicKey + additionalProperties: false + policy.SubjectConditionSet: + type: object + properties: + id: + type: string + title: id + subjectSets: + type: array + items: + $ref: '#/components/schemas/policy.SubjectSet' + title: subject_sets + minItems: 1 + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectConditionSet + additionalProperties: false + description: |- + A container for multiple Subject Sets, each containing Condition Groups, each + containing Conditions. Multiple Subject Sets in a SubjectConditionSet are + evaluated with AND logic. As each Subject Mapping has only one Attribute + Value, the SubjectConditionSet is reusable across multiple Subject Mappings / + Attribute Values and is an independent unit. + policy.SubjectMapping: + type: object + properties: + id: + type: string + title: id + attributeValue: + title: attribute_value + description: 'the Attribute Value mapped to; aka: "The Entity Entitlement Attribute"' + $ref: '#/components/schemas/policy.Value' + subjectConditionSet: + title: subject_condition_set + description: the reusable SubjectConditionSet mapped to the given Attribute Value + $ref: '#/components/schemas/policy.SubjectConditionSet' + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + description: The actions permitted by subjects in this mapping + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: SubjectMapping + additionalProperties: false + description: |- + Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute + value + action(s) combination + policy.SubjectSet: + type: object + properties: + conditionGroups: + type: array + items: + $ref: '#/components/schemas/policy.ConditionGroup' + title: condition_groups + minItems: 1 + description: multiple Condition Groups are evaluated with AND logic + title: SubjectSet + additionalProperties: false + description: A collection of Condition Groups + policy.Value: + type: object + properties: + id: + type: string + title: id + description: generated uuid in database + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + value: + type: string + title: value + grants: + type: array + items: + $ref: '#/components/schemas/policy.KeyAccessServer' + title: grants + description: |- + Deprecated + list of key access servers + fqn: + type: string + title: fqn + active: + title: active + description: active by default until explicitly deactivated + $ref: '#/components/schemas/google.protobuf.BoolValue' + subjectMappings: + type: array + items: + $ref: '#/components/schemas/policy.SubjectMapping' + title: subject_mappings + description: subject mapping + kasKeys: + type: array + items: + $ref: '#/components/schemas/policy.SimpleKasKey' + title: kas_keys + resourceMappings: + type: array + items: + $ref: '#/components/schemas/policy.ResourceMapping' + title: resource_mappings + metadata: + title: metadata + description: Common metadata + $ref: '#/components/schemas/common.Metadata' + title: Value + additionalProperties: false + policy.unsafe.UnsafeDeleteAttributeRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: |- + Required + UUID of the Attribute + fqn: + type: string + title: fqn + description: |- + Required + Fully Qualified Name (FQN) of Attribute Definition (i.e. https:///attr/), normalized to lower case. + title: UnsafeDeleteAttributeRequest + required: + - fqn + additionalProperties: false + description: |- + WARNING!! + Deleting an Attribute will free up the Attribute name for reuse, which can introduce an access path to existing TDFs containing the deleted Attribute name. + Values under this Attribute will be cascadingly deleted. + Any KAS Grants associated with this Attribute will be cascadingly deleted. + policy.unsafe.UnsafeDeleteAttributeResponse: + type: object + properties: + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + title: UnsafeDeleteAttributeResponse + additionalProperties: false + policy.unsafe.UnsafeDeleteAttributeValueRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: |- + Required + UUID of the Attribute Value + fqn: + type: string + title: fqn + description: |- + Required + Fully Qualified Name (FQN) of Attribute Value (i.e. https:///attr//value/), normalized to lower case. + title: UnsafeDeleteAttributeValueRequest + required: + - fqn + additionalProperties: false + description: |- + WARNING!! + Deleting an Attribute Value will free up the Attribute Value for reuse, which can introduce an access path to existing TDFs containing the deleted Attribute Value. + Any KAS Grants associated with this Attribute Value will be cascadingly deleted. + policy.unsafe.UnsafeDeleteAttributeValueResponse: + type: object + properties: + value: + title: value + $ref: '#/components/schemas/policy.Value' + title: UnsafeDeleteAttributeValueResponse + additionalProperties: false + policy.unsafe.UnsafeDeleteKasKeyRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: |- + Required + UUID of the Key + title: UnsafeDeleteKasKeyRequest + additionalProperties: false + description: WARNING!! + policy.unsafe.UnsafeDeleteKasKeyResponse: + type: object + properties: + key: + title: key + $ref: '#/components/schemas/policy.Key' + title: UnsafeDeleteKasKeyResponse + additionalProperties: false + policy.unsafe.UnsafeDeleteNamespaceRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: |- + Required + UUID of the Namespace + fqn: + type: string + title: fqn + description: |- + Required + Fully Qualified Name (FQN) of Namespace (i.e. https://), normalized to lower case. + title: UnsafeDeleteNamespaceRequest + required: + - fqn + additionalProperties: false + description: |- + WARNING!! + Deleting a Namespace will free up the Attribute Namespace, Definitions, and Values for reuse, which can introduce an access path to existing TDFs containing the deleted policy. + Definitions and their Values under this Namespace will be cascadingly deleted. + policy.unsafe.UnsafeDeleteNamespaceResponse: + type: object + properties: + namespace: + title: namespace + $ref: '#/components/schemas/policy.Namespace' + title: UnsafeDeleteNamespaceResponse + additionalProperties: false + policy.unsafe.UnsafeReactivateAttributeRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: UnsafeReactivateAttributeRequest + additionalProperties: false + description: |- + WARNING!! + Reactivating an Attribute can potentially open up an access path to existing TDFs containing the Attribute name. + Active state of any Values under this Attribute Definition will NOT be changed. + policy.unsafe.UnsafeReactivateAttributeResponse: + type: object + properties: + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + title: UnsafeReactivateAttributeResponse + additionalProperties: false + policy.unsafe.UnsafeReactivateAttributeValueRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: UnsafeReactivateAttributeValueRequest + additionalProperties: false + description: |- + WARNING!! + Reactivating an Attribute Value can potentially open up an access path to existing TDFs containing the Attribute Value. + policy.unsafe.UnsafeReactivateAttributeValueResponse: + type: object + properties: + value: + title: value + $ref: '#/components/schemas/policy.Value' + title: UnsafeReactivateAttributeValueResponse + additionalProperties: false + policy.unsafe.UnsafeReactivateNamespaceRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + title: UnsafeReactivateNamespaceRequest + additionalProperties: false + description: |- + WARNING!! + Reactivating a Namespace can potentially open up an access path to existing TDFs containing any Attributes under the Namespace. + Active state of any Definitions and their Values under this Namespace will NOT be changed. + policy.unsafe.UnsafeReactivateNamespaceResponse: + type: object + properties: + namespace: + title: namespace + $ref: '#/components/schemas/policy.Namespace' + title: UnsafeReactivateNamespaceResponse + additionalProperties: false + policy.unsafe.UnsafeUpdateAttributeRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + name: + type: string + title: name + maxLength: 253 + description: |+ + Optional + WARNING!! + Updating the name of an Attribute will retroactively alter access to existing TDFs of the old and new Attribute name. + Attribute name must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored attribute name will be normalized to lower case.: + ``` + size(this) > 0 ? this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') : true + ``` + + rule: + title: rule + description: |- + Optional + WARNING!! + Updating the rule of an Attribute will retroactively alter access to existing TDFs of the Attribute name. + $ref: '#/components/schemas/policy.AttributeRuleTypeEnum' + valuesOrder: + type: array + items: + type: string + title: values_order + description: |- + Optional + WARNING!! + Unsafe reordering requires the full list of values in the new order they should be stored. Updating the order of values in a HIERARCHY-rule Attribute Definition + will retroactively alter access to existing TDFs containing those values. Replacing values on an attribute in place is not supported; values can be unsafely deleted + deleted, created, and unsafely re-ordered as necessary. + title: UnsafeUpdateAttributeRequest + additionalProperties: false + description: |- + WARNING!! + Updating an Attribute can have dangerous consequences. Use with caution. + policy.unsafe.UnsafeUpdateAttributeResponse: + type: object + properties: + attribute: + title: attribute + $ref: '#/components/schemas/policy.Attribute' + title: UnsafeUpdateAttributeResponse + additionalProperties: false + policy.unsafe.UnsafeUpdateAttributeValueRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + value: + type: string + title: value + maxLength: 253 + description: |+ + Required + Attribute Value must be an alphanumeric string, allowing hyphens and underscores but not as the first or last character. The stored attribute value will be normalized to lower case.: + ``` + this.matches('^[a-zA-Z0-9](?:[a-zA-Z0-9_-]*[a-zA-Z0-9])?$') + ``` + + title: UnsafeUpdateAttributeValueRequest + additionalProperties: false + description: |- + WARNING!! + Updating an Attribute Value will retroactively alter access to existing TDFs containing the old and new Attribute Value. + policy.unsafe.UnsafeUpdateAttributeValueResponse: + type: object + properties: + value: + title: value + $ref: '#/components/schemas/policy.Value' + title: UnsafeUpdateAttributeValueResponse + additionalProperties: false + policy.unsafe.UnsafeUpdateNamespaceRequest: + type: object + properties: + id: + type: string + title: id + format: uuid + description: Required + name: + type: string + title: name + maxLength: 253 + description: |+ + Required + Namespace must be a valid hostname. It should include at least one dot, with each segment (label) starting and ending with an alphanumeric character. Each label must be 1 to 63 characters long, allowing hyphens but not as the first or last character. The top-level domain (the last segment after the final dot) must consist of at least two alphabetic characters. The stored namespace will be normalized to lower case.: + ``` + this.matches('^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$') + ``` + + title: UnsafeUpdateNamespaceRequest + additionalProperties: false + description: |- + WARNING!! + Updating the Namespace of an Attribute will retroactively alter access to existing TDFs of the old and new Namespace name. + Existing Attribute Definitions and their Values under the Namespace will now be associated with the new Namespace name. + policy.unsafe.UnsafeUpdateNamespaceResponse: + type: object + properties: + namespace: + title: namespace + $ref: '#/components/schemas/policy.Namespace' + title: UnsafeUpdateNamespaceResponse + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. +security: [] +tags: + - name: policy.unsafe.UnsafeService + description: |- + / + / Unsafe Service + / diff --git a/specs/policy/unsafe/unsafe.swagger.json b/specs/policy/unsafe/unsafe.swagger.json new file mode 100644 index 0000000..2a81e58 --- /dev/null +++ b/specs/policy/unsafe/unsafe.swagger.json @@ -0,0 +1,684 @@ +{ + "swagger": "2.0", + "info": { + "title": "policy/unsafe/unsafe.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "UnsafeService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": {}, + "definitions": { + "ActionStandardAction": { + "type": "string", + "enum": [ + "STANDARD_ACTION_UNSPECIFIED", + "STANDARD_ACTION_DECRYPT", + "STANDARD_ACTION_TRANSMIT" + ], + "default": "STANDARD_ACTION_UNSPECIFIED", + "title": "- STANDARD_ACTION_DECRYPT: Deprecated\nMigrate to 'read' action name\n - STANDARD_ACTION_TRANSMIT: Deprecated\nMigrate to 'create' action name" + }, + "commonMetadata": { + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "format": "date-time", + "title": "created_at set by server (entity who created will recorded in an audit event)" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "title": "updated_at set by server (entity who updated will recorded in an audit event)" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "optional short description" + } + }, + "title": "Struct to uniquely identify a resource with optional additional metadata" + }, + "policyAction": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Generated uuid in database" + }, + "standard": { + "$ref": "#/definitions/ActionStandardAction", + "title": "Deprecated" + }, + "custom": { + "type": "string", + "title": "Deprecated" + }, + "name": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "An action an entity can take" + }, + "policyAlgorithm": { + "type": "string", + "enum": [ + "ALGORITHM_UNSPECIFIED", + "ALGORITHM_RSA_2048", + "ALGORITHM_RSA_4096", + "ALGORITHM_EC_P256", + "ALGORITHM_EC_P384", + "ALGORITHM_EC_P521" + ], + "default": "ALGORITHM_UNSPECIFIED", + "description": "Supported key algorithms." + }, + "policyAttribute": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespace": { + "$ref": "#/definitions/policyNamespace", + "title": "namespace of the attribute" + }, + "name": { + "type": "string", + "title": "attribute name" + }, + "rule": { + "$ref": "#/definitions/policyAttributeRuleTypeEnum", + "title": "attribute rule enum" + }, + "values": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyValue" + } + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "Deprecated" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys associated with the attribute" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyAttributeRuleTypeEnum": { + "type": "string", + "enum": [ + "ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED", + "ATTRIBUTE_RULE_TYPE_ENUM_ALL_OF", + "ATTRIBUTE_RULE_TYPE_ENUM_ANY_OF", + "ATTRIBUTE_RULE_TYPE_ENUM_HIERARCHY" + ], + "default": "ATTRIBUTE_RULE_TYPE_ENUM_UNSPECIFIED" + }, + "policyCondition": { + "type": "object", + "properties": { + "subjectExternalSelectorValue": { + "type": "string", + "title": "a selector for a field value on a flattened Entity Representation (such as\nfrom idP/LDAP)" + }, + "operator": { + "$ref": "#/definitions/policySubjectMappingOperatorEnum", + "title": "the evaluation operator of relation" + }, + "subjectExternalValues": { + "type": "array", + "items": { + "type": "string" + }, + "title": "list of comparison values for the result of applying the\nsubject_external_selector_value on a flattened Entity Representation\n(Subject), evaluated by the operator" + } + }, + "title": "*\nA Condition defines a rule of \u003cthe value at the flattened 'selector value'\nlocation\u003e \u003coperator\u003e \u003csubject external values\u003e" + }, + "policyConditionBooleanTypeEnum": { + "type": "string", + "enum": [ + "CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED", + "CONDITION_BOOLEAN_TYPE_ENUM_AND", + "CONDITION_BOOLEAN_TYPE_ENUM_OR" + ], + "default": "CONDITION_BOOLEAN_TYPE_ENUM_UNSPECIFIED" + }, + "policyConditionGroup": { + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyCondition" + } + }, + "booleanOperator": { + "$ref": "#/definitions/policyConditionBooleanTypeEnum", + "title": "the boolean evaluation type across the conditions" + } + }, + "title": "A collection of Conditions evaluated by the boolean_operator provided" + }, + "policyKasPublicKey": { + "type": "object", + "properties": { + "pem": { + "type": "string", + "title": "x509 ASN.1 content in PEM envelope, usually" + }, + "kid": { + "type": "string", + "title": "A unique string identifier for this key" + }, + "alg": { + "$ref": "#/definitions/policyKasPublicKeyAlgEnum", + "description": "A known algorithm type with any additional parameters encoded.\nTo start, these may be `rsa:2048` for encrypting ZTDF files and\n`ec:secp256r1` for nanoTDF, but more formats may be added as needed." + } + }, + "title": "Deprecated\nA KAS public key and some associated metadata for further identifcation" + }, + "policyKasPublicKeyAlgEnum": { + "type": "string", + "enum": [ + "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_2048", + "KAS_PUBLIC_KEY_ALG_ENUM_RSA_4096", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP256R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP384R1", + "KAS_PUBLIC_KEY_ALG_ENUM_EC_SECP521R1" + ], + "default": "KAS_PUBLIC_KEY_ALG_ENUM_UNSPECIFIED" + }, + "policyKasPublicKeySet": { + "type": "object", + "properties": { + "keys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKasPublicKey" + } + } + }, + "title": "Deprecated\nA list of known KAS public keys" + }, + "policyKey": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "the database record ID, not the key ID (`kid`)" + }, + "isActive": { + "type": "boolean" + }, + "wasMapped": { + "type": "boolean" + }, + "publicKey": { + "$ref": "#/definitions/policyKasPublicKey" + }, + "kas": { + "$ref": "#/definitions/policyKeyAccessServer" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "policyKeyAccessServer": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "uri": { + "type": "string", + "title": "Address of a KAS instance" + }, + "publicKey": { + "$ref": "#/definitions/policyPublicKey", + "title": "Deprecated" + }, + "sourceType": { + "$ref": "#/definitions/policySourceType", + "title": "The source of the KAS: (INTERNAL, EXTERNAL)" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Kas keys associated with this KAS" + }, + "name": { + "type": "string", + "title": "Optional\nUnique name of the KAS instance" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "title": "Key Access Server Registry" + }, + "policyNamespace": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "name": { + "type": "string", + "title": "used to partition Attribute Definitions, support by namespace AuthN and\nenable federation" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "KAS grants for the namespace" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + }, + "title": "Keys for the namespace" + } + } + }, + "policyPublicKey": { + "type": "object", + "properties": { + "remote": { + "type": "string", + "title": "kas public key url - optional since can also be retrieved via public key" + }, + "cached": { + "$ref": "#/definitions/policyKasPublicKeySet", + "title": "public key with additional information. Current preferred version" + } + }, + "title": "Deprecated" + }, + "policyResourceMapping": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue" + }, + "terms": { + "type": "array", + "items": { + "type": "string" + } + }, + "group": { + "$ref": "#/definitions/policyResourceMappingGroup" + } + }, + "title": "Resource Mappings (aka Access Control Resource Encodings aka ACRE) are\nstructures supporting the mapping of Resources and Attribute Values" + }, + "policyResourceMappingGroup": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "namespaceId": { + "type": "string", + "title": "the namespace containing the group of resource mappings" + }, + "name": { + "type": "string", + "title": "the common name for the group of resource mappings, which must be unique\nper namespace" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + }, + "description": "Resource Mapping Groups are namespaced collections of Resource Mappings\nassociated under a common group name." + }, + "policySimpleKasKey": { + "type": "object", + "properties": { + "kasUri": { + "type": "string", + "title": "The URL of the Key Access Server" + }, + "publicKey": { + "$ref": "#/definitions/policySimpleKasPublicKey", + "title": "The public key of the Key that belongs to the KAS" + }, + "kasId": { + "type": "string", + "title": "The ID of the Key Access Server" + } + } + }, + "policySimpleKasPublicKey": { + "type": "object", + "properties": { + "algorithm": { + "$ref": "#/definitions/policyAlgorithm" + }, + "kid": { + "type": "string" + }, + "pem": { + "type": "string" + } + } + }, + "policySourceType": { + "type": "string", + "enum": [ + "SOURCE_TYPE_UNSPECIFIED", + "SOURCE_TYPE_INTERNAL", + "SOURCE_TYPE_EXTERNAL" + ], + "default": "SOURCE_TYPE_UNSPECIFIED", + "description": "Describes whether this kas is managed by the organization or if they imported\nthe kas information from an external party. These two modes are necessary in order\nto encrypt a tdf dek with an external parties kas public key.\n\n - SOURCE_TYPE_INTERNAL: The kas is managed by the organization.\n - SOURCE_TYPE_EXTERNAL: The kas is managed by an external party." + }, + "policySubjectConditionSet": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "subjectSets": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectSet" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "description": "A container for multiple Subject Sets, each containing Condition Groups, each\ncontaining Conditions. Multiple Subject Sets in a SubjectConditionSet are\nevaluated with AND logic. As each Subject Mapping has only one Attribute\nValue, the SubjectConditionSet is reusable across multiple Subject Mappings /\nAttribute Values and is an independent unit." + }, + "policySubjectMapping": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "attributeValue": { + "$ref": "#/definitions/policyValue", + "title": "the Attribute Value mapped to; aka: \"The Entity Entitlement Attribute\"" + }, + "subjectConditionSet": { + "$ref": "#/definitions/policySubjectConditionSet", + "title": "the reusable SubjectConditionSet mapped to the given Attribute Value" + }, + "actions": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyAction" + }, + "title": "The actions permitted by subjects in this mapping" + }, + "metadata": { + "$ref": "#/definitions/commonMetadata" + } + }, + "title": "Subject Mapping: A Policy assigning Subject Set(s) to a permitted attribute\nvalue + action(s) combination" + }, + "policySubjectMappingOperatorEnum": { + "type": "string", + "enum": [ + "SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED", + "SUBJECT_MAPPING_OPERATOR_ENUM_IN", + "SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN", + "SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS" + ], + "default": "SUBJECT_MAPPING_OPERATOR_ENUM_UNSPECIFIED", + "title": "- SUBJECT_MAPPING_OPERATOR_ENUM_IN: operator that returns true if a value in a list matches the string\n - SUBJECT_MAPPING_OPERATOR_ENUM_NOT_IN: operator that returns true if a value is not in a list that is matched by\nstring\n - SUBJECT_MAPPING_OPERATOR_ENUM_IN_CONTAINS: operator that returns true if a value in a list contains the substring" + }, + "policySubjectSet": { + "type": "object", + "properties": { + "conditionGroups": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyConditionGroup" + }, + "title": "multiple Condition Groups are evaluated with AND logic" + } + }, + "title": "A collection of Condition Groups" + }, + "policyValue": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "generated uuid in database" + }, + "attribute": { + "$ref": "#/definitions/policyAttribute" + }, + "value": { + "type": "string" + }, + "grants": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyKeyAccessServer" + }, + "title": "Deprecated\nlist of key access servers" + }, + "fqn": { + "type": "string" + }, + "active": { + "type": "boolean", + "title": "active by default until explicitly deactivated" + }, + "subjectMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySubjectMapping" + }, + "title": "subject mapping" + }, + "kasKeys": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policySimpleKasKey" + } + }, + "resourceMappings": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/policyResourceMapping" + } + }, + "metadata": { + "$ref": "#/definitions/commonMetadata", + "title": "Common metadata" + } + } + }, + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "unsafeUnsafeDeleteAttributeResponse": { + "type": "object", + "properties": { + "attribute": { + "$ref": "#/definitions/policyAttribute" + } + } + }, + "unsafeUnsafeDeleteAttributeValueResponse": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/policyValue" + } + } + }, + "unsafeUnsafeDeleteKasKeyResponse": { + "type": "object", + "properties": { + "key": { + "$ref": "#/definitions/policyKey" + } + } + }, + "unsafeUnsafeDeleteNamespaceResponse": { + "type": "object", + "properties": { + "namespace": { + "$ref": "#/definitions/policyNamespace" + } + } + }, + "unsafeUnsafeReactivateAttributeResponse": { + "type": "object", + "properties": { + "attribute": { + "$ref": "#/definitions/policyAttribute" + } + } + }, + "unsafeUnsafeReactivateAttributeValueResponse": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/policyValue" + } + } + }, + "unsafeUnsafeReactivateNamespaceResponse": { + "type": "object", + "properties": { + "namespace": { + "$ref": "#/definitions/policyNamespace" + } + } + }, + "unsafeUnsafeUpdateAttributeResponse": { + "type": "object", + "properties": { + "attribute": { + "$ref": "#/definitions/policyAttribute" + } + } + }, + "unsafeUnsafeUpdateAttributeValueResponse": { + "type": "object", + "properties": { + "value": { + "$ref": "#/definitions/policyValue" + } + } + }, + "unsafeUnsafeUpdateNamespaceResponse": { + "type": "object", + "properties": { + "namespace": { + "$ref": "#/definitions/policyNamespace" + } + } + } + } +} diff --git a/specs/wellknownconfiguration/wellknown_configuration.openapi.yaml b/specs/wellknownconfiguration/wellknown_configuration.openapi.yaml new file mode 100644 index 0000000..dcac72a --- /dev/null +++ b/specs/wellknownconfiguration/wellknown_configuration.openapi.yaml @@ -0,0 +1,184 @@ +openapi: 3.1.0 +info: + title: wellknownconfiguration +paths: + /.well-known/opentdf-configuration: + get: + tags: + - wellknownconfiguration.WellKnownService + summary: GetWellKnownConfiguration + operationId: wellknownconfiguration.WellKnownService.GetWellKnownConfiguration + responses: + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + "200": + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/wellknownconfiguration.GetWellKnownConfigurationResponse' +components: + schemas: + google.protobuf.NullValue: + type: string + title: NullValue + enum: + - NULL_VALUE + description: |- + `NullValue` is a singleton enumeration to represent the null value for the + `Value` type union. + + The JSON representation for `NullValue` is JSON `null`. + google.protobuf.ListValue: + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Value' + title: values + description: Repeated field of dynamically typed values. + title: ListValue + additionalProperties: false + description: |- + `ListValue` is a wrapper around a repeated field of values. + + The JSON representation for `ListValue` is JSON array. + google.protobuf.Struct: + type: object + additionalProperties: + $ref: '#/components/schemas/google.protobuf.Value' + description: |- + `Struct` represents a structured data value, consisting of fields + which map to dynamically typed values. In some languages, `Struct` + might be supported by a native representation. For example, in + scripting languages like JS a struct is represented as an + object. The details of that representation are described together + with the proto support for the language. + + The JSON representation for `Struct` is JSON object. + google.protobuf.Struct.FieldsEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + title: FieldsEntry + additionalProperties: false + google.protobuf.Value: + oneOf: + - type: "null" + - type: number + - type: string + - type: boolean + - type: array + - type: object + additionalProperties: true + description: |- + `Value` represents a dynamically typed value which can be either + null, a number, a string, a boolean, a recursive struct value, or a + list of values. A producer of value is expected to set one of these + variants. Absence of any variant indicates an error. + + The JSON representation for `Value` is JSON value. + wellknownconfiguration.GetWellKnownConfigurationRequest: + type: object + title: GetWellKnownConfigurationRequest + additionalProperties: false + wellknownconfiguration.GetWellKnownConfigurationResponse: + type: object + properties: + configuration: + title: configuration + $ref: '#/components/schemas/google.protobuf.Struct' + title: GetWellKnownConfigurationResponse + additionalProperties: false + wellknownconfiguration.WellKnownConfig: + type: object + properties: + configuration: + type: object + title: configuration + additionalProperties: + title: value + $ref: '#/components/schemas/google.protobuf.Struct' + title: WellKnownConfig + additionalProperties: false + wellknownconfiguration.WellKnownConfig.ConfigurationEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Struct' + title: ConfigurationEntry + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation' + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. +security: [] +tags: + - name: wellknownconfiguration.WellKnownService diff --git a/specs/wellknownconfiguration/wellknown_configuration.swagger.json b/specs/wellknownconfiguration/wellknown_configuration.swagger.json new file mode 100644 index 0000000..67a884d --- /dev/null +++ b/specs/wellknownconfiguration/wellknown_configuration.swagger.json @@ -0,0 +1,90 @@ +{ + "swagger": "2.0", + "info": { + "title": "wellknownconfiguration/wellknown_configuration.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "WellKnownService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/.well-known/opentdf-configuration": { + "get": { + "operationId": "WellKnownService_GetWellKnownConfiguration", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/wellknownconfigurationGetWellKnownConfigurationResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "WellKnownService" + ] + } + } + }, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n // or ...\n if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n foo = any.unpack(Foo.getDefaultInstance());\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "protobufNullValue": { + "type": "string", + "enum": [ + "NULL_VALUE" + ], + "default": "NULL_VALUE", + "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "wellknownconfigurationGetWellKnownConfigurationResponse": { + "type": "object", + "properties": { + "configuration": { + "type": "object" + } + } + } + } +} From 9c1f61030c42ac1a1782c355834e1e20150a2818 Mon Sep 17 00:00:00 2001 From: b-long Date: Fri, 6 Jun 2025 10:33:11 -0400 Subject: [PATCH 06/37] WIP: Configuration --- docusaurus.config.ts | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 98599db..be7ae0e 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -69,7 +69,7 @@ const config: Config = { docs: { routeBasePath: "/", sidebarPath: "./sidebars.js", - // docItemComponent: "@theme/ApiItem", // Derived from docusaurus-theme-openapi + docItemComponent: "@theme/ApiItem", // Derived from docusaurus-theme-openapi // Please change this to your repo. // Remove this to remove the "edit this page" links. // editUrl: @@ -744,6 +744,27 @@ ${updatedContent}`, id: "api", // plugin id docsPluginId: "classic", // configured for preset-classic config: { + authorization: { // Unique key + specPath: "./specs/authorization/authorization.swagger.json", + outputDir: "docs/openapi/authorization/", + sidebarOptions: { + groupPathsBy: "tag", + }, + } satisfies OpenApiPlugin.Options, + authorization_v2: { // Unique key + specPath: "./specs/authorization/v2/authorization.swagger.json", + outputDir: "docs/openapi/authorization/v2/", + sidebarOptions: { + groupPathsBy: "tag", + }, + } satisfies OpenApiPlugin.Options, + common: { // Unique key + specPath: "./specs/common/common.swagger.json", + outputDir: "docs/openapi/common/", + sidebarOptions: { + groupPathsBy: "tag", + }, + } satisfies OpenApiPlugin.Options, // kas: { // Unique key for the KAS API // specPath: "./specs/kas.openapi.yaml", // // outputDir: "docs/api/kas/", // Output directory for KAS API docs @@ -752,14 +773,7 @@ ${updatedContent}`, // groupPathsBy: "tag", // }, // } satisfies OpenApiPlugin.Options, - authorization: { // Unique key for the KAS API - specPath: "./specs/authorization.swagger.json", - // outputDir: "docs/api/kas/", // Output directory for KAS API docs - outputDir: "docs/openapi/", - sidebarOptions: { - groupPathsBy: "tag", - }, - } satisfies OpenApiPlugin.Options, + // Add more entries here for other OpenAPI specs from the platform as needed }, From b4824abc209cf08bb58ff7fba845a5a01eff0cce Mon Sep 17 00:00:00 2001 From: b-long Date: Fri, 6 Jun 2025 11:24:36 -0400 Subject: [PATCH 07/37] Adjust 'vale' config --- .github/workflows/vale.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vale.yaml b/.github/workflows/vale.yaml index 05f5fae..1be2444 100644 --- a/.github/workflows/vale.yaml +++ b/.github/workflows/vale.yaml @@ -14,4 +14,4 @@ jobs: - uses: errata-ai/vale-action@v2.1.1 with: filter_mode: added - vale_flags: "--glob=!blog/* --config=.vale.ini" + vale_flags: "--glob=!{specs,blog/}* --config=.vale.ini" From 8eae92e1fb5f8e2322b5c15267bf34bcb87c43d3 Mon Sep 17 00:00:00 2001 From: b-long Date: Fri, 6 Jun 2025 11:29:16 -0400 Subject: [PATCH 08/37] Disable false-positive machine --- .github/workflows/vale.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/vale.yaml b/.github/workflows/vale.yaml index 1be2444..3a1511f 100644 --- a/.github/workflows/vale.yaml +++ b/.github/workflows/vale.yaml @@ -3,7 +3,7 @@ name: Vale on: pull_request: branches: - - main + - disabled jobs: vale-check: @@ -14,4 +14,4 @@ jobs: - uses: errata-ai/vale-action@v2.1.1 with: filter_mode: added - vale_flags: "--glob=!{specs,blog/}* --config=.vale.ini" + vale_flags: "--glob=!blog/* --config=.vale.ini" From a1af6a5383ca58cd370c8253860542773e531d92 Mon Sep 17 00:00:00 2001 From: b-long Date: Fri, 6 Jun 2025 11:54:06 -0400 Subject: [PATCH 09/37] Hard-code to each using the same outputDir --- docusaurus.config.ts | 45 +++++++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index be7ae0e..3d967cf 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -746,34 +746,53 @@ ${updatedContent}`, config: { authorization: { // Unique key specPath: "./specs/authorization/authorization.swagger.json", - outputDir: "docs/openapi/authorization/", + outputDir: "docs/openapi/", sidebarOptions: { groupPathsBy: "tag", }, } satisfies OpenApiPlugin.Options, authorization_v2: { // Unique key specPath: "./specs/authorization/v2/authorization.swagger.json", - outputDir: "docs/openapi/authorization/v2/", + outputDir: "docs/openapi/", sidebarOptions: { groupPathsBy: "tag", }, } satisfies OpenApiPlugin.Options, common: { // Unique key specPath: "./specs/common/common.swagger.json", - outputDir: "docs/openapi/common/", + outputDir: "docs/openapi/", sidebarOptions: { groupPathsBy: "tag", }, - } satisfies OpenApiPlugin.Options, - // kas: { // Unique key for the KAS API - // specPath: "./specs/kas.openapi.yaml", - // // outputDir: "docs/api/kas/", // Output directory for KAS API docs - // outputDir: "docs/spec/", - // sidebarOptions: { - // groupPathsBy: "tag", - // }, - // } satisfies OpenApiPlugin.Options, - + } satisfies OpenApiPlugin.Options, + entity: { // Unique key + specPath: "./specs/entity/entity.swagger.json", + outputDir: "docs/openapi/", + sidebarOptions: { + groupPathsBy: "tag", + }, + } satisfies OpenApiPlugin.Options, + entityresolution: { // Unique key + specPath: "./specs/entityresolution/entity_resolution.swagger.json", + outputDir: "docs/openapi/", + sidebarOptions: { + groupPathsBy: "tag", + }, + } satisfies OpenApiPlugin.Options, + kas: { // Unique key + specPath: "./specs/kas/kas.swagger.json", + outputDir: "docs/openapi/", + sidebarOptions: { + groupPathsBy: "tag", + }, + } satisfies OpenApiPlugin.Options, + wellknownconfiguration: { // Unique key + specPath: "./specs/wellknownconfiguration/wellknown_configuration.swagger.json", + outputDir: "docs/openapi/", + sidebarOptions: { + groupPathsBy: "tag", + }, + } satisfies OpenApiPlugin.Options, // Add more entries here for other OpenAPI specs from the platform as needed }, From d5493816c436f259b9dbf978a5844da68b5ee385 Mon Sep 17 00:00:00 2001 From: b-long Date: Fri, 6 Jun 2025 12:16:18 -0400 Subject: [PATCH 10/37] Build dynamically, allows disabling DEFAULT_OPENAPI_SIDEBAR_OPTIONS --- docusaurus.config.ts | 129 +++++++++++++++++++++++++------------------ 1 file changed, 76 insertions(+), 53 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 3d967cf..3e684a4 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -11,6 +11,81 @@ import matter from "gray-matter"; import listRemote from "./docusaurus-lib-list-remote"; import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs"; +// --- OpenAPI Config Helper --- +// Global toggle to enable or disable sidebarOptions for all OpenAPI configurations +const APPLY_OPENAPI_SIDEBAR_OPTIONS_GLOBALLY = true; +const DEFAULT_OPENAPI_OUTPUT_DIR = "docs/openapi/"; +const DEFAULT_OPENAPI_SIDEBAR_OPTIONS = { groupPathsBy: "tag" }; + +interface ApiSpecDefinition { + id: string; // Unique key for the API spec, e.g., "authorization" + specPath: string; + outputDir?: string; // Optional: overrides DEFAULT_OPENAPI_OUTPUT_DIR + sidebarOptions?: { groupPathsBy: string }; // Optional: overrides DEFAULT_OPENAPI_SIDEBAR_OPTIONS +} + +function createOpenApiConfig( + specPath: string, + outputDir: string, + sidebarOptionsValue?: { groupPathsBy: string } +): OpenApiPlugin.Options { + const apiConfig: OpenApiPlugin.Options = { + specPath, + outputDir, + }; + + if (APPLY_OPENAPI_SIDEBAR_OPTIONS_GLOBALLY && sidebarOptionsValue) { + apiConfig.sidebarOptions = sidebarOptionsValue; + } + return apiConfig; +} + +// Define all your OpenAPI specifications here +const openApiSpecs: ApiSpecDefinition[] = [ + { + id: "authorization", + specPath: "./specs/authorization/authorization.swagger.json", + // outputDir: "docs/openapi/auth", // Example of overriding outputDir + // sidebarOptions: { groupPathsBy: "summary" }, // Example of overriding sidebarOptions + }, + { + id: "authorization_v2", + specPath: "./specs/authorization/v2/authorization.swagger.json", + }, + { + id: "common", + specPath: "./specs/common/common.swagger.json", + }, + { + id: "entity", + specPath: "./specs/entity/entity.swagger.json", + }, + { + id: "entityresolution", + specPath: "./specs/entityresolution/entity_resolution.swagger.json", + }, + { + id: "kas", + specPath: "./specs/kas/kas.swagger.json", + }, + { + id: "wellknownconfiguration", + specPath: "./specs/wellknownconfiguration/wellknown_configuration.swagger.json", + }, + // Add more entries here for other OpenAPI specs +]; + +// Dynamically build the OpenAPI plugin configuration +const openApiDocsConfig = openApiSpecs.reduce((acc, spec) => { + acc[spec.id] = createOpenApiConfig( + spec.specPath, + spec.outputDir || DEFAULT_OPENAPI_OUTPUT_DIR, + spec.sidebarOptions || DEFAULT_OPENAPI_SIDEBAR_OPTIONS + ); + return acc; +}, {} as Record); +// --- End OpenAPI Config Helper --- + const otdfctl = listRemote.createRepo("opentdf", "otdfctl", "main"); const config: Config = { @@ -743,59 +818,7 @@ ${updatedContent}`, { id: "api", // plugin id docsPluginId: "classic", // configured for preset-classic - config: { - authorization: { // Unique key - specPath: "./specs/authorization/authorization.swagger.json", - outputDir: "docs/openapi/", - sidebarOptions: { - groupPathsBy: "tag", - }, - } satisfies OpenApiPlugin.Options, - authorization_v2: { // Unique key - specPath: "./specs/authorization/v2/authorization.swagger.json", - outputDir: "docs/openapi/", - sidebarOptions: { - groupPathsBy: "tag", - }, - } satisfies OpenApiPlugin.Options, - common: { // Unique key - specPath: "./specs/common/common.swagger.json", - outputDir: "docs/openapi/", - sidebarOptions: { - groupPathsBy: "tag", - }, - } satisfies OpenApiPlugin.Options, - entity: { // Unique key - specPath: "./specs/entity/entity.swagger.json", - outputDir: "docs/openapi/", - sidebarOptions: { - groupPathsBy: "tag", - }, - } satisfies OpenApiPlugin.Options, - entityresolution: { // Unique key - specPath: "./specs/entityresolution/entity_resolution.swagger.json", - outputDir: "docs/openapi/", - sidebarOptions: { - groupPathsBy: "tag", - }, - } satisfies OpenApiPlugin.Options, - kas: { // Unique key - specPath: "./specs/kas/kas.swagger.json", - outputDir: "docs/openapi/", - sidebarOptions: { - groupPathsBy: "tag", - }, - } satisfies OpenApiPlugin.Options, - wellknownconfiguration: { // Unique key - specPath: "./specs/wellknownconfiguration/wellknown_configuration.swagger.json", - outputDir: "docs/openapi/", - sidebarOptions: { - groupPathsBy: "tag", - }, - } satisfies OpenApiPlugin.Options, - - // Add more entries here for other OpenAPI specs from the platform as needed - }, + config: openApiDocsConfig, // Use the dynamically generated config }, ], require.resolve("docusaurus-lunr-search"), From bf50877867058e081a06d8980337d5372faff0ce Mon Sep 17 00:00:00 2001 From: b-long Date: Fri, 6 Jun 2025 14:15:48 -0400 Subject: [PATCH 11/37] Use YAML instead of JSON --- docusaurus.config.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 3e684a4..e468b84 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -44,33 +44,33 @@ function createOpenApiConfig( const openApiSpecs: ApiSpecDefinition[] = [ { id: "authorization", - specPath: "./specs/authorization/authorization.swagger.json", + specPath: "./specs/authorization/authorization.openapi.yaml", // outputDir: "docs/openapi/auth", // Example of overriding outputDir // sidebarOptions: { groupPathsBy: "summary" }, // Example of overriding sidebarOptions }, { id: "authorization_v2", - specPath: "./specs/authorization/v2/authorization.swagger.json", + specPath: "./specs/authorization/v2/authorization.openapi.yaml", }, { id: "common", - specPath: "./specs/common/common.swagger.json", + specPath: "./specs/common/common.openapi.yaml", }, { id: "entity", - specPath: "./specs/entity/entity.swagger.json", + specPath: "./specs/entity/entity.openapi.yaml", }, { id: "entityresolution", - specPath: "./specs/entityresolution/entity_resolution.swagger.json", + specPath: "./specs/entityresolution/entity_resolution.openapi.yaml", }, { id: "kas", - specPath: "./specs/kas/kas.swagger.json", + specPath: "./specs/kas/kas.openapi.yaml", }, { id: "wellknownconfiguration", - specPath: "./specs/wellknownconfiguration/wellknown_configuration.swagger.json", + specPath: "./specs/wellknownconfiguration/wellknown_configuration.openapi.yaml", }, // Add more entries here for other OpenAPI specs ]; From c2bdfe9713c6efe4181b9badf9a708e261a9d580 Mon Sep 17 00:00:00 2001 From: b-long Date: Fri, 6 Jun 2025 14:23:40 -0400 Subject: [PATCH 12/37] Revert: Use YAML instead of JSON --- docusaurus.config.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index e468b84..3e684a4 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -44,33 +44,33 @@ function createOpenApiConfig( const openApiSpecs: ApiSpecDefinition[] = [ { id: "authorization", - specPath: "./specs/authorization/authorization.openapi.yaml", + specPath: "./specs/authorization/authorization.swagger.json", // outputDir: "docs/openapi/auth", // Example of overriding outputDir // sidebarOptions: { groupPathsBy: "summary" }, // Example of overriding sidebarOptions }, { id: "authorization_v2", - specPath: "./specs/authorization/v2/authorization.openapi.yaml", + specPath: "./specs/authorization/v2/authorization.swagger.json", }, { id: "common", - specPath: "./specs/common/common.openapi.yaml", + specPath: "./specs/common/common.swagger.json", }, { id: "entity", - specPath: "./specs/entity/entity.openapi.yaml", + specPath: "./specs/entity/entity.swagger.json", }, { id: "entityresolution", - specPath: "./specs/entityresolution/entity_resolution.openapi.yaml", + specPath: "./specs/entityresolution/entity_resolution.swagger.json", }, { id: "kas", - specPath: "./specs/kas/kas.openapi.yaml", + specPath: "./specs/kas/kas.swagger.json", }, { id: "wellknownconfiguration", - specPath: "./specs/wellknownconfiguration/wellknown_configuration.openapi.yaml", + specPath: "./specs/wellknownconfiguration/wellknown_configuration.swagger.json", }, // Add more entries here for other OpenAPI specs ]; From a902747c88692df44f5004f544d68ff81ba66e98 Mon Sep 17 00:00:00 2001 From: b-long Date: Fri, 6 Jun 2025 14:44:13 -0400 Subject: [PATCH 13/37] Add generated content --- ...ion-service-get-decisions-by-token.api.mdx | 71 ++ ...uthorization-service-get-decisions.api.mdx | 71 ++ ...orization-service-get-entitlements.api.mdx | 71 ++ ...rization-service-get-decision-bulk.api.mdx | 71 ++ ...ervice-get-decision-multi-resource.api.mdx | 71 ++ ...authorization-service-get-decision.api.mdx | 71 ++ ...orization-service-get-entitlements.api.mdx | 71 ++ docs/openapi/authorization-v-2.info.mdx | 35 + docs/openapi/authorization.info.mdx | 35 + docs/openapi/common.info.mdx | 35 + docs/openapi/entity.info.mdx | 35 + ...rvice-create-entity-chain-from-jwt.api.mdx | 71 ++ ...esolution-service-resolve-entities.api.mdx | 71 ++ docs/openapi/entityresolution.info.mdx | 35 + ...s-access-service-legacy-public-key.api.mdx | 71 ++ .../kas-access-service-public-key.api.mdx | 71 ++ .../openapi/kas-access-service-rewrap.api.mdx | 71 ++ docs/openapi/kas.info.mdx | 35 + ...rvice-get-well-known-configuration.api.mdx | 63 + docs/openapi/wellknownconfiguration.info.mdx | 35 + .../authorization/authorization.openapi.yaml | 1018 +++++++++++++++++ .../v2/authorization.openapi.yaml | 795 +++++++++++++ specs-processed/common/common.openapi.yaml | 183 +++ specs-processed/entity/entity.openapi.yaml | 107 ++ .../entity_resolution.openapi.yaml | 455 ++++++++ specs-processed/kas/kas.openapi.yaml | 511 +++++++++ .../wellknown_configuration.openapi.yaml | 201 ++++ 27 files changed, 4430 insertions(+) create mode 100644 docs/openapi/authorization-authorization-service-get-decisions-by-token.api.mdx create mode 100644 docs/openapi/authorization-authorization-service-get-decisions.api.mdx create mode 100644 docs/openapi/authorization-authorization-service-get-entitlements.api.mdx create mode 100644 docs/openapi/authorization-v-2-authorization-service-get-decision-bulk.api.mdx create mode 100644 docs/openapi/authorization-v-2-authorization-service-get-decision-multi-resource.api.mdx create mode 100644 docs/openapi/authorization-v-2-authorization-service-get-decision.api.mdx create mode 100644 docs/openapi/authorization-v-2-authorization-service-get-entitlements.api.mdx create mode 100644 docs/openapi/authorization-v-2.info.mdx create mode 100644 docs/openapi/authorization.info.mdx create mode 100644 docs/openapi/common.info.mdx create mode 100644 docs/openapi/entity.info.mdx create mode 100644 docs/openapi/entityresolution-entity-resolution-service-create-entity-chain-from-jwt.api.mdx create mode 100644 docs/openapi/entityresolution-entity-resolution-service-resolve-entities.api.mdx create mode 100644 docs/openapi/entityresolution.info.mdx create mode 100644 docs/openapi/kas-access-service-legacy-public-key.api.mdx create mode 100644 docs/openapi/kas-access-service-public-key.api.mdx create mode 100644 docs/openapi/kas-access-service-rewrap.api.mdx create mode 100644 docs/openapi/kas.info.mdx create mode 100644 docs/openapi/wellknownconfiguration-well-known-service-get-well-known-configuration.api.mdx create mode 100644 docs/openapi/wellknownconfiguration.info.mdx create mode 100644 specs-processed/authorization/authorization.openapi.yaml create mode 100644 specs-processed/authorization/v2/authorization.openapi.yaml create mode 100644 specs-processed/common/common.openapi.yaml create mode 100644 specs-processed/entity/entity.openapi.yaml create mode 100644 specs-processed/entityresolution/entity_resolution.openapi.yaml create mode 100644 specs-processed/kas/kas.openapi.yaml create mode 100644 specs-processed/wellknownconfiguration/wellknown_configuration.openapi.yaml diff --git a/docs/openapi/authorization-authorization-service-get-decisions-by-token.api.mdx b/docs/openapi/authorization-authorization-service-get-decisions-by-token.api.mdx new file mode 100644 index 0000000..82e9a43 --- /dev/null +++ b/docs/openapi/authorization-authorization-service-get-decisions-by-token.api.mdx @@ -0,0 +1,71 @@ +--- +id: authorization-authorization-service-get-decisions-by-token +title: "GetDecisionsByToken" +description: "GetDecisionsByToken" +sidebar_label: "GetDecisionsByToken" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: openapi/authorization +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +GetDecisionsByToken + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/authorization-authorization-service-get-decisions.api.mdx b/docs/openapi/authorization-authorization-service-get-decisions.api.mdx new file mode 100644 index 0000000..da36914 --- /dev/null +++ b/docs/openapi/authorization-authorization-service-get-decisions.api.mdx @@ -0,0 +1,71 @@ +--- +id: authorization-authorization-service-get-decisions +title: "GetDecisions" +description: "GetDecisions" +sidebar_label: "GetDecisions" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: openapi/authorization +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +GetDecisions + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/authorization-authorization-service-get-entitlements.api.mdx b/docs/openapi/authorization-authorization-service-get-entitlements.api.mdx new file mode 100644 index 0000000..6e60c43 --- /dev/null +++ b/docs/openapi/authorization-authorization-service-get-entitlements.api.mdx @@ -0,0 +1,71 @@ +--- +id: authorization-authorization-service-get-entitlements +title: "GetEntitlements" +description: "GetEntitlements" +sidebar_label: "GetEntitlements" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: openapi/authorization +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +GetEntitlements + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/authorization-v-2-authorization-service-get-decision-bulk.api.mdx b/docs/openapi/authorization-v-2-authorization-service-get-decision-bulk.api.mdx new file mode 100644 index 0000000..44620bd --- /dev/null +++ b/docs/openapi/authorization-v-2-authorization-service-get-decision-bulk.api.mdx @@ -0,0 +1,71 @@ +--- +id: authorization-v-2-authorization-service-get-decision-bulk +title: "GetDecisionBulk" +description: "GetDecisionBulk" +sidebar_label: "GetDecisionBulk" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: openapi/authorization-v-2 +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +GetDecisionBulk + + + + + + + + + 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"entities":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"claims":{"title":"claims","description":"used by ERS claims mode","type":"object","properties":{"type":{"type":"string"},"value":{"type":"string","format":"binary"},"debug":{"type":"object","additionalProperties":true}},"additionalProperties":true}},"title":"claims","required":["claims"]},{"properties":{"clientId":{"type":"string","title":"client_id"}},"title":"client_id","required":["clientId"]},{"properties":{"emailAddress":{"type":"string","title":"email_address"}},"title":"email_address","required":["emailAddress"]},{"properties":{"userName":{"type":"string","title":"user_name"}},"title":"user_name","required":["userName"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"category":{"title":"category","type":"string","enum":["CATEGORY_UNSPECIFIED","CATEGORY_SUBJECT","CATEGORY_ENVIRONMENT"]}},"title":"Entity","additionalProperties":false,"description":"PE (Person Entity) or NPE (Non-Person Entity)"},"title":"entities"}},"additionalProperties":false}},"title":"entity_chain","required":["entityChain"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri","description":"fully qualified name of the registered resource value stored in platform policy, where in\n this case the resource acts as and represents a single entity for authorization/entitlement decisioning"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]},{"properties":{"token":{"title":"token","description":"access token (JWT), which is used to create an entity chain (comprising one or more entities)\ntoken must be provided:\n```\nhas(this.jwt) && this.jwt.size() > 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"jwt":{"type":"string","title":"jwt","description":"the token"}},"required":["jwt"],"additionalProperties":false}},"title":"token","required":["token"]}],"additionalProperties":false},"action":{"title":"action","description":"name on action is required","type":"object","oneOf":[{"properties":{"custom":{"type":"string","title":"custom","description":"Deprecated"}},"title":"custom","required":["custom"]},{"properties":{"standard":{"title":"standard","description":"Deprecated","type":"string","enum":["STANDARD_ACTION_UNSPECIFIED","STANDARD_ACTION_DECRYPT","STANDARD_ACTION_TRANSMIT"]}},"title":"standard","required":["standard"]}],"properties":{"id":{"type":"string","title":"id","description":"Generated uuid in database"},"name":{"type":"string","title":"name"},"metadata":{"title":"metadata","type":"object","properties":{"createdAt":{"title":"created_at","description":"created_at set by server (entity who created will recorded in an audit event)","type":"string","format":"date-time"},"updatedAt":{"title":"updated_at","description":"updated_at set by server (entity who updated will recorded in an audit event)","type":"string","format":"date-time"},"labels":{"type":"object","title":"labels","additionalProperties":{"type":"string","title":"value"},"description":"optional short description"}},"additionalProperties":false,"description":"Struct to uniquely identify a resource with optional additional metadata"}},"additionalProperties":false},"resources":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"attributeValues":{"title":"attribute_values","description":"if provided, resource.attribute_values must not be empty:\n```\nthis.fqns.size() > 0 && this.fqns.all(item, item.isUri())\n```\n\n","type":"object","properties":{"fqns":{"type":"array","items":{"type":"string"},"title":"fqns"}},"additionalProperties":false}},"title":"attribute_values","required":["attributeValues"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"}},"title":"Resource","additionalProperties":false,"description":"Either a set of attribute values (such as those on a TDF) or a registered resource value"},"title":"resources","minItems":1}},"title":"GetDecisionMultiResourceRequest","required":["entityIdentifier","action","resources"],"additionalProperties":false,"description":"Can the identified entity/entities access?\n 1. one entity reference (actor)\n 2. one action\n 3. multiple resources\n Note: this is a more performant bulk request for multiple resource decisions\naction.name must be provided:\n```\nhas(this.action.name)\n```\n\n"},"title":"decision_requests"}},"title":"GetDecisionBulkRequest","additionalProperties":false,"description":"Is access allowed?\n 1. Multiplexing of a Decision request\n This is a more performant bulk request for complex decisioning (i.e. multiple entity chains or actions on\n multiple resources)"}}},"required":true}} +> + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/authorization-v-2-authorization-service-get-decision-multi-resource.api.mdx b/docs/openapi/authorization-v-2-authorization-service-get-decision-multi-resource.api.mdx new file mode 100644 index 0000000..d6e7aab --- /dev/null +++ b/docs/openapi/authorization-v-2-authorization-service-get-decision-multi-resource.api.mdx @@ -0,0 +1,71 @@ +--- +id: authorization-v-2-authorization-service-get-decision-multi-resource +title: "GetDecisionMultiResource" +description: "GetDecisionMultiResource" +sidebar_label: "GetDecisionMultiResource" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: openapi/authorization-v-2 +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +GetDecisionMultiResource + + + + + + + + + 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"entities":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"claims":{"title":"claims","description":"used by ERS claims mode","type":"object","properties":{"type":{"type":"string"},"value":{"type":"string","format":"binary"},"debug":{"type":"object","additionalProperties":true}},"additionalProperties":true}},"title":"claims","required":["claims"]},{"properties":{"clientId":{"type":"string","title":"client_id"}},"title":"client_id","required":["clientId"]},{"properties":{"emailAddress":{"type":"string","title":"email_address"}},"title":"email_address","required":["emailAddress"]},{"properties":{"userName":{"type":"string","title":"user_name"}},"title":"user_name","required":["userName"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"category":{"title":"category","type":"string","enum":["CATEGORY_UNSPECIFIED","CATEGORY_SUBJECT","CATEGORY_ENVIRONMENT"]}},"title":"Entity","additionalProperties":false,"description":"PE (Person Entity) or NPE (Non-Person Entity)"},"title":"entities"}},"additionalProperties":false}},"title":"entity_chain","required":["entityChain"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri","description":"fully qualified name of the registered resource value stored in platform policy, where in\n this case the resource acts as and represents a single entity for authorization/entitlement decisioning"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]},{"properties":{"token":{"title":"token","description":"access token (JWT), which is used to create an entity chain (comprising one or more entities)\ntoken must be provided:\n```\nhas(this.jwt) && this.jwt.size() > 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"jwt":{"type":"string","title":"jwt","description":"the token"}},"required":["jwt"],"additionalProperties":false}},"title":"token","required":["token"]}],"additionalProperties":false},"action":{"title":"action","description":"name on action is required","type":"object","oneOf":[{"properties":{"custom":{"type":"string","title":"custom","description":"Deprecated"}},"title":"custom","required":["custom"]},{"properties":{"standard":{"title":"standard","description":"Deprecated","type":"string","enum":["STANDARD_ACTION_UNSPECIFIED","STANDARD_ACTION_DECRYPT","STANDARD_ACTION_TRANSMIT"]}},"title":"standard","required":["standard"]}],"properties":{"id":{"type":"string","title":"id","description":"Generated uuid in database"},"name":{"type":"string","title":"name"},"metadata":{"title":"metadata","type":"object","properties":{"createdAt":{"title":"created_at","description":"created_at set by server (entity who created will recorded in an audit event)","type":"string","format":"date-time"},"updatedAt":{"title":"updated_at","description":"updated_at set by server (entity who updated will recorded in an audit event)","type":"string","format":"date-time"},"labels":{"type":"object","title":"labels","additionalProperties":{"type":"string","title":"value"},"description":"optional short description"}},"additionalProperties":false,"description":"Struct to uniquely identify a resource with optional additional metadata"}},"additionalProperties":false},"resources":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"attributeValues":{"title":"attribute_values","description":"if provided, resource.attribute_values must not be empty:\n```\nthis.fqns.size() > 0 && this.fqns.all(item, item.isUri())\n```\n\n","type":"object","properties":{"fqns":{"type":"array","items":{"type":"string"},"title":"fqns"}},"additionalProperties":false}},"title":"attribute_values","required":["attributeValues"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"}},"title":"Resource","additionalProperties":false,"description":"Either a set of attribute values (such as those on a TDF) or a registered resource value"},"title":"resources","minItems":1}},"title":"GetDecisionMultiResourceRequest","required":["entityIdentifier","action","resources"],"additionalProperties":false,"description":"Can the identified entity/entities access?\n 1. one entity reference (actor)\n 2. one action\n 3. multiple resources\n Note: this is a more performant bulk request for multiple resource decisions\naction.name must be provided:\n```\nhas(this.action.name)\n```\n\n"}}},"required":true}} +> + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/authorization-v-2-authorization-service-get-decision.api.mdx b/docs/openapi/authorization-v-2-authorization-service-get-decision.api.mdx new file mode 100644 index 0000000..0540d22 --- /dev/null +++ b/docs/openapi/authorization-v-2-authorization-service-get-decision.api.mdx @@ -0,0 +1,71 @@ +--- +id: authorization-v-2-authorization-service-get-decision +title: "GetDecision" +description: "GetDecision" +sidebar_label: "GetDecision" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: openapi/authorization-v-2 +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +GetDecision + + + + + + + + + 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"entities":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"claims":{"title":"claims","description":"used by ERS claims mode","type":"object","properties":{"type":{"type":"string"},"value":{"type":"string","format":"binary"},"debug":{"type":"object","additionalProperties":true}},"additionalProperties":true}},"title":"claims","required":["claims"]},{"properties":{"clientId":{"type":"string","title":"client_id"}},"title":"client_id","required":["clientId"]},{"properties":{"emailAddress":{"type":"string","title":"email_address"}},"title":"email_address","required":["emailAddress"]},{"properties":{"userName":{"type":"string","title":"user_name"}},"title":"user_name","required":["userName"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"category":{"title":"category","type":"string","enum":["CATEGORY_UNSPECIFIED","CATEGORY_SUBJECT","CATEGORY_ENVIRONMENT"]}},"title":"Entity","additionalProperties":false,"description":"PE (Person Entity) or NPE (Non-Person Entity)"},"title":"entities"}},"additionalProperties":false}},"title":"entity_chain","required":["entityChain"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri","description":"fully qualified name of the registered resource value stored in platform policy, where in\n this case the resource acts as and represents a single entity for authorization/entitlement decisioning"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]},{"properties":{"token":{"title":"token","description":"access token (JWT), which is used to create an entity chain (comprising one or more entities)\ntoken must be provided:\n```\nhas(this.jwt) && this.jwt.size() > 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"jwt":{"type":"string","title":"jwt","description":"the token"}},"required":["jwt"],"additionalProperties":false}},"title":"token","required":["token"]}],"additionalProperties":false},"action":{"title":"action","description":"name on action is required","type":"object","oneOf":[{"properties":{"custom":{"type":"string","title":"custom","description":"Deprecated"}},"title":"custom","required":["custom"]},{"properties":{"standard":{"title":"standard","description":"Deprecated","type":"string","enum":["STANDARD_ACTION_UNSPECIFIED","STANDARD_ACTION_DECRYPT","STANDARD_ACTION_TRANSMIT"]}},"title":"standard","required":["standard"]}],"properties":{"id":{"type":"string","title":"id","description":"Generated uuid in database"},"name":{"type":"string","title":"name"},"metadata":{"title":"metadata","type":"object","properties":{"createdAt":{"title":"created_at","description":"created_at set by server (entity who created will recorded in an audit event)","type":"string","format":"date-time"},"updatedAt":{"title":"updated_at","description":"updated_at set by server (entity who updated will recorded in an audit event)","type":"string","format":"date-time"},"labels":{"type":"object","title":"labels","additionalProperties":{"type":"string","title":"value"},"description":"optional short description"}},"additionalProperties":false,"description":"Struct to uniquely identify a resource with optional additional metadata"}},"additionalProperties":false},"resource":{"title":"resource","type":"object","oneOf":[{"properties":{"attributeValues":{"title":"attribute_values","description":"if provided, resource.attribute_values must not be empty:\n```\nthis.fqns.size() > 0 && this.fqns.all(item, item.isUri())\n```\n\n","type":"object","properties":{"fqns":{"type":"array","items":{"type":"string"},"title":"fqns"}},"additionalProperties":false}},"title":"attribute_values","required":["attributeValues"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"}},"additionalProperties":false,"description":"Either a set of attribute values (such as those on a TDF) or a registered resource value"}},"title":"GetDecisionRequest","required":["entityIdentifier","action","resource"],"additionalProperties":false,"description":"Can the identified entity/entities access?\n 1. one entity reference (actor)\n 2. one action\n 3. one resource\naction.name must be provided:\n```\nhas(this.action.name)\n```\n\n"}}},"required":true}} +> + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/authorization-v-2-authorization-service-get-entitlements.api.mdx b/docs/openapi/authorization-v-2-authorization-service-get-entitlements.api.mdx new file mode 100644 index 0000000..532d37f --- /dev/null +++ b/docs/openapi/authorization-v-2-authorization-service-get-entitlements.api.mdx @@ -0,0 +1,71 @@ +--- +id: authorization-v-2-authorization-service-get-entitlements +title: "GetEntitlements" +description: "GetEntitlements" +sidebar_label: "GetEntitlements" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: openapi/authorization-v-2 +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +GetEntitlements + + + + + + + + + 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"entities":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"claims":{"title":"claims","description":"used by ERS claims mode","type":"object","properties":{"type":{"type":"string"},"value":{"type":"string","format":"binary"},"debug":{"type":"object","additionalProperties":true}},"additionalProperties":true}},"title":"claims","required":["claims"]},{"properties":{"clientId":{"type":"string","title":"client_id"}},"title":"client_id","required":["clientId"]},{"properties":{"emailAddress":{"type":"string","title":"email_address"}},"title":"email_address","required":["emailAddress"]},{"properties":{"userName":{"type":"string","title":"user_name"}},"title":"user_name","required":["userName"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"category":{"title":"category","type":"string","enum":["CATEGORY_UNSPECIFIED","CATEGORY_SUBJECT","CATEGORY_ENVIRONMENT"]}},"title":"Entity","additionalProperties":false,"description":"PE (Person Entity) or NPE (Non-Person Entity)"},"title":"entities"}},"additionalProperties":false}},"title":"entity_chain","required":["entityChain"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri","description":"fully qualified name of the registered resource value stored in platform policy, where in\n this case the resource acts as and represents a single entity for authorization/entitlement decisioning"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]},{"properties":{"token":{"title":"token","description":"access token (JWT), which is used to create an entity chain (comprising one or more entities)\ntoken must be provided:\n```\nhas(this.jwt) && this.jwt.size() > 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"jwt":{"type":"string","title":"jwt","description":"the token"}},"required":["jwt"],"additionalProperties":false}},"title":"token","required":["token"]}],"additionalProperties":false},"withComprehensiveHierarchy":{"type":"boolean","title":"with_comprehensive_hierarchy","description":"optional parameter to return all entitled values for attribute definitions with hierarchy rules, propagating\n down the hierarchical values instead of returning solely the value that is directly entitled","nullable":true}},"title":"GetEntitlementsRequest","required":["entityIdentifier"],"additionalProperties":false,"description":"What is permitted to the identified entity/entities (actor), broken down as permitted actions on attribute value FQNs?\n\n Note: the v1 API parameter 'scope' has been dropped, and it is recommended to use\n GetDecision if the resource is known"}}},"required":true}} +> + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/authorization-v-2.info.mdx b/docs/openapi/authorization-v-2.info.mdx new file mode 100644 index 0000000..9ddec34 --- /dev/null +++ b/docs/openapi/authorization-v-2.info.mdx @@ -0,0 +1,35 @@ +--- +id: authorization-v-2 +title: "authorization.v2" +description: "[Preprocessed on 2025-06-09T20:36:02.676Z]" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Heading from "@theme/Heading"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiExplorer/Export"; + + + + + + + + + +[Preprocessed on 2025-06-09T20:36:02.676Z] + + + \ No newline at end of file diff --git a/docs/openapi/authorization.info.mdx b/docs/openapi/authorization.info.mdx new file mode 100644 index 0000000..269336c --- /dev/null +++ b/docs/openapi/authorization.info.mdx @@ -0,0 +1,35 @@ +--- +id: authorization +title: "authorization" +description: "[Preprocessed on 2025-06-09T20:36:02.674Z]" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Heading from "@theme/Heading"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiExplorer/Export"; + + + + + + + + + +[Preprocessed on 2025-06-09T20:36:02.674Z] + + + \ No newline at end of file diff --git a/docs/openapi/common.info.mdx b/docs/openapi/common.info.mdx new file mode 100644 index 0000000..05a6368 --- /dev/null +++ b/docs/openapi/common.info.mdx @@ -0,0 +1,35 @@ +--- +id: common +title: "common" +description: "[Preprocessed on 2025-06-09T20:36:02.677Z]" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Heading from "@theme/Heading"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiExplorer/Export"; + + + + + + + + + +[Preprocessed on 2025-06-09T20:36:02.677Z] + + + \ No newline at end of file diff --git a/docs/openapi/entity.info.mdx b/docs/openapi/entity.info.mdx new file mode 100644 index 0000000..fb8ba0c --- /dev/null +++ b/docs/openapi/entity.info.mdx @@ -0,0 +1,35 @@ +--- +id: entity +title: "entity" +description: "[Preprocessed on 2025-06-09T20:36:02.678Z]" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Heading from "@theme/Heading"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiExplorer/Export"; + + + + + + + + + +[Preprocessed on 2025-06-09T20:36:02.678Z] + + + \ No newline at end of file diff --git a/docs/openapi/entityresolution-entity-resolution-service-create-entity-chain-from-jwt.api.mdx b/docs/openapi/entityresolution-entity-resolution-service-create-entity-chain-from-jwt.api.mdx new file mode 100644 index 0000000..9c0670b --- /dev/null +++ b/docs/openapi/entityresolution-entity-resolution-service-create-entity-chain-from-jwt.api.mdx @@ -0,0 +1,71 @@ +--- +id: entityresolution-entity-resolution-service-create-entity-chain-from-jwt +title: "CreateEntityChainFromJwt" +description: "Deprecated: use v2 CreateEntityChainsFromTokens instead" +sidebar_label: "CreateEntityChainFromJwt" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: openapi/entityresolution +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Deprecated: use v2 CreateEntityChainsFromTokens instead + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/entityresolution-entity-resolution-service-resolve-entities.api.mdx b/docs/openapi/entityresolution-entity-resolution-service-resolve-entities.api.mdx new file mode 100644 index 0000000..b1db118 --- /dev/null +++ b/docs/openapi/entityresolution-entity-resolution-service-resolve-entities.api.mdx @@ -0,0 +1,71 @@ +--- +id: entityresolution-entity-resolution-service-resolve-entities +title: "ResolveEntities" +description: "Deprecated: use v2 ResolveEntities instead" +sidebar_label: "ResolveEntities" +hide_title: true +hide_table_of_contents: true +api: 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 +sidebar_class_name: "post api-method" +info_path: openapi/entityresolution +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Deprecated: use v2 ResolveEntities instead + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/entityresolution.info.mdx b/docs/openapi/entityresolution.info.mdx new file mode 100644 index 0000000..d82eddc --- /dev/null +++ b/docs/openapi/entityresolution.info.mdx @@ -0,0 +1,35 @@ +--- +id: entityresolution +title: "entityresolution" +description: "[Preprocessed on 2025-06-09T20:36:02.679Z]" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Heading from "@theme/Heading"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiExplorer/Export"; + + + + + + + + + +[Preprocessed on 2025-06-09T20:36:02.679Z] + + + \ No newline at end of file diff --git a/docs/openapi/kas-access-service-legacy-public-key.api.mdx b/docs/openapi/kas-access-service-legacy-public-key.api.mdx new file mode 100644 index 0000000..7ff72b4 --- /dev/null +++ b/docs/openapi/kas-access-service-legacy-public-key.api.mdx @@ -0,0 +1,71 @@ +--- +id: kas-access-service-legacy-public-key +title: "LegacyPublicKey" +description: "buf:lint:ignore RPC_RESPONSE_STANDARD_NAME" +sidebar_label: "LegacyPublicKey" +hide_title: true +hide_table_of_contents: true +api: eJydVm1vIzUQ/iuW+bpNQhEV7CeiNiDg6FVNDyRy0XbWnt311bEXezZtLtr/jsabcEnT6wEfokTzPs88nslWEtRR5gv5AHE0VQpjnGNYG4VymUmNUQXTkvFO5rLsqtwaR7mpnQ8obm8ui9vZ/Obt9XxWzO+m11fT26vievrbTGbStxiAHX/WMj+NPnqDNajNTVdao37FjcxkCwFWSBi4nq10sEKZS7C1D4aalcyk4Sr+6jCweVQNrkDmW0mbli0jBeNqmUkyZI9d+36ZyYCx9S5iZJ/zyYS/jhucd6lEmUnlHaEjNoG2tUalVsYfItttX8l9HPCPAG2LQawwRqhRVD6I+8H2fvTevXfirkHxy/zttQjYBozoKGUaLOfJ8newHd4LEwfDwX100GftfW1x1AZPvuyq0YGb7Pu+56oq6CyddjwLwYf/0a8vP6AiHlrgQZMZUFVe40uo4BOsWouJaM5TUfnOaSYYum7FQgVOoUUtM9m5B+cfXRr3GqzRBYS6W3F13AhoaxwW+KQQdXL4FDCTYAOC3hT4ZCLxIFsMKxOj8a7Q6ExyCBh9FxQHaaCLlIQVGIu6aAMq77RJ+GQSSh8Gve+o8FURwNWYqjTcEZeV1MYRBgc2qWANxkJp2VADQWF9YlXnoKMGHTG+qE9fGLMhElAXBUOZicfGqEbExndWixIFOMGQiTUPV/hKLHbDD60aXXqNyxPBSPaZ3BHwy4ydCo1rtDzUswqUcbVA5siewqclGSdmrrYmNiMxdRvRxc+4HvhYr8Caj6gFOC2Y9RyGGjzqZ56QGGkkMDYuX1GJyqDVmfDhIHS5SRGVNegooTCYf5nGg/Y5VH0mE+wvgVj5sALiHWkchM2QrOzql3KBHugF9uYgK4UO+al+Xvt8VJfeERgXmRQQSkMBwkZEDGYHwB53sN7V4tFQI0D8wOUIaoDEEK7EmHBKcl+l36dBXts3U7eRXPpef+mdQ0Viv1z+fUvJY6gkIHXBDWPcBcxFQ9TGfDxWg4CZoPxqrL2K49qPE93i+Cs2OzteqGkRpodAjeeLVGOaO1Ajczl+gMifok33qHhIByliWO+vUReszOU+/26fcfKTFzQbdOJti+7u6kfRWiCmh3h3+0byHYqoumBoI/PFkhdH5RNLduA9QDwJubjhZjzfJtTCO3E+Of/2bHJxNvn+7nySf3ORT85HF99N/lwKmUmuefBbf81EbH2kFaQ9vrupp7f3KN/20zn4bzd/x3TCJxq3Fozj9Am57Q7pxa6/Z1gvM9n4SKzfbkuI+C7YvmfxcO15AtpEXqla5hXYiJlkx+P/B7vnKRPMawgm7eB8sewz2SBoDCnS4Mh/R1o68Do5fBzlH778NLuTff83lbo5rg== +sidebar_class_name: "get api-method" +info_path: openapi/kas +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +buf:lint:ignore RPC_RESPONSE_STANDARD_NAME + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/kas-access-service-public-key.api.mdx b/docs/openapi/kas-access-service-public-key.api.mdx new file mode 100644 index 0000000..e18f4b8 --- /dev/null +++ b/docs/openapi/kas-access-service-public-key.api.mdx @@ -0,0 +1,71 @@ +--- +id: kas-access-service-public-key +title: "PublicKey" +description: "PublicKey" +sidebar_label: "PublicKey" +hide_title: true +hide_table_of_contents: true +api: eJytVl1v6zYM/SsC9+omWYYVm59WdN0wbMCK296XBUFAS7StW1ny9OE2C/zfB8pJb9K03b3AnpxI5BF5eERqBxGbAOUKHjDMrqSkEO7ID1oSrAtwPXmM2tnfFJTnJrPbVBktf6ctFNCjx44ieYbbgcWOoAQ0jfM6th0UoC2U8Hciz+ZBttQhlDuI254tQ/TaNlBA1NGcuo5j8QxYd/HrodjpGGT4eogBxnFdgKfQOxsosO1yseCPoiC97pknKOEuZYqgAOlsJBvZBPveaJmpnH8KbLc7P9NVn0hydr1n4qOeTumfSX4nvMlo80BbGAt40Oo9Y94ex8//n8v4YZ8dFIBKaQ4Xze1RNDWaQOPIzopqTCaeE3DjvfP/X/rSKXotGXrCrjeUxWtd3NQuWcWiJZs6XpRoJRlSUECyD9Y92lz1AY1WG/RN6jg6TgSV0ZY29CSJVHb4DFgAGk+otht60iFyXXvynQ5BO7tRZHV28BRc8pJBWkwh5sUatSG16T1JZyc6Ga9yftp3KW5cvfFoG8pRas6Iw8rb2kbyFk3ewgG1wcqwocKIG+OyyJLFFFuykfmlTMBpOe5bEiFiTEEwlYV4bLVsRWhdMkpUJNAKpkwMaBIJV4tV41xjaOZ7Obt2itZnCzMWWUchYPNqbU4juBKKBjJc1IsapbaNINaI2COch6StuLGN0aGdiSu7FSm84XrkY5xEo/8hJdAqEchGhoktneRzl5mYKYqoTVi/syVqTUYVwvkj6GqbEaXRZGNmYTL/bxlPuy+pGgvItL9GYu18hxFKqLRFv50Oq1Lz2lmv39boE/FVfXv3ZamunY2obWBRoK909Oi3IpDXewIOvKNxthGPOrYCxU8cjogtRjHBVRQyT3nd1fn3OcjsqCXt69B7F12V6tmV3Z60qGtnLckoDs3ly1PKHlMknmLydirjHrAUbYx9KOdzOS2wEqTr5srJMG/cPMstzL9hswtPvSeWVm5lMB464fF5xzOxo9g6Hp0NZUVgbKGE+QOG+bDkz+aobxcQyA+H+Zm8gRIOwe2bHUd2dr1upj3xZ0/2/udfRG8wsnbExw9/AM+sQDJ5HbdQrtbcVWqXJXQYBhjOIFe3nKnjOUZKOCuWi+X3F4vLi8WP98tF+d1luVjOLn9Y/LUWUADHPPkN37JKexdih7nJ7+ftMScnJz0rOdJTnPcGtWWEnPxuz9dqH+KwhAJecLYuoHUhstFuV2Ggj96MIy9Pk52ZVDpw31T76VUAO56+TPZ3EIDfCG/YTw+PL7EcTuzW/Mfr3LrL1XosoCVU5HNskwM/qvpj9LN5ySjPYvr15h7G8V8CemON +sidebar_class_name: "get api-method" +info_path: openapi/kas +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +PublicKey + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/kas-access-service-rewrap.api.mdx b/docs/openapi/kas-access-service-rewrap.api.mdx new file mode 100644 index 0000000..dd27b40 --- /dev/null +++ b/docs/openapi/kas-access-service-rewrap.api.mdx @@ -0,0 +1,71 @@ +--- +id: kas-access-service-rewrap +title: "Rewrap" +description: "Rewrap" +sidebar_label: "Rewrap" +hide_title: true +hide_table_of_contents: true +api: eJztWFFvGzcM/iuC9nqxvQwrtnta1nVA16EJkrQD5hhXWqJ9qnXSTdLZuRn+7wOls32uHafb+ti8RKGojxRFfuRlzQPMPc/HfAF+cCUEen+HbqkE8knGbY0OgrLmteT5scrgFlcOap5xh3816MPPVrY8X3NhTUATaAl1rZWIIMOP3hqSeVFiBbQKbY0853b6EUXgGa8dmQwKfdRTc4PyNmHf2wWa3hkfnDJznvGggo6CqF10rhQh6m82e4XkbQfHMw5SKvIL9E3P7Ay0xw2dIyTlUPI8uAajwNfW+OTc5WhEvyR64VRNODznd02MD8++VAgqDCAhnNTc3mun89SV1jvVJegGecatwesZz8c7UNNozTdZ7+9qiq4v6eLdk0yt1QimLwLnoO0Lds6e9iwGdpJ9EsUP78nND8xh7dCjCZ4Bk62BSgnQumUELlm8DFuVSpRMgGFTZKhCie7BMLpPxoCle9Aq+U+rzm9aOhSN82qJtN2IkDAzZh2DB8O08oHZWZL6AbtitbOyEeh2UqY8w8caRUDJgmUeA7MGaT+U6PHBsCU4BSbQ+alHI+ImmHa7wZSRlB/oGRiGzlk3eDAPht2XyH67u367D0RMIjazjm1jpHxSic4M+IZiWTskuH3iogkqtH84qGuUb7A9V0ZJt1gl5WKBLc/4zLoKAr15Gyh/Ttjw6L2y5qaZaiWesdHpFnVUjjYIIdbEe3Re2fOVHhWLZad50p2DWj3IzoyrgJV/vvZqq5VoifqediXpFEryZLPR4V9Z3Bfioe2YBWefKSr06S1J+rQ17mQTKshD/AX4z0uHBfizudD34Fi378uhyQmV/Veu+8p1/4PrNhlfYJtGkusY/PPFusC2gKhdpLfq6tYHCI0/yzhJo5/sb7aWt2MF1f4zU8X+9JYq+og3kUv+K1zHdp/m11tcsQTJrm5eM1GCmaM/ORcliGcHo9hiZkDuHc0/rzoO+kLTj7ASTz0LPkJVa4yDq7GhmNnGSBpY0TQVCQUYgRolz3hjFsauqEsoswStZAFu3lTkHV0EpFYGC3wUiDIe2ANmHLRDkG2Bj8oHCm6NrlKpeUk0Kh5w6G3jBIGU0PgQhTNQGmVBfcmaFE7Cm1qX9m0TCjsrHD1H9FLRjcituK1MQGdAxy1YgtIw1bHzQoBC2zhjNgaaUFLDTr3viFyoqFLqMgpl1hGIL22jJXEI1aBpqq687YyN59bONQ5cLQYvrcTJkSDOGBV6D/OTb3PowRWTuERNj3oxA6HMPBU96xCOXVKGvTJzrXw5YFemZY1/4mjvjLYCtPobJQMjGZEHwYQSD+5zFyMxkBhAaT85s8VmCrWM1LiHnrYRUWiFJnSTFqk/n8Zp97i7dC3qRBD3PVYZcG0yNm3mp2yd6Tabc7ufPtVLawIoE4kZ3FQFB65lHp3qArCNO2hr5mylQsmA/UTusFBCYAluij7GKcpTZzgBMuiRa/cOtbPBTpvZ4Mq0B/z00hqDIrAtuXz+leKJ5InD0DiTnrEDzFkZQu3z4VAkAWWCsNVQWuGHczuM6eaH35DaxWFf4pstE/bt7b6HKwyllXE+jJ+aNYSS53y4AD9cXg7dVs+joyk2TieN0zznW5c6iiN/jorqVdpj1zWa+19+ZbWGQBnD3t3+zmnE8NTqVWh5Pp5knFj3dv+B3p1+6gO7l57KzGx/olrAcX8Z31BgLDVClMwadjm6/P5i9OJi9OP95Sj/7kU+uhy8+GH054TxjG9H9pwvvyULFJ4KYk8wUGE/hAdmdlkf8DEMaw2KRrEUsnUX3XHn3/IycnKEmWS8pBfIx3y9noLHd05vNiT+q0HXxSeOJsSu+XiyyXiJINHFJ6EhNhUGmnBxTy7siva4sdEomE7QYFCHs7qTXpLcXN/d84xPu/+eVLHrcQcrugiseM6pYcRQRD6JsjXXYOZNZGGeMOnnH2MiTB8= +sidebar_class_name: "post api-method" +info_path: openapi/kas +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Rewrap + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/kas.info.mdx b/docs/openapi/kas.info.mdx new file mode 100644 index 0000000..b3299f6 --- /dev/null +++ b/docs/openapi/kas.info.mdx @@ -0,0 +1,35 @@ +--- +id: kas +title: "kas" +description: "[Preprocessed on 2025-06-09T20:36:02.680Z]" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Heading from "@theme/Heading"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiExplorer/Export"; + + + + + + + + + +[Preprocessed on 2025-06-09T20:36:02.680Z] + + + \ No newline at end of file diff --git a/docs/openapi/wellknownconfiguration-well-known-service-get-well-known-configuration.api.mdx b/docs/openapi/wellknownconfiguration-well-known-service-get-well-known-configuration.api.mdx new file mode 100644 index 0000000..b783b8b --- /dev/null +++ b/docs/openapi/wellknownconfiguration-well-known-service-get-well-known-configuration.api.mdx @@ -0,0 +1,63 @@ +--- +id: wellknownconfiguration-well-known-service-get-well-known-configuration +title: "GetWellKnownConfiguration" +description: "GetWellKnownConfiguration" +sidebar_label: "GetWellKnownConfiguration" +hide_title: true +hide_table_of_contents: true +api: eJytVlFvGzcM/iuE9no5pxlWbH5akKVFt2EtmnQDFhsuLfHu1Oqom6Rz4gX+7wN158SxkzQPe/KZpCjyI/mJtyphHdX0Sl2Tc1/ZX7P2XNm6D5is5/Ivcu43EV9QWFlNal4o39GgfWfU9KUHy7eU7mRnu6aqUIFi5zlSVNNbdXJ8LD+Gog62yxZTddFrTTGqQmnPiTiJCXadszo7mXyJYnerom6oRflK647UVPnlF9JJFaoLEniywy0Pos3mNjmx13ux7btBY6yo0H144NAzva/U9OruYu6dU5ti53+7pLAriSlYrnclS+8dIe+KMARc7wq+EUkKPW3mxR5+n/9E19NnCNQFisQpAoJZM7ZWo3NrEOcGVmIF143VDWhkWBKQTQ2FGYPkUwDCkId8DfHL1xi3fAbSfYh2RaLudRp8FuAD4IzB2ZjAV4M0lnAKXfCm1xTupGAj0E1HOpGB5CFSAs8k+tRQpBnDCoNFTnJ+GYl1ViKvtwqwbKQzKAIyUAg+lDOeMVw2BL9evP/jHohcZ6h8gC1GNg4mOZhSWmBsjdr72lHZBZ/8sq/KbK82B1hf5MT3wB7Q6AMZMJhwC4v2HG1MlmtJobLkTJzxWIIWOwHgiTrFEt4xRN8SOOS6x5piAdvbZwytrZskNYx91/kgcC7XUkFMUp+HEJTwxgegG2w7RwVYQWvMiuv7C8DZrwLhXUYC150nMoAC+YxhaNMyI24ooXVxqCCmffAxiIlctswVr2lsuWubGqk5ZMi3aeRiiXQb1AtKuy3JtrZjdGqzuS/vkwz1caSnJ2euQhdps9nkVqiwd+mQwc6lCf9P/jK0YzVSSaHGAmZOZ58Wle/ZCGsT960INbImR0YVqudM3KpQllforFlgqPtWopNE0DjLtKAbTWTygXuHhUIXCM16QTc2JiHmjkJrY7SeF4bY5gOBou+DFicN9jFlYYXWkVl0gbTnAU7xt8wdqgrl+7Tw1SIg15SjtJJRm9srx5ooMLqswhVah0snhjJWC+fzK9Ez9qkhTpkFMgAPyyHdEhOmPoJAWYwTFxvfOyMzI7zBfTtSkq/gahz/0OnyzBuaHwhK4YKWYsT60do8jOAUDK3ISVGPKtQyZZmoYPRwGJJlOOfa2diUcMpr6OMTR3fOOK/R2X9lMNmATIW4kenZDf8iI1GOczp/RjVQVKbze9fLdfaonSVO5cCIYv7tNh60hy+iyrA/BmLlQ4tJ3krLGNbDZcu+fuyuZ17IzXPa/VKdeU5oOT8mGJY2BQxriBTsCMAWd3Se64G2EH6WcAbC27JbzDhl+fCaPeLkuRfnlNcPKOvMM5NOsCWXl6eUTwyRBEp94KGMo8MpNCl1cTqZ6EEgnaB9OzFex0ntJ7nd4uQ7MTt6SLhqs2XC3fueW/9aSo2XXbKm3CGYGjVVk1JWy6NMURPfESdTHe1vZ5HCikLMe1cfnJqqbeAjEUrUB6N3PujgfUd8+csb6Bwm6Sv49PF3JctTlCXGprWaXs2FcSq/uyI+vvIe3HL1QYDxsreSAc9wcnzyw9Hx66Pjny5Pjqffv54en5Svf3z19xxUoSSN4dzqlTR152NqMb8JjO2z79P+zXeDkOgmTTqHVjbKAZ/bEd4rtQOvykv9IwDPC9X4mMT89naJkT4Ft9mI+J+ewghP3rmEgqdX802hGkJDIVfkK62F6LSmTgo7zvThuyeQ3zXB2/NLtdn8B5xsg9Y= +sidebar_class_name: "get api-method" +info_path: openapi/wellknownconfiguration +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +GetWellKnownConfiguration + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/openapi/wellknownconfiguration.info.mdx b/docs/openapi/wellknownconfiguration.info.mdx new file mode 100644 index 0000000..3f54203 --- /dev/null +++ b/docs/openapi/wellknownconfiguration.info.mdx @@ -0,0 +1,35 @@ +--- +id: wellknownconfiguration +title: "wellknownconfiguration" +description: "[Preprocessed on 2025-06-09T20:36:02.681Z]" +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Heading from "@theme/Heading"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiExplorer/Export"; + + + + + + + + + +[Preprocessed on 2025-06-09T20:36:02.681Z] + + + \ No newline at end of file diff --git a/specs-processed/authorization/authorization.openapi.yaml b/specs-processed/authorization/authorization.openapi.yaml new file mode 100644 index 0000000..eca8ff1 --- /dev/null +++ b/specs-processed/authorization/authorization.openapi.yaml @@ -0,0 +1,1018 @@ +openapi: 3.1.0 +info: + title: authorization + description: '[Preprocessed on 2025-06-09T20:38:26.420Z] ' + version: v1 +paths: + /v1/authorization: + post: + tags: + - authorization.AuthorizationService + summary: GetDecisions + operationId: authorization.AuthorizationService.GetDecisions + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.GetDecisionsRequest' + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.GetDecisionsResponse' + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + /v1/token/authorization: + post: + tags: + - authorization.AuthorizationService + summary: GetDecisionsByToken + operationId: authorization.AuthorizationService.GetDecisionsByToken + parameters: + - name: decisionRequests.actions.id + in: query + description: Generated uuid in database + schema: + type: string + title: id + description: Generated uuid in database + - name: decisionRequests.actions.standard + in: query + description: Deprecated + schema: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + - name: decisionRequests.actions.custom + in: query + description: Deprecated + schema: + type: string + title: custom + description: Deprecated + - name: decisionRequests.actions.name + in: query + schema: + type: string + title: name + - name: decisionRequests.actions.metadata.createdAt.seconds + in: query + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + schema: + type: + - integer + - string + title: seconds + format: int64 + description: |- + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + - name: decisionRequests.actions.metadata.createdAt.nanos + in: query + description: >- + Non-negative fractions of a second at nanosecond resolution. + Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. + schema: + type: integer + title: nanos + format: int32 + description: >- + Non-negative fractions of a second at nanosecond resolution. + Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. + - name: decisionRequests.actions.metadata.labels.key + in: query + schema: + type: string + title: key + - name: decisionRequests.actions.metadata.labels.value + in: query + schema: + type: string + title: value + - name: decisionRequests.tokens.id + in: query + description: ephemeral id for tracking between request and response + schema: + type: string + title: id + description: ephemeral id for tracking between request and response + - name: decisionRequests.tokens.jwt + in: query + description: the token + schema: + type: string + title: jwt + description: the token + - name: decisionRequests.resourceAttributes.resourceAttributesId + in: query + schema: + type: string + title: resource_attributes_id + - name: decisionRequests.resourceAttributes.attributeValueFqns + in: query + schema: + type: array + items: + type: string + title: attribute_value_fqns + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.GetDecisionsByTokenResponse' + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + /v1/entitlements: + post: + tags: + - authorization.AuthorizationService + summary: GetEntitlements + operationId: authorization.AuthorizationService.GetEntitlements + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.GetEntitlementsRequest' + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.GetEntitlementsResponse' + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' +components: + schemas: + authorization.DecisionResponse.Decision: + type: string + title: Decision + enum: + - DECISION_UNSPECIFIED + - DECISION_DENY + - DECISION_PERMIT + authorization.Entity.Category: + type: string + title: Category + enum: + - CATEGORY_UNSPECIFIED + - CATEGORY_SUBJECT + - CATEGORY_ENVIRONMENT + policy.Action.StandardAction: + type: string + title: StandardAction + enum: + - STANDARD_ACTION_UNSPECIFIED + - STANDARD_ACTION_DECRYPT + - STANDARD_ACTION_TRANSMIT + authorization.DecisionRequest: + type: object + properties: + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + entityChains: + type: array + items: + $ref: '#/components/schemas/authorization.EntityChain' + title: entity_chains + resourceAttributes: + type: array + items: + $ref: '#/components/schemas/authorization.ResourceAttribute' + title: resource_attributes + title: DecisionRequest + additionalProperties: false + description: >- + Example Request Get Decisions to answer the question - Do Bob + (represented by entity chain ec1) + + and Alice (represented by entity chain ec2) have TRANSMIT authorization + for + + 2 resources; resource1 (attr-set-1) defined by attributes foo:bar + resource2 (attr-set-2) defined by attribute foo:bar, color:red ? + + + { + + "actions": [ + + { + + "standard": "STANDARD_ACTION_TRANSMIT" + + } + + ], + + "entityChains": [ + + { + + "id": "ec1", + + "entities": [ + + { + + "emailAddress": "bob@example.org" + + } + + ] + + }, + + { + + "id": "ec2", + + "entities": [ + + { + + "userName": "alice@example.org" + + } + + ] + + } + + ], + + "resourceAttributes": [ + + { + + "resourceAttributeId": "attr-set-1", + + "attributeFqns": [ + + "https://www.example.org/attr/foo/value/value1" + + ] + + }, + + { + + "resourceAttributeId": "attr-set-2", + + "attributeFqns": [ + + "https://example.net/attr/attr1/value/value1", + + "https://example.net/attr/attr1/value/value2" + + ] + + } + + ] + + } + authorization.DecisionResponse: + type: object + properties: + entityChainId: + type: string + title: entity_chain_id + description: ephemeral entity chain id from the request + resourceAttributesId: + type: string + title: resource_attributes_id + description: ephemeral resource attributes id from the request + action: + title: action + description: Action of the decision response + $ref: '#/components/schemas/policy.Action' + decision: + title: decision + description: The decision response + $ref: '#/components/schemas/authorization.DecisionResponse.Decision' + obligations: + type: array + items: + type: string + title: obligations + description: optional list of obligations represented in URI format + title: DecisionResponse + additionalProperties: false + description: >- + Example response for a Decision Request - Do Bob (represented by entity + chain ec1) + + and Alice (represented by entity chain ec2) have TRANSMIT authorization + for + + 2 resources; resource1 (attr-set-1) defined by attributes foo:bar + resource2 (attr-set-2) defined by attribute foo:bar, color:red ? + + + Results: + + - bob has permitted authorization to transmit for a resource defined by + attr-set-1 attributes and has a watermark obligation + + - bob has denied authorization to transmit a for a resource defined by + attr-set-2 attributes + + - alice has permitted authorization to transmit for a resource defined + by attr-set-1 attributes + + - alice has denied authorization to transmit a for a resource defined by + attr-set-2 attributes + + + { + + "entityChainId": "ec1", + + "resourceAttributesId": "attr-set-1", + + "decision": "DECISION_PERMIT", + + "obligations": [ + + "http://www.example.org/obligation/watermark" + + ] + + }, + + { + + "entityChainId": "ec1", + + "resourceAttributesId": "attr-set-2", + + "decision": "DECISION_PERMIT" + + }, + + { + + "entityChainId": "ec2", + + "resourceAttributesId": "attr-set-1", + + "decision": "DECISION_PERMIT" + + }, + + { + + "entityChainId": "ec2", + + "resourceAttributesId": "attr-set-2", + + "decision": "DECISION_DENY" + + } + authorization.Entity: + type: object + oneOf: + - properties: + claims: + title: claims + $ref: '#/components/schemas/google.protobuf.Any' + title: claims + required: + - claims + - properties: + clientId: + type: string + title: client_id + title: client_id + required: + - clientId + - properties: + custom: + title: custom + $ref: '#/components/schemas/authorization.EntityCustom' + title: custom + required: + - custom + - properties: + emailAddress: + type: string + title: email_address + description: one of the entity options must be set + title: email_address + required: + - emailAddress + - properties: + remoteClaimsUrl: + type: string + title: remote_claims_url + title: remote_claims_url + required: + - remoteClaimsUrl + - properties: + userName: + type: string + title: user_name + title: user_name + required: + - userName + - properties: + uuid: + type: string + title: uuid + title: uuid + required: + - uuid + properties: + id: + type: string + title: id + description: ephemeral id for tracking between request and response + category: + title: category + $ref: '#/components/schemas/authorization.Entity.Category' + title: Entity + additionalProperties: false + description: PE (Person Entity) or NPE (Non-Person Entity) + authorization.EntityChain: + type: object + properties: + id: + type: string + title: id + description: ephemeral id for tracking between request and response + entities: + type: array + items: + $ref: '#/components/schemas/authorization.Entity' + title: entities + title: EntityChain + additionalProperties: false + description: A set of related PE and NPE + authorization.EntityCustom: + type: object + properties: + extension: + title: extension + $ref: '#/components/schemas/google.protobuf.Any' + title: EntityCustom + additionalProperties: false + description: Entity type for custom entities beyond the standard types + authorization.EntityEntitlements: + type: object + properties: + entityId: + type: string + title: entity_id + attributeValueFqns: + type: array + items: + type: string + title: attribute_value_fqns + title: EntityEntitlements + additionalProperties: false + authorization.GetDecisionsByTokenRequest: + type: object + properties: + decisionRequests: + type: array + items: + $ref: '#/components/schemas/authorization.TokenDecisionRequest' + title: decision_requests + title: GetDecisionsByTokenRequest + additionalProperties: false + authorization.GetDecisionsByTokenResponse: + type: object + properties: + decisionResponses: + type: array + items: + $ref: '#/components/schemas/authorization.DecisionResponse' + title: decision_responses + title: GetDecisionsByTokenResponse + additionalProperties: false + authorization.GetDecisionsRequest: + type: object + properties: + decisionRequests: + type: array + items: + $ref: '#/components/schemas/authorization.DecisionRequest' + title: decision_requests + title: GetDecisionsRequest + additionalProperties: false + authorization.GetDecisionsResponse: + type: object + properties: + decisionResponses: + type: array + items: + $ref: '#/components/schemas/authorization.DecisionResponse' + title: decision_responses + title: GetDecisionsResponse + additionalProperties: false + authorization.GetEntitlementsRequest: + type: object + properties: + entities: + type: array + items: + $ref: '#/components/schemas/authorization.Entity' + title: entities + description: list of requested entities + scope: + title: scope + description: optional attribute fqn as a scope + nullable: true + $ref: '#/components/schemas/authorization.ResourceAttribute' + withComprehensiveHierarchy: + type: boolean + title: with_comprehensive_hierarchy + description: >- + optional parameter to return a full list of entitlements - returns + lower hierarchy attributes + nullable: true + title: GetEntitlementsRequest + additionalProperties: false + description: >- + Request to get entitlements for one or more entities for an optional + attribute scope + + + Example: Get entitlements for bob and alice (both represented using an + email address + + + { + + "entities": [ + + { + + "id": "e1", + + "emailAddress": "bob@example.org" + + }, + + { + + "id": "e2", + + "emailAddress": "alice@example.org" + + } + + ], + + "scope": { + + "attributeFqns": [ + + "https://example.net/attr/attr1/value/value1", + + "https://example.net/attr/attr1/value/value2" + + ] + + } + + } + authorization.GetEntitlementsResponse: + type: object + properties: + entitlements: + type: array + items: + $ref: '#/components/schemas/authorization.EntityEntitlements' + title: entitlements + title: GetEntitlementsResponse + additionalProperties: false + description: >- + Example Response for a request of : Get entitlements for bob and alice + (both represented using an email address + + + { + + "entitlements": [ + + { + + "entityId": "e1", + + "attributeValueReferences": [ + + { + + "attributeFqn": "http://www.example.org/attr/foo/value/bar" + + } + + ] + + }, + + { + + "entityId": "e2", + + "attributeValueReferences": [ + + { + + "attributeFqn": "http://www.example.org/attr/color/value/red" + + } + + ] + + } + + ] + + } + authorization.ResourceAttribute: + type: object + properties: + resourceAttributesId: + type: string + title: resource_attributes_id + attributeValueFqns: + type: array + items: + type: string + title: attribute_value_fqns + title: ResourceAttribute + additionalProperties: false + description: A logical bucket of attributes belonging to a "Resource" + authorization.Token: + type: object + properties: + id: + type: string + title: id + description: ephemeral id for tracking between request and response + jwt: + type: string + title: jwt + description: the token + title: Token + additionalProperties: false + authorization.TokenDecisionRequest: + type: object + properties: + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + tokens: + type: array + items: + $ref: '#/components/schemas/authorization.Token' + title: tokens + resourceAttributes: + type: array + items: + $ref: '#/components/schemas/authorization.ResourceAttribute' + title: resource_attributes + title: TokenDecisionRequest + additionalProperties: false + description: >- + Example Request Get Decisions by Token to answer the question - Do Bob + and client1 (represented by token tok1) + + and Alice and client2 (represented by token tok2) have TRANSMIT + authorization for + + 2 resources; resource1 (attr-set-1) defined by attributes foo:bar + resource2 (attr-set-2) defined by attribute foo:bar, color:red ? + + + { + + "actions": [ + + { + + "standard": "STANDARD_ACTION_TRANSMIT" + + } + + ], + + "tokens": [ + + { + + "id": "tok1", + + "jwt": .... + + }, + + { + + "id": "tok2", + + "jwt": ..... + + } + + ], + + "resourceAttributes": [ + + { + + "attributeFqns": [ + + "https://www.example.org/attr/foo/value/value1" + + ] + + }, + + { + + "attributeFqns": [ + + "https://example.net/attr/attr1/value/value1", + + "https://example.net/attr/attr1/value/value2" + + ] + + } + + ] + + } + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: >- + created_at set by server (entity who created will recorded in an + audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: >- + updated_at set by server (entity who updated will recorded in an + audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: >- + Contains an arbitrary serialized message along with a @type that + describes the type of the serialized message. + google.protobuf.Timestamp: + type: string + format: date-time + description: >- + A Timestamp represents a point in time independent of any time zone or + local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.Action: + type: object + oneOf: + - properties: + custom: + type: string + title: custom + description: Deprecated + title: custom + required: + - custom + - properties: + standard: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + title: standard + required: + - standard + properties: + id: + type: string + title: id + description: Generated uuid in database + name: + type: string + title: name + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: Action + additionalProperties: false + description: An action an entity can take + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: >- + The status code, which should be an enum value of + [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: >- + A developer-facing error message, which should be in English. Any + user-facing error message should be localized and sent in the + [google.rpc.Status.details][google.rpc.Status.details] field, or + localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: >- + Error type returned by Connect: + https://connectrpc.com/docs/go/errors/#http-representation +security: [] +tags: + - name: authorization.AuthorizationService +servers: + - url: https://example.com + description: Example OpenTDF platform URL diff --git a/specs-processed/authorization/v2/authorization.openapi.yaml b/specs-processed/authorization/v2/authorization.openapi.yaml new file mode 100644 index 0000000..8b71362 --- /dev/null +++ b/specs-processed/authorization/v2/authorization.openapi.yaml @@ -0,0 +1,795 @@ +openapi: 3.1.0 +info: + version: v2 + title: authorization.v2 + description: '[Preprocessed on 2025-06-09T20:38:26.422Z] ' +paths: + /authorization.v2.AuthorizationService/GetDecision: + post: + tags: + - authorization.v2.AuthorizationService + summary: GetDecision + operationId: authorization.v2.AuthorizationService.GetDecision + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetDecisionRequest' + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetDecisionResponse' + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + /authorization.v2.AuthorizationService/GetDecisionMultiResource: + post: + tags: + - authorization.v2.AuthorizationService + summary: GetDecisionMultiResource + operationId: authorization.v2.AuthorizationService.GetDecisionMultiResource + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/authorization.v2.GetDecisionMultiResourceRequest + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: >- + #/components/schemas/authorization.v2.GetDecisionMultiResourceResponse + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + /authorization.v2.AuthorizationService/GetDecisionBulk: + post: + tags: + - authorization.v2.AuthorizationService + summary: GetDecisionBulk + operationId: authorization.v2.AuthorizationService.GetDecisionBulk + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetDecisionBulkRequest' + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetDecisionBulkResponse' + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + /authorization.v2.AuthorizationService/GetEntitlements: + post: + tags: + - authorization.v2.AuthorizationService + summary: GetEntitlements + operationId: authorization.v2.AuthorizationService.GetEntitlements + parameters: + - name: Connect-Protocol-Version + in: header + required: true + schema: + $ref: '#/components/schemas/connect-protocol-version' + - name: Connect-Timeout-Ms + in: header + schema: + $ref: '#/components/schemas/connect-timeout-header' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetEntitlementsRequest' + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/authorization.v2.GetEntitlementsResponse' + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' +components: + schemas: + authorization.v2.Decision: + type: string + title: Decision + enum: + - DECISION_UNSPECIFIED + - DECISION_DENY + - DECISION_PERMIT + entity.Entity.Category: + type: string + title: Category + enum: + - CATEGORY_UNSPECIFIED + - CATEGORY_SUBJECT + - CATEGORY_ENVIRONMENT + policy.Action.StandardAction: + type: string + title: StandardAction + enum: + - STANDARD_ACTION_UNSPECIFIED + - STANDARD_ACTION_DECRYPT + - STANDARD_ACTION_TRANSMIT + authorization.v2.EntityEntitlements: + type: object + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + actionsPerAttributeValueFqn: + type: object + title: actions_per_attribute_value_fqn + additionalProperties: + title: value + $ref: >- + #/components/schemas/authorization.v2.EntityEntitlements.ActionsList + title: EntityEntitlements + additionalProperties: false + description: >- + Entitlements for a given entity, mapping each attribute value FQN to any + entitled actions[] + authorization.v2.EntityEntitlements.ActionsList: + type: object + properties: + actions: + type: array + items: + $ref: '#/components/schemas/policy.Action' + title: actions + title: ActionsList + additionalProperties: false + authorization.v2.EntityEntitlements.ActionsPerAttributeValueFqnEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/authorization.v2.EntityEntitlements.ActionsList' + title: ActionsPerAttributeValueFqnEntry + additionalProperties: false + authorization.v2.EntityIdentifier: + type: object + oneOf: + - properties: + entityChain: + title: entity_chain + description: |+ + chain of one or more entities + entities must be provided: + ``` + has(this.entities) && this.entities.size() > 0 + ``` + + $ref: '#/components/schemas/entity.EntityChain' + title: entity_chain + required: + - entityChain + - properties: + registeredResourceValueFqn: + type: string + title: registered_resource_value_fqn + minLength: 1 + format: uri + description: >- + fully qualified name of the registered resource value stored in + platform policy, where in + this case the resource acts as and represents a single entity for authorization/entitlement decisioning + title: registered_resource_value_fqn + required: + - registeredResourceValueFqn + - properties: + token: + title: token + description: >+ + access token (JWT), which is used to create an entity chain + (comprising one or more entities) + + token must be provided: + + ``` + + has(this.jwt) && this.jwt.size() > 0 + + ``` + + $ref: '#/components/schemas/entity.Token' + title: token + required: + - token + title: EntityIdentifier + additionalProperties: false + description: >- + The EntityIdentifier specifies the actor in an entitlement or decision + request - the PE, NPE, or PE+NPE being authorized. + The abstraction houses the distinct entity types, PE and/or NPE combinations, or a registered resource value + being treated as an entity in entitlement/authorization decisioning. + authorization.v2.GetDecisionBulkRequest: + type: object + properties: + decisionRequests: + type: array + items: + $ref: >- + #/components/schemas/authorization.v2.GetDecisionMultiResourceRequest + title: decision_requests + title: GetDecisionBulkRequest + additionalProperties: false + description: |- + Is access allowed? + 1. Multiplexing of a Decision request + This is a more performant bulk request for complex decisioning (i.e. multiple entity chains or actions on + multiple resources) + authorization.v2.GetDecisionBulkResponse: + type: object + properties: + decisionResponses: + type: array + items: + $ref: >- + #/components/schemas/authorization.v2.GetDecisionMultiResourceResponse + title: decision_responses + title: GetDecisionBulkResponse + additionalProperties: false + authorization.v2.GetDecisionMultiResourceRequest: + type: object + properties: + entityIdentifier: + title: entity_identifier + description: an entity must be identified for authorization decisioning + $ref: '#/components/schemas/authorization.v2.EntityIdentifier' + action: + title: action + description: name on action is required + $ref: '#/components/schemas/policy.Action' + resources: + type: array + items: + $ref: '#/components/schemas/authorization.v2.Resource' + title: resources + minItems: 1 + title: GetDecisionMultiResourceRequest + required: + - entityIdentifier + - action + - resources + additionalProperties: false + description: |+ + Can the identified entity/entities access? + 1. one entity reference (actor) + 2. one action + 3. multiple resources + Note: this is a more performant bulk request for multiple resource decisions + action.name must be provided: + ``` + has(this.action.name) + ``` + + authorization.v2.GetDecisionMultiResourceResponse: + type: object + properties: + allPermitted: + title: all_permitted + description: >- + convenience flag indicating global resource decisions result + (permit/deny) + $ref: '#/components/schemas/google.protobuf.BoolValue' + resourceDecisions: + type: array + items: + $ref: '#/components/schemas/authorization.v2.ResourceDecision' + title: resource_decisions + description: individual resource decisions + title: GetDecisionMultiResourceResponse + additionalProperties: false + authorization.v2.GetDecisionRequest: + type: object + properties: + entityIdentifier: + title: entity_identifier + description: an entity must be identified for authorization decisioning + $ref: '#/components/schemas/authorization.v2.EntityIdentifier' + action: + title: action + description: name on action is required + $ref: '#/components/schemas/policy.Action' + resource: + title: resource + $ref: '#/components/schemas/authorization.v2.Resource' + title: GetDecisionRequest + required: + - entityIdentifier + - action + - resource + additionalProperties: false + description: |+ + Can the identified entity/entities access? + 1. one entity reference (actor) + 2. one action + 3. one resource + action.name must be provided: + ``` + has(this.action.name) + ``` + + authorization.v2.GetDecisionResponse: + type: object + properties: + decision: + title: decision + description: >- + decision on the resource optional list of obligations represented in + URI format + repeated string obligations = 2; + $ref: '#/components/schemas/authorization.v2.ResourceDecision' + title: GetDecisionResponse + additionalProperties: false + authorization.v2.GetEntitlementsRequest: + type: object + properties: + entityIdentifier: + title: entity_identifier + description: an entity must be identified for entitlement decisioning + $ref: '#/components/schemas/authorization.v2.EntityIdentifier' + withComprehensiveHierarchy: + type: boolean + title: with_comprehensive_hierarchy + description: >- + optional parameter to return all entitled values for attribute + definitions with hierarchy rules, propagating + down the hierarchical values instead of returning solely the value that is directly entitled + nullable: true + title: GetEntitlementsRequest + required: + - entityIdentifier + additionalProperties: false + description: >- + What is permitted to the identified entity/entities (actor), broken down + as permitted actions on attribute value FQNs? + + Note: the v1 API parameter 'scope' has been dropped, and it is recommended to use + GetDecision if the resource is known + authorization.v2.GetEntitlementsResponse: + type: object + properties: + entitlements: + type: array + items: + $ref: '#/components/schemas/authorization.v2.EntityEntitlements' + title: entitlements + title: GetEntitlementsResponse + additionalProperties: false + authorization.v2.Resource: + type: object + oneOf: + - properties: + attributeValues: + title: attribute_values + description: |+ + if provided, resource.attribute_values must not be empty: + ``` + this.fqns.size() > 0 && this.fqns.all(item, item.isUri()) + ``` + + $ref: '#/components/schemas/authorization.v2.Resource.AttributeValues' + title: attribute_values + required: + - attributeValues + - properties: + registeredResourceValueFqn: + type: string + title: registered_resource_value_fqn + minLength: 1 + format: uri + title: registered_resource_value_fqn + required: + - registeredResourceValueFqn + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + title: Resource + additionalProperties: false + description: >- + Either a set of attribute values (such as those on a TDF) or a + registered resource value + authorization.v2.Resource.AttributeValues: + type: object + properties: + fqns: + type: array + items: + type: string + title: fqns + title: AttributeValues + additionalProperties: false + authorization.v2.ResourceDecision: + type: object + properties: + ephemeralResourceId: + type: string + title: ephemeral_resource_id + description: ephemeral id for tracking between request and response + decision: + title: decision + description: decision result + $ref: '#/components/schemas/authorization.v2.Decision' + title: ResourceDecision + additionalProperties: false + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: >- + created_at set by server (entity who created will recorded in an + audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: >- + updated_at set by server (entity who updated will recorded in an + audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + entity.Entity: + type: object + oneOf: + - properties: + claims: + title: claims + description: used by ERS claims mode + $ref: '#/components/schemas/google.protobuf.Any' + title: claims + required: + - claims + - properties: + clientId: + type: string + title: client_id + title: client_id + required: + - clientId + - properties: + emailAddress: + type: string + title: email_address + title: email_address + required: + - emailAddress + - properties: + userName: + type: string + title: user_name + title: user_name + required: + - userName + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + category: + title: category + $ref: '#/components/schemas/entity.Entity.Category' + title: Entity + additionalProperties: false + description: PE (Person Entity) or NPE (Non-Person Entity) + entity.EntityChain: + type: object + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + entities: + type: array + items: + $ref: '#/components/schemas/entity.Entity' + title: entities + title: EntityChain + additionalProperties: false + description: A set of related PE and NPE + entity.Token: + type: object + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + jwt: + type: string + title: jwt + description: the token + title: Token + required: + - jwt + additionalProperties: false + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: >- + Contains an arbitrary serialized message along with a @type that + describes the type of the serialized message. + google.protobuf.BoolValue: + type: boolean + description: |- + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + google.protobuf.Timestamp: + type: string + format: date-time + description: >- + A Timestamp represents a point in time independent of any time zone or + local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. + policy.Action: + type: object + oneOf: + - properties: + custom: + type: string + title: custom + description: Deprecated + title: custom + required: + - custom + - properties: + standard: + title: standard + description: Deprecated + $ref: '#/components/schemas/policy.Action.StandardAction' + title: standard + required: + - standard + properties: + id: + type: string + title: id + description: Generated uuid in database + name: + type: string + title: name + metadata: + title: metadata + $ref: '#/components/schemas/common.Metadata' + title: Action + additionalProperties: false + description: An action an entity can take + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: >- + The status code, which should be an enum value of + [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: >- + A developer-facing error message, which should be in English. Any + user-facing error message should be localized and sent in the + [google.rpc.Status.details][google.rpc.Status.details] field, or + localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: >- + Error type returned by Connect: + https://connectrpc.com/docs/go/errors/#http-representation +security: [] +tags: + - name: authorization.v2.AuthorizationService +servers: + - url: https://example.com + description: Example OpenTDF platform URL diff --git a/specs-processed/common/common.openapi.yaml b/specs-processed/common/common.openapi.yaml new file mode 100644 index 0000000..59a0602 --- /dev/null +++ b/specs-processed/common/common.openapi.yaml @@ -0,0 +1,183 @@ +openapi: 3.1.0 +info: + title: common + description: '[Preprocessed on 2025-06-09T20:38:26.425Z] ' + version: v1 +paths: {} +components: + schemas: + common.ActiveStateEnum: + type: string + title: ActiveStateEnum + enum: + - ACTIVE_STATE_ENUM_UNSPECIFIED + - ACTIVE_STATE_ENUM_ACTIVE + - ACTIVE_STATE_ENUM_INACTIVE + - ACTIVE_STATE_ENUM_ANY + description: >- + buflint ENUM_VALUE_PREFIX: to make sure that C++ scoping rules aren't + violated when users add new enum values to an enum in a given package + common.MetadataUpdateEnum: + type: string + title: MetadataUpdateEnum + enum: + - METADATA_UPDATE_ENUM_UNSPECIFIED + - METADATA_UPDATE_ENUM_EXTEND + - METADATA_UPDATE_ENUM_REPLACE + common.Metadata: + type: object + properties: + createdAt: + title: created_at + description: >- + created_at set by server (entity who created will recorded in an + audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + updatedAt: + title: updated_at + description: >- + updated_at set by server (entity who updated will recorded in an + audit event) + $ref: '#/components/schemas/google.protobuf.Timestamp' + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional short description + title: Metadata + additionalProperties: false + description: Struct to uniquely identify a resource with optional additional metadata + common.Metadata.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + common.MetadataMutable: + type: object + properties: + labels: + type: object + title: labels + additionalProperties: + type: string + title: value + description: optional labels + title: MetadataMutable + additionalProperties: false + common.MetadataMutable.LabelsEntry: + type: object + properties: + key: + type: string + title: key + value: + type: string + title: value + title: LabelsEntry + additionalProperties: false + google.protobuf.Timestamp: + type: string + format: date-time + description: >- + A Timestamp represents a point in time independent of any time zone or + local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. +security: [] +servers: + - url: https://example.com + description: Example OpenTDF platform URL diff --git a/specs-processed/entity/entity.openapi.yaml b/specs-processed/entity/entity.openapi.yaml new file mode 100644 index 0000000..1a1ddc2 --- /dev/null +++ b/specs-processed/entity/entity.openapi.yaml @@ -0,0 +1,107 @@ +openapi: 3.1.0 +info: + title: entity + description: '[Preprocessed on 2025-06-09T20:38:26.426Z] ' + version: v1 +paths: {} +components: + schemas: + entity.Entity.Category: + type: string + title: Category + enum: + - CATEGORY_UNSPECIFIED + - CATEGORY_SUBJECT + - CATEGORY_ENVIRONMENT + entity.Entity: + type: object + oneOf: + - properties: + claims: + title: claims + description: used by ERS claims mode + $ref: '#/components/schemas/google.protobuf.Any' + title: claims + required: + - claims + - properties: + clientId: + type: string + title: client_id + title: client_id + required: + - clientId + - properties: + emailAddress: + type: string + title: email_address + title: email_address + required: + - emailAddress + - properties: + userName: + type: string + title: user_name + title: user_name + required: + - userName + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + category: + title: category + $ref: '#/components/schemas/entity.Entity.Category' + title: Entity + additionalProperties: false + description: PE (Person Entity) or NPE (Non-Person Entity) + entity.EntityChain: + type: object + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + entities: + type: array + items: + $ref: '#/components/schemas/entity.Entity' + title: entities + title: EntityChain + additionalProperties: false + description: A set of related PE and NPE + entity.Token: + type: object + properties: + ephemeralId: + type: string + title: ephemeral_id + description: ephemeral id for tracking between request and response + jwt: + type: string + title: jwt + description: the token + title: Token + required: + - jwt + additionalProperties: false + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: >- + Contains an arbitrary serialized message along with a @type that + describes the type of the serialized message. +security: [] +servers: + - url: https://example.com + description: Example OpenTDF platform URL diff --git a/specs-processed/entityresolution/entity_resolution.openapi.yaml b/specs-processed/entityresolution/entity_resolution.openapi.yaml new file mode 100644 index 0000000..8f39830 --- /dev/null +++ b/specs-processed/entityresolution/entity_resolution.openapi.yaml @@ -0,0 +1,455 @@ +openapi: 3.1.0 +info: + title: entityresolution + description: '[Preprocessed on 2025-06-09T20:38:26.427Z] ' + version: v1 +paths: + /entityresolution/resolve: + post: + tags: + - entityresolution.EntityResolutionService + summary: ResolveEntities + description: 'Deprecated: use v2 ResolveEntities instead' + operationId: entityresolution.EntityResolutionService.ResolveEntities + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/entityresolution.ResolveEntitiesRequest' + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/entityresolution.ResolveEntitiesResponse' + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + /entityresolution/entitychain: + post: + tags: + - entityresolution.EntityResolutionService + summary: CreateEntityChainFromJwt + description: 'Deprecated: use v2 CreateEntityChainsFromTokens instead' + operationId: entityresolution.EntityResolutionService.CreateEntityChainFromJwt + requestBody: + content: + application/json: + schema: + $ref: >- + #/components/schemas/entityresolution.CreateEntityChainFromJwtRequest + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: >- + #/components/schemas/entityresolution.CreateEntityChainFromJwtResponse + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' +components: + schemas: + authorization.Entity.Category: + type: string + title: Category + enum: + - CATEGORY_UNSPECIFIED + - CATEGORY_SUBJECT + - CATEGORY_ENVIRONMENT + google.protobuf.NullValue: + type: string + title: NullValue + enum: + - NULL_VALUE + description: >- + `NullValue` is a singleton enumeration to represent the null value for + the + `Value` type union. + + The JSON representation for `NullValue` is JSON `null`. + authorization.Entity: + type: object + oneOf: + - properties: + claims: + title: claims + $ref: '#/components/schemas/google.protobuf.Any' + title: claims + required: + - claims + - properties: + clientId: + type: string + title: client_id + title: client_id + required: + - clientId + - properties: + custom: + title: custom + $ref: '#/components/schemas/authorization.EntityCustom' + title: custom + required: + - custom + - properties: + emailAddress: + type: string + title: email_address + description: one of the entity options must be set + title: email_address + required: + - emailAddress + - properties: + remoteClaimsUrl: + type: string + title: remote_claims_url + title: remote_claims_url + required: + - remoteClaimsUrl + - properties: + userName: + type: string + title: user_name + title: user_name + required: + - userName + - properties: + uuid: + type: string + title: uuid + title: uuid + required: + - uuid + properties: + id: + type: string + title: id + description: ephemeral id for tracking between request and response + category: + title: category + $ref: '#/components/schemas/authorization.Entity.Category' + title: Entity + additionalProperties: false + description: PE (Person Entity) or NPE (Non-Person Entity) + authorization.EntityChain: + type: object + properties: + id: + type: string + title: id + description: ephemeral id for tracking between request and response + entities: + type: array + items: + $ref: '#/components/schemas/authorization.Entity' + title: entities + title: EntityChain + additionalProperties: false + description: A set of related PE and NPE + authorization.EntityCustom: + type: object + properties: + extension: + title: extension + $ref: '#/components/schemas/google.protobuf.Any' + title: EntityCustom + additionalProperties: false + description: Entity type for custom entities beyond the standard types + authorization.Token: + type: object + properties: + id: + type: string + title: id + description: ephemeral id for tracking between request and response + jwt: + type: string + title: jwt + description: the token + title: Token + additionalProperties: false + entityresolution.CreateEntityChainFromJwtRequest: + type: object + properties: + tokens: + type: array + items: + $ref: '#/components/schemas/authorization.Token' + title: tokens + title: CreateEntityChainFromJwtRequest + additionalProperties: false + description: |- + Example: Get Entity chains for tokens aaaaaa and bbbbbb + { + "tokens": [ + "aaaaaaa", + "bbbbbbbb" + ] + } + entityresolution.CreateEntityChainFromJwtResponse: + type: object + properties: + entityChains: + type: array + items: + $ref: '#/components/schemas/authorization.EntityChain' + title: entity_chains + title: CreateEntityChainFromJwtResponse + additionalProperties: false + description: |- + Example: Return the entity chains from the provided tokens + { + "entity_chains": [ + { + "id": "tok1", + "entities": [ + { + "clientId": "client1" + } + ] + }, + { + "id": "tok2", + "entities": [ + { + "userName": "alice", + "clientId": "client2" + } + ] + } + ] + } + entityresolution.EntityNotFoundError: + type: object + properties: + code: + type: integer + title: code + format: int32 + message: + type: string + title: message + details: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Any' + title: details + entity: + type: string + title: entity + title: EntityNotFoundError + additionalProperties: false + entityresolution.EntityRepresentation: + type: object + properties: + additionalProps: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Struct' + title: additional_props + originalId: + type: string + title: original_id + description: ephemeral entity id from the request + title: EntityRepresentation + additionalProperties: false + entityresolution.ResolveEntitiesRequest: + type: object + properties: + entities: + type: array + items: + $ref: '#/components/schemas/authorization.Entity' + title: entities + title: ResolveEntitiesRequest + additionalProperties: false + description: >- + Example: Get idp attributes for bob and alice (both represented using an + email address + + { + + "entities": [ + + { + + "id": "e1", + + "emailAddress": "bob@example.org" + + }, + + { + + "id": "e2", + + "emailAddress": "alice@example.org" + + } + + ] + + } + entityresolution.ResolveEntitiesResponse: + type: object + properties: + entityRepresentations: + type: array + items: + $ref: '#/components/schemas/entityresolution.EntityRepresentation' + title: entity_representations + title: ResolveEntitiesResponse + additionalProperties: false + description: |- + Example: Get idp attributes for bob and alice + { + "entity_representations": [ + { + "idp_entity_id": "e1", + "additional_props": {"someAttr1":"someValue1"} + }, + { + "idp_entity_id": "e2", + "additional_props": {"someAttr2":"someValue2"} + } + ] + } + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: >- + Contains an arbitrary serialized message along with a @type that + describes the type of the serialized message. + google.protobuf.ListValue: + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Value' + title: values + description: Repeated field of dynamically typed values. + title: ListValue + additionalProperties: false + description: |- + `ListValue` is a wrapper around a repeated field of values. + + The JSON representation for `ListValue` is JSON array. + google.protobuf.Struct: + type: object + additionalProperties: + $ref: '#/components/schemas/google.protobuf.Value' + description: |- + `Struct` represents a structured data value, consisting of fields + which map to dynamically typed values. In some languages, `Struct` + might be supported by a native representation. For example, in + scripting languages like JS a struct is represented as an + object. The details of that representation are described together + with the proto support for the language. + + The JSON representation for `Struct` is JSON object. + google.protobuf.Struct.FieldsEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + title: FieldsEntry + additionalProperties: false + google.protobuf.Value: + oneOf: + - type: 'null' + - type: number + - type: string + - type: boolean + - type: array + - type: object + additionalProperties: true + description: |- + `Value` represents a dynamically typed value which can be either + null, a number, a string, a boolean, a recursive struct value, or a + list of values. A producer of value is expected to set one of these + variants. Absence of any variant indicates an error. + + The JSON representation for `Value` is JSON value. + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: >- + The status code, which should be an enum value of + [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: >- + A developer-facing error message, which should be in English. Any + user-facing error message should be localized and sent in the + [google.rpc.Status.details][google.rpc.Status.details] field, or + localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: >- + Error type returned by Connect: + https://connectrpc.com/docs/go/errors/#http-representation +security: [] +tags: + - name: entityresolution.EntityResolutionService +servers: + - url: https://example.com + description: Example OpenTDF platform URL diff --git a/specs-processed/kas/kas.openapi.yaml b/specs-processed/kas/kas.openapi.yaml new file mode 100644 index 0000000..67214a7 --- /dev/null +++ b/specs-processed/kas/kas.openapi.yaml @@ -0,0 +1,511 @@ +openapi: 3.1.0 +info: + title: kas + description: '[Preprocessed on 2025-06-09T20:38:26.428Z] ' + version: v1 +paths: + /kas/v2/kas_public_key: + get: + tags: + - kas.AccessService + summary: PublicKey + operationId: kas.AccessService.PublicKey + parameters: + - name: algorithm + in: query + schema: + type: string + title: algorithm + - name: fmt + in: query + schema: + type: string + title: fmt + - name: v + in: query + schema: + type: string + title: v + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/kas.PublicKeyResponse' + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + /kas/kas_public_key: + get: + tags: + - kas.AccessService + summary: LegacyPublicKey + description: buf:lint:ignore RPC_RESPONSE_STANDARD_NAME + operationId: kas.AccessService.LegacyPublicKey + parameters: + - name: algorithm + in: query + schema: + type: string + title: algorithm + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/google.protobuf.StringValue' + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' + /kas/v2/rewrap: + post: + tags: + - kas.AccessService + summary: Rewrap + operationId: kas.AccessService.Rewrap + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/kas.RewrapRequest' + required: true + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/kas.RewrapResponse' + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' +components: + schemas: + google.protobuf.NullValue: + type: string + title: NullValue + enum: + - NULL_VALUE + description: >- + `NullValue` is a singleton enumeration to represent the null value for + the + `Value` type union. + + The JSON representation for `NullValue` is JSON `null`. + google.protobuf.ListValue: + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Value' + title: values + description: Repeated field of dynamically typed values. + title: ListValue + additionalProperties: false + description: |- + `ListValue` is a wrapper around a repeated field of values. + + The JSON representation for `ListValue` is JSON array. + google.protobuf.StringValue: + type: string + description: |- + Wrapper message for `string`. + + The JSON representation for `StringValue` is JSON string. + google.protobuf.Struct: + type: object + additionalProperties: + $ref: '#/components/schemas/google.protobuf.Value' + description: |- + `Struct` represents a structured data value, consisting of fields + which map to dynamically typed values. In some languages, `Struct` + might be supported by a native representation. For example, in + scripting languages like JS a struct is represented as an + object. The details of that representation are described together + with the proto support for the language. + + The JSON representation for `Struct` is JSON object. + google.protobuf.Struct.FieldsEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + title: FieldsEntry + additionalProperties: false + google.protobuf.Value: + oneOf: + - type: 'null' + - type: number + - type: string + - type: boolean + - type: array + - type: object + additionalProperties: true + description: |- + `Value` represents a dynamically typed value which can be either + null, a number, a string, a boolean, a recursive struct value, or a + list of values. A producer of value is expected to set one of these + variants. Absence of any variant indicates an error. + + The JSON representation for `Value` is JSON value. + kas.InfoRequest: + type: object + title: InfoRequest + additionalProperties: false + description: Intentionally empty. May include features later. + kas.InfoResponse: + type: object + properties: + version: + type: string + title: version + title: InfoResponse + additionalProperties: false + description: Service application level metadata + kas.KeyAccess: + type: object + properties: + encryptedMetadata: + type: string + title: encrypted_metadata + policyBinding: + title: policy_binding + $ref: '#/components/schemas/kas.PolicyBinding' + protocol: + type: string + title: protocol + type: + type: string + title: key_type + url: + type: string + title: kas_url + kid: + type: string + title: kid + sid: + type: string + title: split_id + wrappedKey: + type: string + title: wrapped_key + format: byte + header: + type: string + title: header + format: byte + description: header is only used for NanoTDFs + ephemeralPublicKey: + type: string + title: ephemeral_public_key + description: |- + For wrapping with an ECDH derived key, when type=ec-wrapped. + Should be a PEM-encoded PKCS#8 (asn.1) value. + title: KeyAccess + additionalProperties: false + kas.KeyAccessRewrapResult: + type: object + oneOf: + - properties: + error: + type: string + title: error + title: error + required: + - error + - properties: + kasWrappedKey: + type: string + title: kas_wrapped_key + format: byte + title: kas_wrapped_key + required: + - kasWrappedKey + properties: + metadata: + type: object + title: metadata + additionalProperties: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + keyAccessObjectId: + type: string + title: key_access_object_id + status: + type: string + title: status + title: KeyAccessRewrapResult + additionalProperties: false + kas.KeyAccessRewrapResult.MetadataEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + title: MetadataEntry + additionalProperties: false + kas.LegacyPublicKeyRequest: + type: object + properties: + algorithm: + type: string + title: algorithm + title: LegacyPublicKeyRequest + additionalProperties: false + kas.PolicyBinding: + type: object + properties: + alg: + type: string + title: algorithm + hash: + type: string + title: hash + title: PolicyBinding + additionalProperties: false + kas.PolicyRewrapResult: + type: object + properties: + policyId: + type: string + title: policy_id + results: + type: array + items: + $ref: '#/components/schemas/kas.KeyAccessRewrapResult' + title: results + title: PolicyRewrapResult + additionalProperties: false + kas.PublicKeyRequest: + type: object + properties: + algorithm: + type: string + title: algorithm + fmt: + type: string + title: fmt + v: + type: string + title: v + title: PublicKeyRequest + additionalProperties: false + kas.PublicKeyResponse: + type: object + properties: + publicKey: + type: string + title: public_key + kid: + type: string + title: kid + title: PublicKeyResponse + additionalProperties: false + kas.RewrapRequest: + type: object + properties: + signedRequestToken: + type: string + title: signed_request_token + title: RewrapRequest + additionalProperties: false + kas.RewrapResponse: + type: object + properties: + metadata: + type: object + title: metadata + additionalProperties: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + deprecated: true + entityWrappedKey: + type: string + title: entity_wrapped_key + format: byte + deprecated: true + sessionPublicKey: + type: string + title: session_public_key + schemaVersion: + type: string + title: schema_version + deprecated: true + responses: + type: array + items: + $ref: '#/components/schemas/kas.PolicyRewrapResult' + title: responses + description: New Rewrap API changes + title: RewrapResponse + additionalProperties: false + kas.RewrapResponse.MetadataEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + title: MetadataEntry + additionalProperties: false + kas.UnsignedRewrapRequest: + type: object + properties: + clientPublicKey: + type: string + title: client_public_key + requests: + type: array + items: + $ref: '#/components/schemas/kas.UnsignedRewrapRequest.WithPolicyRequest' + title: requests + keyAccess: + title: key_access + description: Used for legacy non-bulk requests + deprecated: true + $ref: '#/components/schemas/kas.KeyAccess' + policy: + type: string + title: policy + description: Used for legacy non-bulk requests + deprecated: true + algorithm: + type: string + title: algorithm + description: Used for legacy non-bulk requests + deprecated: true + title: UnsignedRewrapRequest + additionalProperties: false + kas.UnsignedRewrapRequest.WithKeyAccessObject: + type: object + properties: + keyAccessObjectId: + type: string + title: key_access_object_id + keyAccessObject: + title: key_access_object + $ref: '#/components/schemas/kas.KeyAccess' + title: WithKeyAccessObject + additionalProperties: false + kas.UnsignedRewrapRequest.WithPolicy: + type: object + properties: + id: + type: string + title: id + body: + type: string + title: body + title: WithPolicy + additionalProperties: false + kas.UnsignedRewrapRequest.WithPolicyRequest: + type: object + properties: + keyAccessObjects: + type: array + items: + $ref: '#/components/schemas/kas.UnsignedRewrapRequest.WithKeyAccessObject' + title: key_access_objects + policy: + title: policy + $ref: '#/components/schemas/kas.UnsignedRewrapRequest.WithPolicy' + algorithm: + type: string + title: algorithm + title: WithPolicyRequest + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: >- + The status code, which should be an enum value of + [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: >- + A developer-facing error message, which should be in English. Any + user-facing error message should be localized and sent in the + [google.rpc.Status.details][google.rpc.Status.details] field, or + localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: >- + Error type returned by Connect: + https://connectrpc.com/docs/go/errors/#http-representation + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: >- + Contains an arbitrary serialized message along with a @type that + describes the type of the serialized message. +security: [] +tags: + - name: kas.AccessService + description: Get app info from the root path +servers: + - url: https://example.com + description: Example OpenTDF platform URL diff --git a/specs-processed/wellknownconfiguration/wellknown_configuration.openapi.yaml b/specs-processed/wellknownconfiguration/wellknown_configuration.openapi.yaml new file mode 100644 index 0000000..0df77f5 --- /dev/null +++ b/specs-processed/wellknownconfiguration/wellknown_configuration.openapi.yaml @@ -0,0 +1,201 @@ +openapi: 3.1.0 +info: + title: wellknownconfiguration + description: '[Preprocessed on 2025-06-09T20:38:26.429Z] ' + version: v1 +paths: + /.well-known/opentdf-configuration: + get: + tags: + - wellknownconfiguration.WellKnownService + summary: GetWellKnownConfiguration + operationId: wellknownconfiguration.WellKnownService.GetWellKnownConfiguration + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: >- + #/components/schemas/wellknownconfiguration.GetWellKnownConfigurationResponse + default: + description: Error + content: + application/json: + schema: + $ref: '#/components/schemas/connect.error' +components: + schemas: + google.protobuf.NullValue: + type: string + title: NullValue + enum: + - NULL_VALUE + description: >- + `NullValue` is a singleton enumeration to represent the null value for + the + `Value` type union. + + The JSON representation for `NullValue` is JSON `null`. + google.protobuf.ListValue: + type: object + properties: + values: + type: array + items: + $ref: '#/components/schemas/google.protobuf.Value' + title: values + description: Repeated field of dynamically typed values. + title: ListValue + additionalProperties: false + description: |- + `ListValue` is a wrapper around a repeated field of values. + + The JSON representation for `ListValue` is JSON array. + google.protobuf.Struct: + type: object + additionalProperties: + $ref: '#/components/schemas/google.protobuf.Value' + description: |- + `Struct` represents a structured data value, consisting of fields + which map to dynamically typed values. In some languages, `Struct` + might be supported by a native representation. For example, in + scripting languages like JS a struct is represented as an + object. The details of that representation are described together + with the proto support for the language. + + The JSON representation for `Struct` is JSON object. + google.protobuf.Struct.FieldsEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Value' + title: FieldsEntry + additionalProperties: false + google.protobuf.Value: + oneOf: + - type: 'null' + - type: number + - type: string + - type: boolean + - type: array + - type: object + additionalProperties: true + description: |- + `Value` represents a dynamically typed value which can be either + null, a number, a string, a boolean, a recursive struct value, or a + list of values. A producer of value is expected to set one of these + variants. Absence of any variant indicates an error. + + The JSON representation for `Value` is JSON value. + wellknownconfiguration.GetWellKnownConfigurationRequest: + type: object + title: GetWellKnownConfigurationRequest + additionalProperties: false + wellknownconfiguration.GetWellKnownConfigurationResponse: + type: object + properties: + configuration: + title: configuration + $ref: '#/components/schemas/google.protobuf.Struct' + title: GetWellKnownConfigurationResponse + additionalProperties: false + wellknownconfiguration.WellKnownConfig: + type: object + properties: + configuration: + type: object + title: configuration + additionalProperties: + title: value + $ref: '#/components/schemas/google.protobuf.Struct' + title: WellKnownConfig + additionalProperties: false + wellknownconfiguration.WellKnownConfig.ConfigurationEntry: + type: object + properties: + key: + type: string + title: key + value: + title: value + $ref: '#/components/schemas/google.protobuf.Struct' + title: ConfigurationEntry + additionalProperties: false + connect-protocol-version: + type: number + title: Connect-Protocol-Version + enum: + - 1 + description: Define the version of the Connect protocol + const: 1 + connect-timeout-header: + type: number + title: Connect-Timeout-Ms + description: Define the timeout, in ms + connect.error: + type: object + properties: + code: + type: string + examples: + - not_found + enum: + - canceled + - unknown + - invalid_argument + - deadline_exceeded + - not_found + - already_exists + - permission_denied + - resource_exhausted + - failed_precondition + - aborted + - out_of_range + - unimplemented + - internal + - unavailable + - data_loss + - unauthenticated + description: >- + The status code, which should be an enum value of + [google.rpc.Code][google.rpc.Code]. + message: + type: string + description: >- + A developer-facing error message, which should be in English. Any + user-facing error message should be localized and sent in the + [google.rpc.Status.details][google.rpc.Status.details] field, or + localized by the client. + detail: + $ref: '#/components/schemas/google.protobuf.Any' + title: Connect Error + additionalProperties: true + description: >- + Error type returned by Connect: + https://connectrpc.com/docs/go/errors/#http-representation + google.protobuf.Any: + type: object + properties: + type: + type: string + value: + type: string + format: binary + debug: + type: object + additionalProperties: true + additionalProperties: true + description: >- + Contains an arbitrary serialized message along with a @type that + describes the type of the serialized message. +security: [] +tags: + - name: wellknownconfiguration.WellKnownService +servers: + - url: https://example.com + description: Example OpenTDF platform URL From 8f1b2f74f2852aab5010e834bf5553a64b9aa7e4 Mon Sep 17 00:00:00 2001 From: b-long Date: Mon, 9 Jun 2025 13:56:16 -0400 Subject: [PATCH 14/37] Use original (vendored) openapi specs --- specs/authorization/v2/authorization.openapi.yaml | 1 + specs/kas/kas.swagger.json | 1 + 2 files changed, 2 insertions(+) diff --git a/specs/authorization/v2/authorization.openapi.yaml b/specs/authorization/v2/authorization.openapi.yaml index dc54df1..17bae79 100644 --- a/specs/authorization/v2/authorization.openapi.yaml +++ b/specs/authorization/v2/authorization.openapi.yaml @@ -1,5 +1,6 @@ openapi: 3.1.0 info: + version: v2 title: authorization.v2 paths: /authorization.v2.AuthorizationService/GetDecision: diff --git a/specs/kas/kas.swagger.json b/specs/kas/kas.swagger.json index d422537..bd99817 100644 --- a/specs/kas/kas.swagger.json +++ b/specs/kas/kas.swagger.json @@ -2,6 +2,7 @@ "swagger": "2.0", "info": { "title": "OpenTDF Key Access Service", + "description": "The Key Access Service (KAS) provides access to keys and key metadata for the OpenTDF system. It supports legacy and v2 endpoints for retrieving public keys and rewrapping keys.", "version": "1.5.0", "license": { "name": "BSD 3-Clause Clear", From d846b41a79be6af3762c1e9e984d85730223d2c5 Mon Sep 17 00:00:00 2001 From: b-long Date: Mon, 9 Jun 2025 13:56:36 -0400 Subject: [PATCH 15/37] package.json that works --- package-lock.json | 9742 +++++++++++++++++++++++++-------------------- package.json | 3 +- 2 files changed, 5347 insertions(+), 4398 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6049694..4da39f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "@mdx-js/react": "^3.1.0", "clsx": "^2.0.0", "docusaurus-lunr-search": "^3.6.0", + "docusaurus-plugin-openapi-docs": "^4.4.0", "docusaurus-plugin-remote-content": "^4.0.0", "docusaurus-theme-github-codeblock": "^2.0.2", "docusaurus-theme-openapi-docs": "^4.4.0", @@ -43,31 +44,34 @@ } }, "node_modules/@algolia/autocomplete-core": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz", - "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz", + "integrity": "sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==", + "license": "MIT", "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", - "@algolia/autocomplete-shared": "1.17.7" + "@algolia/autocomplete-plugin-algolia-insights": "1.17.9", + "@algolia/autocomplete-shared": "1.17.9" } }, "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz", - "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz", + "integrity": "sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==", + "license": "MIT", "dependencies": { - "@algolia/autocomplete-shared": "1.17.7" + "@algolia/autocomplete-shared": "1.17.9" }, "peerDependencies": { "search-insights": ">= 1 < 3" } }, "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz", - "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz", + "integrity": "sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==", + "license": "MIT", "dependencies": { - "@algolia/autocomplete-shared": "1.17.7" + "@algolia/autocomplete-shared": "1.17.9" }, "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", @@ -75,172 +79,109 @@ } }, "node_modules/@algolia/autocomplete-shared": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", - "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz", + "integrity": "sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==", + "license": "MIT", "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" } }, - "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz", - "integrity": "sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==", - "dependencies": { - "@algolia/cache-common": "4.24.0" - } - }, - "node_modules/@algolia/cache-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.24.0.tgz", - "integrity": "sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==" - }, - "node_modules/@algolia/cache-in-memory": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz", - "integrity": "sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==", - "dependencies": { - "@algolia/cache-common": "4.24.0" - } - }, "node_modules/@algolia/client-abtesting": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.15.0.tgz", - "integrity": "sha512-FaEM40iuiv1mAipYyiptP4EyxkJ8qHfowCpEeusdHUC4C7spATJYArD2rX3AxkVeREkDIgYEOuXcwKUbDCr7Nw==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.27.0.tgz", + "integrity": "sha512-SITU5umoknxETtw67TxJu9njyMkWiH8pM+Bvw4dzfuIrIAT6Y1rmwV4y0A0didWoT+6xVuammIykbtBMolBcmg==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, - "node_modules/@algolia/client-account": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz", - "integrity": "sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-account/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-account/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, "node_modules/@algolia/client-analytics": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz", - "integrity": "sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-analytics/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-analytics/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.27.0.tgz", + "integrity": "sha512-go1b9qIZK5vYEQ7jD2bsfhhhVsoh9cFxQ5xF8TzTsg2WOCZR3O92oXCkq15SOK0ngJfqDU6a/k0oZ4KuEnih1Q==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.15.0.tgz", - "integrity": "sha512-IofrVh213VLsDkPoSKMeM9Dshrv28jhDlBDLRcVJQvlL8pzue7PEB1EZ4UoJFYS3NSn7JOcJ/V+olRQzXlJj1w==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.27.0.tgz", + "integrity": "sha512-tnFOzdNuMzsz93kOClj3fKfuYoF3oYaEB5bggULSj075GJ7HUNedBEm7a6ScrjtnOaOtipbnT7veUpHA4o4wEQ==", + "license": "MIT", "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-insights": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.15.0.tgz", - "integrity": "sha512-bDDEQGfFidDi0UQUCbxXOCdphbVAgbVmxvaV75cypBTQkJ+ABx/Npw7LkFGw1FsoVrttlrrQbwjvUB6mLVKs/w==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.27.0.tgz", + "integrity": "sha512-y1qgw39qZijjQBXrqZTiwK1cWgWGRiLpJNWBv9w36nVMKfl9kInrfsYmdBAfmlhVgF/+Woe0y1jQ7pa4HyShAw==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz", - "integrity": "sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/client-personalization/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.27.0.tgz", + "integrity": "sha512-XluG9qPZKEbiLoIfXTKbABsWDNOMPx0t6T2ImJTTeuX+U/zBdmfcqqgcgkqXp+vbXof/XX/4of9Eqo1JaqEmKw==", + "license": "MIT", "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.15.0.tgz", - "integrity": "sha512-wu8GVluiZ5+il8WIRsGKu8VxMK9dAlr225h878GGtpTL6VBvwyJvAyLdZsfFIpY0iN++jiNb31q2C1PlPL+n/A==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.27.0.tgz", + "integrity": "sha512-V8/To+SsAl2sdw2AAjeLJuCW1L+xpz+LAGerJK7HKqHzE5yQhWmIWZTzqYQcojkii4iBMYn0y3+uReWqT8XVSQ==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.15.0.tgz", - "integrity": "sha512-Z32gEMrRRpEta5UqVQA612sLdoqY3AovvUPClDfMxYrbdDAebmGDVPtSogUba1FZ4pP5dx20D3OV3reogLKsRA==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.27.0.tgz", + "integrity": "sha512-EJJ7WmvmUXZdchueKFCK8UZFyLqy4Hz64snNp0cTc7c0MKaSeDGYEDxVsIJKp15r7ORaoGxSyS4y6BGZMXYuCg==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" @@ -249,154 +190,95 @@ "node_modules/@algolia/events": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", - "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==", + "license": "MIT" }, "node_modules/@algolia/ingestion": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.15.0.tgz", - "integrity": "sha512-MkqkAxBQxtQ5if/EX2IPqFA7LothghVyvPoRNA/meS2AW2qkHwcxjuiBxv4H6mnAVEPfJlhu9rkdVz9LgCBgJg==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.27.0.tgz", + "integrity": "sha512-xNCyWeqpmEo4EdmpG57Fs1fJIQcPwt5NnJ6MBdXnUdMVXF4f5PHgza+HQWQQcYpCsune96jfmR0v7us6gRIlCw==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, - "node_modules/@algolia/logger-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz", - "integrity": "sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==" - }, - "node_modules/@algolia/logger-console": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.24.0.tgz", - "integrity": "sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==", - "dependencies": { - "@algolia/logger-common": "4.24.0" - } - }, "node_modules/@algolia/monitoring": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.15.0.tgz", - "integrity": "sha512-QPrFnnGLMMdRa8t/4bs7XilPYnoUXDY8PMQJ1sf9ZFwhUysYYhQNX34/enoO0LBjpoOY6rLpha39YQEFbzgKyQ==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.27.0.tgz", + "integrity": "sha512-P0NDiEFyt9UYQLBI0IQocIT7xHpjMpoFN3UDeerbztlkH9HdqT0GGh1SHYmNWpbMWIGWhSJTtz6kSIWvFu4+pw==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz", - "integrity": "sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.24.0", - "@algolia/cache-common": "4.24.0", - "@algolia/cache-in-memory": "4.24.0", - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/logger-console": "4.24.0", - "@algolia/requester-browser-xhr": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/requester-node-http": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/requester-browser-xhr": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", - "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", - "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.27.0.tgz", + "integrity": "sha512-cqfTMF1d1cc7hg0vITNAFxJZas7MJ4Obc36WwkKpY23NOtGb+4tH9X7UKlQa2PmTgbXIANoJ/DAQTeiVlD2I4Q==", + "license": "MIT", "dependencies": { - "@algolia/requester-common": "4.24.0" + "@algolia/client-common": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.15.0.tgz", - "integrity": "sha512-Po/GNib6QKruC3XE+WKP1HwVSfCDaZcXu48kD+gwmtDlqHWKc7Bq9lrS0sNZ456rfCKhXksOmMfUs4wRM/Y96w==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.27.0.tgz", + "integrity": "sha512-ErenYTcXl16wYXtf0pxLl9KLVxIztuehqXHfW9nNsD8mz9OX42HbXuPzT7y6JcPiWJpc/UU/LY5wBTB65vsEUg==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.15.0" + "@algolia/client-common": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, - "node_modules/@algolia/requester-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.24.0.tgz", - "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==" - }, "node_modules/@algolia/requester-fetch": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.15.0.tgz", - "integrity": "sha512-rOZ+c0P7ajmccAvpeeNrUmEKoliYFL8aOR5qGW5pFq3oj3Iept7Y5mEtEsOBYsRt6qLnaXn4zUKf+N8nvJpcIw==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.27.0.tgz", + "integrity": "sha512-CNOvmXsVi+IvT7z1d+6X7FveVkgEQwTNgipjQCHTIbF9KSMfZR7tUsJC+NpELrm10ALdOMauah84ybs9rw1cKQ==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.15.0" + "@algolia/client-common": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.15.0.tgz", - "integrity": "sha512-b1jTpbFf9LnQHEJP5ddDJKE2sAlhYd7EVSOWgzo/27n/SfCoHfqD0VWntnWYD83PnOKvfe8auZ2+xCb0TXotrQ==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.27.0.tgz", + "integrity": "sha512-Nx9EdLYZDsaYFTthqmc0XcVvsx6jqeEX8fNiYOB5i2HboQwl8pJPj1jFhGqoGd0KG7KFR+sdPO5/e0EDDAru2Q==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.15.0" + "@algolia/client-common": "5.27.0" }, "engines": { "node": ">= 14.0.0" } }, - "node_modules/@algolia/transporter": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.24.0.tgz", - "integrity": "sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==", - "dependencies": { - "@algolia/cache-common": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/requester-common": "4.24.0" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -406,13 +288,13 @@ } }, "node_modules/@antfu/install-pkg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.0.0.tgz", - "integrity": "sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", "license": "MIT", "dependencies": { - "package-manager-detector": "^0.2.8", - "tinyexec": "^0.3.2" + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -432,7 +314,6 @@ "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz", "integrity": "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==", "license": "MIT", - "peer": true, "dependencies": { "@jsdevtools/ono": "^7.1.3", "@types/json-schema": "^7.0.15", @@ -446,41 +327,44 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -499,17 +383,19 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -519,35 +405,25 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", - "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -560,21 +436,23 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", "semver": "^6.3.1" }, "engines": { @@ -588,17 +466,19 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", - "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.1.1", + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, "engines": { @@ -612,14 +492,16 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", - "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", + "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -632,37 +514,40 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -672,32 +557,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -707,13 +595,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -722,87 +611,80 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", - "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", + "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz", - "integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", "license": "MIT", "dependencies": { - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.10" + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz", - "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.26.10" + "@babel/types": "^7.27.3" }, "bin": { "parser": "bin/babel-parser.js" @@ -812,12 +694,13 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -827,11 +710,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -841,11 +725,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -855,13 +740,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -871,12 +757,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", + "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -889,6 +776,7 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -900,6 +788,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -908,11 +797,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -922,11 +812,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -936,11 +827,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -950,11 +842,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -967,6 +860,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -979,11 +873,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -993,13 +888,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", + "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1009,13 +905,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1025,11 +922,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1039,11 +937,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz", + "integrity": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1053,12 +952,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1068,12 +968,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", + "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1083,15 +984,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", + "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.27.1", "globals": "^11.1.0" }, "engines": { @@ -1102,12 +1004,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1117,11 +1020,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz", + "integrity": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1131,12 +1035,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1146,11 +1051,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1160,12 +1066,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1175,11 +1082,12 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1189,12 +1097,12 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", - "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1204,11 +1112,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1218,12 +1127,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1233,13 +1143,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1249,11 +1160,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1263,11 +1175,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1277,11 +1190,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1291,11 +1205,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1305,12 +1220,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1320,13 +1236,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", - "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-simple-access": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1336,14 +1252,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1353,12 +1270,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1368,12 +1286,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1383,11 +1302,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1397,11 +1317,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1411,11 +1332,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1425,13 +1347,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz", + "integrity": "sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==", + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.3", + "@babel/plugin-transform-parameters": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1441,12 +1365,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1456,11 +1381,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1470,12 +1396,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1485,11 +1412,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", + "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1499,12 +1427,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1514,13 +1443,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1530,11 +1460,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1544,11 +1475,12 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.7.tgz", - "integrity": "sha512-/qXt69Em8HgsjCLu7G3zdIQn7A2QwmYND7Wa0LTp09Na+Zn8L5d0A7wSXrKi18TJRc/Q5S1i1De/SU1LzVkSvA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1558,11 +1490,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", - "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz", + "integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1572,15 +1505,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1590,11 +1524,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", - "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.25.9" + "@babel/plugin-transform-react-jsx": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1604,12 +1539,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", - "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1619,12 +1555,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz", + "integrity": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1634,12 +1570,13 @@ } }, "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1649,11 +1586,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1663,14 +1601,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.4.tgz", + "integrity": "sha512-D68nR5zxU64EUzV8i7T3R5XP0Xhrou/amNnddsRQssx6GrTLdZl1rLxyjtVZBd+v/NVX4AbTPOB5aU8thAZV1A==", + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -1685,16 +1624,18 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1704,12 +1645,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1719,11 +1661,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1733,11 +1676,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1747,11 +1691,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1761,15 +1706,16 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", - "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", + "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1779,11 +1725,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1793,12 +1740,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1808,12 +1756,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1823,12 +1772,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1838,78 +1788,79 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", - "dependencies": { - "@babel/compat-data": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.27.2.tgz", + "integrity": "sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.26.0", - "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.25.9", - "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.25.9", - "@babel/plugin-transform-block-scoping": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/plugin-transform-class-static-block": "^7.26.0", - "@babel/plugin-transform-classes": "^7.25.9", - "@babel/plugin-transform-computed-properties": "^7.25.9", - "@babel/plugin-transform-destructuring": "^7.25.9", - "@babel/plugin-transform-dotall-regex": "^7.25.9", - "@babel/plugin-transform-duplicate-keys": "^7.25.9", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.25.9", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.25.9", - "@babel/plugin-transform-function-name": "^7.25.9", - "@babel/plugin-transform-json-strings": "^7.25.9", - "@babel/plugin-transform-literals": "^7.25.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", - "@babel/plugin-transform-member-expression-literals": "^7.25.9", - "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-modules-systemjs": "^7.25.9", - "@babel/plugin-transform-modules-umd": "^7.25.9", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", - "@babel/plugin-transform-numeric-separator": "^7.25.9", - "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/plugin-transform-object-super": "^7.25.9", - "@babel/plugin-transform-optional-catch-binding": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9", - "@babel/plugin-transform-private-methods": "^7.25.9", - "@babel/plugin-transform-private-property-in-object": "^7.25.9", - "@babel/plugin-transform-property-literals": "^7.25.9", - "@babel/plugin-transform-regenerator": "^7.25.9", - "@babel/plugin-transform-regexp-modifiers": "^7.26.0", - "@babel/plugin-transform-reserved-words": "^7.25.9", - "@babel/plugin-transform-shorthand-properties": "^7.25.9", - "@babel/plugin-transform-spread": "^7.25.9", - "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.25.9", - "@babel/plugin-transform-unicode-escapes": "^7.25.9", - "@babel/plugin-transform-unicode-property-regex": "^7.25.9", - "@babel/plugin-transform-unicode-regex": "^7.25.9", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.27.1", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.27.1", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.27.1", + "@babel/plugin-transform-classes": "^7.27.1", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.1", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.27.2", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.1", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.27.1", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.38.1", + "core-js-compat": "^3.40.0", "semver": "^6.3.1" }, "engines": { @@ -1923,6 +1874,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -1931,6 +1883,7 @@ "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -1941,16 +1894,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz", - "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", + "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-transform-react-display-name": "^7.25.9", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/plugin-transform-react-jsx-development": "^7.25.9", - "@babel/plugin-transform-react-pure-annotations": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.27.1", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1960,15 +1914,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", - "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", + "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-typescript": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1978,54 +1933,51 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", - "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.10.tgz", - "integrity": "sha512-uITFQYO68pMEYR46AHgQoyBg7KPPJDAbGn4jUTIRgCFJIp88MIBUianVOplhZDEec07bp9zIyr4Kp0FCyQzmWg==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.6.tgz", + "integrity": "sha512-vDVrlmRAY8z9Ul/HxT+8ceAru95LQgkSKiXkSYZvqtbkPSfhZJgpRp45Cldbh1GJ1kxzQkI70AqyrTI58KpaWQ==", "license": "MIT", "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" + "core-js-pure": "^3.30.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", - "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2034,13 +1986,13 @@ } }, "node_modules/@babel/types": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", - "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2095,15 +2047,16 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" } }, "node_modules/@csstools/cascade-layer-name-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz", - "integrity": "sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz", + "integrity": "sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==", "funding": [ { "type": "github", @@ -2114,18 +2067,19 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/color-helpers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz", - "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", + "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", "funding": [ { "type": "github", @@ -2136,14 +2090,15 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" } }, "node_modules/@csstools/css-calc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.0.tgz", - "integrity": "sha512-X69PmFOrjTZfN5ijxtI8hZ9kRADFSLrmmQ6hgDJ272Il049WGKpDY64KhrFm/7rbWve0z81QepawzjkKlqkNGw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", "funding": [ { "type": "github", @@ -2154,18 +2109,19 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-color-parser": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.6.tgz", - "integrity": "sha512-S/IjXqTHdpI4EtzGoNCHfqraXF37x12ZZHA1Lk7zoT5pm2lMjFuqhX/89L7dqX4CcMacKK+6ZCs5TmEGb/+wKw==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz", + "integrity": "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==", "funding": [ { "type": "github", @@ -2176,22 +2132,23 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { - "@csstools/color-helpers": "^5.0.1", - "@csstools/css-calc": "^2.1.0" + "@csstools/color-helpers": "^5.0.2", + "@csstools/css-calc": "^2.1.4" }, "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", - "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", "funding": [ { "type": "github", @@ -2202,17 +2159,18 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-tokenizer": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", - "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", "funding": [ { "type": "github", @@ -2223,14 +2181,15 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@csstools/media-query-list-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", - "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", "funding": [ { "type": "github", @@ -2241,12 +2200,13 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/postcss-cascade-layers": { @@ -2263,6 +2223,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/selector-specificity": "^5.0.0", "postcss-selector-parser": "^7.0.0" @@ -2288,6 +2249,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2296,9 +2258,10 @@ } }, "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2308,9 +2271,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.6.tgz", - "integrity": "sha512-EcvXfC60cTIumzpsxWuvVjb7rsJEHPvqn3jeMEBUaE3JSc4FRuP7mEQ+1eicxWmIrs3FtzMH9gR3sgA5TH+ebQ==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.10.tgz", + "integrity": "sha512-4dY0NBu7NVIpzxZRgh/Q/0GPSz/jLSw0i/u3LTUor0BkQcz/fNhN10mSWBDsL0p9nDb0Ky1PD6/dcGbhACuFTQ==", "funding": [ { "type": "github", @@ -2321,11 +2284,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2336,9 +2300,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.6.tgz", - "integrity": "sha512-jVKdJn4+JkASYGhyPO+Wa5WXSx1+oUgaXb3JsjJn/BlrtFh5zjocCY7pwWi0nuP24V1fY7glQsxEYcYNy0dMFg==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.10.tgz", + "integrity": "sha512-P0lIbQW9I4ShE7uBgZRib/lMTf9XMjJkFl/d6w4EMNHu2qvQ6zljJGEcBkw/NsBtq/6q3WrmgxSS8kHtPMkK4Q==", "funding": [ { "type": "github", @@ -2349,11 +2313,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2363,10 +2328,10 @@ "postcss": "^8.4" } }, - "node_modules/@csstools/postcss-content-alt-text": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz", - "integrity": "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==", + "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.0.tgz", + "integrity": "sha512-Z5WhouTyD74dPFPrVE7KydgNS9VvnjB8qcdes9ARpCOItb4jTnm7cHp4FhxCRUoyhabD0WVv43wbkJ4p8hLAlQ==", "funding": [ { "type": "github", @@ -2377,10 +2342,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2390,10 +2357,10 @@ "postcss": "^8.4" } }, - "node_modules/@csstools/postcss-exponential-functions": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.5.tgz", - "integrity": "sha512-mi8R6dVfA2nDoKM3wcEi64I8vOYEgQVtVKCfmLHXupeLpACfGAided5ddMt5f+CnEodNu4DifuVwb0I6fQDGGQ==", + "node_modules/@csstools/postcss-content-alt-text": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.6.tgz", + "integrity": "sha512-eRjLbOjblXq+byyaedQRSrAejKGNAFued+LcbzT+LCL78fabxHkxYjBbxkroONxHHYu2qxhFK2dBStTLPG3jpQ==", "funding": [ { "type": "github", @@ -2404,10 +2371,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.0", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/utilities": "^2.0.0" }, "engines": { "node": ">=18" @@ -2416,10 +2385,10 @@ "postcss": "^8.4" } }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", - "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", + "node_modules/@csstools/postcss-exponential-functions": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz", + "integrity": "sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==", "funding": [ { "type": "github", @@ -2430,9 +2399,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -2441,10 +2412,10 @@ "postcss": "^8.4" } }, - "node_modules/@csstools/postcss-gamut-mapping": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.6.tgz", - "integrity": "sha512-0ke7fmXfc8H+kysZz246yjirAH6JFhyX9GTlyRnM0exHO80XcA9zeJpy5pOp5zo/AZiC/q5Pf+Hw7Pd6/uAoYA==", + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", + "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", "funding": [ { "type": "github", @@ -2455,11 +2426,38 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gamut-mapping": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.10.tgz", + "integrity": "sha512-QDGqhJlvFnDlaPAfCYPsnwVA6ze+8hhrwevYWlnUeSjkkZfBpcCO42SaUD8jiLlq7niouyLgvup5lh+f1qessg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, "engines": { "node": ">=18" }, @@ -2468,9 +2466,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.6.tgz", - "integrity": "sha512-Itrbx6SLUzsZ6Mz3VuOlxhbfuyLTogG5DwEF1V8dAi24iMuvQPIHd7Ti+pNDp7j6WixndJGZaoNR0f9VSzwuTg==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.10.tgz", + "integrity": "sha512-HHPauB2k7Oits02tKFUeVFEU2ox/H3OQVrP3fSOKDxvloOikSal+3dzlyTZmYsb9FlY9p5EUpBtz0//XBmy+aw==", "funding": [ { "type": "github", @@ -2481,11 +2479,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2496,9 +2495,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.6.tgz", - "integrity": "sha512-927Pqy3a1uBP7U8sTfaNdZVB0mNXzIrJO/GZ8us9219q9n06gOqCdfZ0E6d1P66Fm0fYHvxfDbfcUuwAn5UwhQ==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.10.tgz", + "integrity": "sha512-nOKKfp14SWcdEQ++S9/4TgRKchooLZL0TUFdun3nI4KPwCjETmhjta1QT4ICQcGVWQTvrsgMM/aLB5We+kMHhQ==", "funding": [ { "type": "github", @@ -2509,11 +2508,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2524,9 +2524,9 @@ } }, "node_modules/@csstools/postcss-ic-unit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz", - "integrity": "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.2.tgz", + "integrity": "sha512-lrK2jjyZwh7DbxaNnIUjkeDmU8Y6KyzRBk91ZkI5h8nb1ykEfZrtIVArdIjX4DHMIBGpdHrgP0n4qXDr7OHaKA==", "funding": [ { "type": "github", @@ -2537,8 +2537,9 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -2550,9 +2551,9 @@ } }, "node_modules/@csstools/postcss-initial": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.0.tgz", - "integrity": "sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz", + "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==", "funding": [ { "type": "github", @@ -2563,6 +2564,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2584,6 +2586,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/selector-specificity": "^5.0.0", "postcss-selector-parser": "^7.0.0" @@ -2609,6 +2612,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2617,9 +2621,10 @@ } }, "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2629,9 +2634,9 @@ } }, "node_modules/@csstools/postcss-light-dark-function": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz", - "integrity": "sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.9.tgz", + "integrity": "sha512-1tCZH5bla0EAkFAI2r0H33CDnIBeLUaJh1p+hvvsylJ4svsv2wOmJjJn+OXwUZLXef37GYbRIVKX+X+g6m+3CQ==", "funding": [ { "type": "github", @@ -2642,10 +2647,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2669,6 +2675,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2690,6 +2697,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2711,6 +2719,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2732,6 +2741,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2743,9 +2753,9 @@ } }, "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz", - "integrity": "sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz", + "integrity": "sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==", "funding": [ { "type": "github", @@ -2756,8 +2766,9 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-tokenizer": "^3.0.3", + "@csstools/css-tokenizer": "^3.0.4", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2768,9 +2779,9 @@ } }, "node_modules/@csstools/postcss-media-minmax": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.5.tgz", - "integrity": "sha512-sdh5i5GToZOIAiwhdntRWv77QDtsxP2r2gXW/WbLSCoLr00KTq/yiF1qlQ5XX2+lmiFa8rATKMcbwl3oXDMNew==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz", + "integrity": "sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==", "funding": [ { "type": "github", @@ -2781,11 +2792,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { - "@csstools/css-calc": "^2.1.0", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" }, "engines": { "node": ">=18" @@ -2795,9 +2807,9 @@ } }, "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz", - "integrity": "sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz", + "integrity": "sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==", "funding": [ { "type": "github", @@ -2808,10 +2820,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" }, "engines": { "node": ">=18" @@ -2834,6 +2847,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -2859,6 +2873,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2870,9 +2885,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.6.tgz", - "integrity": "sha512-Hptoa0uX+XsNacFBCIQKTUBrFKDiplHan42X73EklG6XmQLG7/aIvxoNhvZ7PvOWMt67Pw3bIlUY2nD6p5vL8A==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.10.tgz", + "integrity": "sha512-ZzZUTDd0fgNdhv8UUjGCtObPD8LYxMH+MJsW9xlZaWTV8Ppr4PtxlHYNMmF4vVWGl0T6f8tyWAKjoI6vePSgAg==", "funding": [ { "type": "github", @@ -2883,11 +2898,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2898,9 +2914,9 @@ } }, "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz", - "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.1.0.tgz", + "integrity": "sha512-YrkI9dx8U4R8Sz2EJaoeD9fI7s7kmeEBfmO+UURNeL6lQI7VxF6sBE+rSqdCBn4onwqmxFdBU3lTwyYb/lCmxA==", "funding": [ { "type": "github", @@ -2911,6 +2927,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2922,9 +2939,9 @@ } }, "node_modules/@csstools/postcss-random-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.1.tgz", - "integrity": "sha512-Ab/tF8/RXktQlFwVhiC70UNfpFQRhtE5fQQoP2pO+KCPGLsLdWFiOuHgSRtBOqEshCVAzR4H6o38nhvRZq8deA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz", + "integrity": "sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==", "funding": [ { "type": "github", @@ -2935,10 +2952,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.0", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -2948,9 +2966,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.6.tgz", - "integrity": "sha512-yxP618Xb+ji1I624jILaYM62uEmZcmbdmFoZHoaThw896sq0vU39kqTTF+ZNic9XyPtPMvq0vyvbgmHaszq8xg==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.10.tgz", + "integrity": "sha512-8+0kQbQGg9yYG8hv0dtEpOMLwB9M+P7PhacgIzVzJpixxV4Eq9AUQtQw8adMmAJU1RBBmIlpmtmm3XTRd/T00g==", "funding": [ { "type": "github", @@ -2961,11 +2979,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2989,6 +3008,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -3000,9 +3020,10 @@ } }, "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -3012,9 +3033,9 @@ } }, "node_modules/@csstools/postcss-sign-functions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.0.tgz", - "integrity": "sha512-SLcc20Nujx/kqbSwDmj6oaXgpy3UjFhBy1sfcqPgDkHfOIfUtUVH7OXO+j7BU4v/At5s61N5ZX6shvgPwluhsA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz", + "integrity": "sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==", "funding": [ { "type": "github", @@ -3025,10 +3046,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.0", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -3038,9 +3060,9 @@ } }, "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.5.tgz", - "integrity": "sha512-G6SJ6hZJkhxo6UZojVlLo14MohH4J5J7z8CRBrxxUYy9JuZiIqUo5TBYyDGcE0PLdzpg63a7mHSJz3VD+gMwqw==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz", + "integrity": "sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==", "funding": [ { "type": "github", @@ -3051,10 +3073,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.0", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -3064,9 +3087,9 @@ } }, "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.1.tgz", - "integrity": "sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.2.tgz", + "integrity": "sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA==", "funding": [ { "type": "github", @@ -3077,8 +3100,9 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/color-helpers": "^5.0.1", + "@csstools/color-helpers": "^5.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -3089,9 +3113,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.5.tgz", - "integrity": "sha512-/YQThYkt5MLvAmVu7zxjhceCYlKrYddK6LEmK5I4ojlS6BmO9u2yO4+xjXzu2+NPYmHSTtP4NFSamBCMmJ1NJA==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz", + "integrity": "sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==", "funding": [ { "type": "github", @@ -3102,10 +3126,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.0", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -3128,6 +3153,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -3149,6 +3175,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -3160,29 +3187,32 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/@docsearch/css": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.0.tgz", - "integrity": "sha512-pieeipSOW4sQ0+bE5UFC51AOZp9NGxg89wAlZ1BAQFaiRAGK1IKUaPQ0UGZeNctJXyqZ1UvBtOQh2HH+U5GtmA==" + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.9.0.tgz", + "integrity": "sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==", + "license": "MIT" }, "node_modules/@docsearch/react": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.0.tgz", - "integrity": "sha512-WnFK720+iwTVt94CxY3u+FgX6exb3BfN5kE9xUY6uuAH/9W/UFboBZFLlrw/zxFRHoHZCOXRtOylsXF+6LHI+Q==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.9.0.tgz", + "integrity": "sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==", + "license": "MIT", "dependencies": { - "@algolia/autocomplete-core": "1.17.7", - "@algolia/autocomplete-preset-algolia": "1.17.7", - "@docsearch/css": "3.8.0", - "algoliasearch": "^5.12.0" + "@algolia/autocomplete-core": "1.17.9", + "@algolia/autocomplete-preset-algolia": "1.17.9", + "@docsearch/css": "3.9.0", + "algoliasearch": "^5.14.2" }, "peerDependencies": { - "@types/react": ">= 16.8.0 < 19.0.0", - "react": ">= 16.8.0 < 19.0.0", - "react-dom": ">= 16.8.0 < 19.0.0", + "@types/react": ">= 16.8.0 < 20.0.0", + "react": ">= 16.8.0 < 20.0.0", + "react-dom": ">= 16.8.0 < 20.0.0", "search-insights": ">= 1 < 3" }, "peerDependenciesMeta": { @@ -3200,75 +3230,11 @@ } } }, - "node_modules/@docsearch/react/node_modules/@algolia/client-analytics": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.15.0.tgz", - "integrity": "sha512-lho0gTFsQDIdCwyUKTtMuf9nCLwq9jOGlLGIeQGKDxXF7HbiAysFIu5QW/iQr1LzMgDyM9NH7K98KY+BiIFriQ==", - "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docsearch/react/node_modules/@algolia/client-personalization": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.15.0.tgz", - "integrity": "sha512-LfaZqLUWxdYFq44QrasCDED5bSYOswpQjSiIL7Q5fYlefAAUO95PzBPKCfUhSwhb4rKxigHfDkd81AvEicIEoA==", - "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docsearch/react/node_modules/@algolia/recommend": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.15.0.tgz", - "integrity": "sha512-5eupMwSqMLDObgSMF0XG958zR6GJP3f7jHDQ3/WlzCM9/YIJiWIUoJFGsko9GYsA5xbLDHE/PhWtq4chcCdaGQ==", - "dependencies": { - "@algolia/client-common": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@docsearch/react/node_modules/algoliasearch": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.15.0.tgz", - "integrity": "sha512-Yf3Swz1s63hjvBVZ/9f2P1Uu48GjmjCN+Esxb6MAONMGtZB1fRX8/S1AhUTtsuTlcGovbYLxpHgc7wEzstDZBw==", - "dependencies": { - "@algolia/client-abtesting": "5.15.0", - "@algolia/client-analytics": "5.15.0", - "@algolia/client-common": "5.15.0", - "@algolia/client-insights": "5.15.0", - "@algolia/client-personalization": "5.15.0", - "@algolia/client-query-suggestions": "5.15.0", - "@algolia/client-search": "5.15.0", - "@algolia/ingestion": "1.15.0", - "@algolia/monitoring": "1.15.0", - "@algolia/recommend": "5.15.0", - "@algolia/requester-browser-xhr": "5.15.0", - "@algolia/requester-fetch": "5.15.0", - "@algolia/requester-node-http": "5.15.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, "node_modules/@docusaurus/babel": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.6.3.tgz", - "integrity": "sha512-7dW9Hat9EHYCVicFXYA4hjxBY38+hPuCURL8oRF9fySRm7vzNWuEOghA1TXcykuXZp0HLG2td4RhDxCvGG7tNw==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.8.1.tgz", + "integrity": "sha512-3brkJrml8vUbn9aeoZUlJfsI/GqyFcDgQJwQkmBtclJgWDEQBKKeagZfOgx0WfUQhagL1sQLNW0iBdxnI863Uw==", + "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", "@babel/generator": "^7.25.9", @@ -3280,8 +3246,8 @@ "@babel/runtime": "^7.25.9", "@babel/runtime-corejs3": "^7.25.9", "@babel/traverse": "^7.25.9", - "@docusaurus/logger": "3.6.3", - "@docusaurus/utils": "3.6.3", + "@docusaurus/logger": "3.8.1", + "@docusaurus/utils": "3.8.1", "babel-plugin-dynamic-import-node": "^2.3.3", "fs-extra": "^11.1.1", "tslib": "^2.6.0" @@ -3291,30 +3257,30 @@ } }, "node_modules/@docusaurus/bundler": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.6.3.tgz", - "integrity": "sha512-47JLuc8D4wA+6VOvmMd5fUC9rFppBQpQOnxDYiVXffm/DeV/wmm3sbpNd5Y+O+G2+nevLTRnvCm/qyancv0Y3A==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.8.1.tgz", + "integrity": "sha512-/z4V0FRoQ0GuSLToNjOSGsk6m2lQUG4FRn8goOVoZSRsTrU8YR2aJacX5K3RG18EaX9b+52pN4m1sL3MQZVsQA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", - "@docusaurus/babel": "3.6.3", - "@docusaurus/cssnano-preset": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", + "@docusaurus/babel": "3.8.1", + "@docusaurus/cssnano-preset": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", "babel-loader": "^9.2.1", - "clean-css": "^5.3.2", + "clean-css": "^5.3.3", "copy-webpack-plugin": "^11.0.0", - "css-loader": "^6.8.1", + "css-loader": "^6.11.0", "css-minimizer-webpack-plugin": "^5.0.1", "cssnano": "^6.1.2", "file-loader": "^6.2.0", "html-minifier-terser": "^7.2.0", - "mini-css-extract-plugin": "^2.9.1", + "mini-css-extract-plugin": "^2.9.2", "null-loader": "^4.0.1", - "postcss": "^8.4.26", - "postcss-loader": "^7.3.3", - "postcss-preset-env": "^10.1.0", - "react-dev-utils": "^12.0.1", + "postcss": "^8.5.4", + "postcss-loader": "^7.3.4", + "postcss-preset-env": "^10.2.1", "terser-webpack-plugin": "^5.3.9", "tslib": "^2.6.0", "url-loader": "^4.1.1", @@ -3334,17 +3300,18 @@ } }, "node_modules/@docusaurus/core": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.6.3.tgz", - "integrity": "sha512-xL7FRY9Jr5DWqB6pEnqgKqcMPJOX5V0pgWXi5lCiih11sUBmcFKM7c3+GyxcVeeWFxyYSDP3grLTWqJoP4P9Vw==", - "dependencies": { - "@docusaurus/babel": "3.6.3", - "@docusaurus/bundler": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.8.1.tgz", + "integrity": "sha512-ENB01IyQSqI2FLtOzqSI3qxG2B/jP4gQPahl2C3XReiLebcVh5B5cB9KYFvdoOqOWPyr5gXK4sjgTKv7peXCrA==", + "license": "MIT", + "dependencies": { + "@docusaurus/babel": "3.8.1", + "@docusaurus/bundler": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/mdx-loader": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", "boxen": "^6.2.1", "chalk": "^4.1.2", "chokidar": "^3.5.3", @@ -3352,29 +3319,28 @@ "combine-promises": "^1.1.0", "commander": "^5.1.0", "core-js": "^3.31.1", - "del": "^6.1.1", "detect-port": "^1.5.1", "escape-html": "^1.0.3", "eta": "^2.2.0", "eval": "^0.1.8", + "execa": "5.1.1", "fs-extra": "^11.1.1", "html-tags": "^3.3.1", "html-webpack-plugin": "^5.6.0", "leven": "^3.1.0", "lodash": "^4.17.21", + "open": "^8.4.0", "p-map": "^4.0.0", "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", "react-loadable-ssr-addon-v5-slorber": "^1.0.1", "react-router": "^5.3.4", "react-router-config": "^5.1.1", "react-router-dom": "^5.3.4", - "rtl-detect": "^1.0.4", "semver": "^7.5.4", "serve-handler": "^6.1.6", - "shelljs": "^0.8.5", + "tinypool": "^1.0.2", "tslib": "^2.6.0", "update-notifier": "^6.0.2", "webpack": "^5.95.0", @@ -3390,30 +3356,18 @@ }, "peerDependencies": { "@mdx-js/react": "^3.0.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/core/node_modules/webpack-merge": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", - "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.1" - }, - "engines": { - "node": ">=18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.6.3.tgz", - "integrity": "sha512-qP7SXrwZ+23GFJdPN4aIHQrZW+oH/7tzwEuc/RNL0+BdZdmIjYQqUxdXsjE4lFxLNZjj0eUrSNYIS6xwfij+5Q==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.8.1.tgz", + "integrity": "sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug==", + "license": "MIT", "dependencies": { "cssnano-preset-advanced": "^6.1.2", - "postcss": "^8.4.38", + "postcss": "^8.5.4", "postcss-sort-media-queries": "^5.2.0", "tslib": "^2.6.0" }, @@ -3422,9 +3376,10 @@ } }, "node_modules/@docusaurus/logger": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.6.3.tgz", - "integrity": "sha512-xSubJixcNyMV9wMV4q0s47CBz3Rlc5jbcCCuij8pfQP8qn/DIpt0ks8W6hQWzHAedg/J/EwxxUOUrnEoKzJo8g==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.8.1.tgz", + "integrity": "sha512-2wjeGDhKcExEmjX8k1N/MRDiPKXGF2Pg+df/bDDPnnJWHXnVEZxXj80d6jcxp1Gpnksl0hF8t/ZQw9elqj2+ww==", + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" @@ -3434,11 +3389,12 @@ } }, "node_modules/@docusaurus/lqip-loader": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/lqip-loader/-/lqip-loader-3.6.3.tgz", - "integrity": "sha512-GlQIhVpskcD7T1Lm/eYR+T0ZurEly3291t/KIJCRZcl3ggVcpRlPDXVx3X2o6O5ESClEt5V5ev0i1J9UaCw8IQ==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/lqip-loader/-/lqip-loader-3.8.1.tgz", + "integrity": "sha512-wSc/TDw6TjKle9MnFO4yqbc9120GIt6YIMT5obqThGcDcBXtkwUsSnw0ghEk22VXqAsgAxD/cGCp6O0SegRtYA==", + "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.6.3", + "@docusaurus/logger": "3.8.1", "file-loader": "^6.2.0", "lodash": "^4.17.21", "sharp": "^0.32.3", @@ -3449,20 +3405,21 @@ } }, "node_modules/@docusaurus/mdx-loader": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.6.3.tgz", - "integrity": "sha512-3iJdiDz9540ppBseeI93tWTDtUGVkxzh59nMq4ignylxMuXBLK8dFqVeaEor23v1vx6TrGKZ2FuLaTB+U7C0QQ==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.8.1.tgz", + "integrity": "sha512-DZRhagSFRcEq1cUtBMo4TKxSNo/W6/s44yhr8X+eoXqCLycFQUylebOMPseHi5tc4fkGJqwqpWJLz6JStU9L4w==", + "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/logger": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", "estree-util-value-to-estree": "^3.0.1", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", - "image-size": "^1.0.2", + "image-size": "^2.0.2", "mdast-util-mdx": "^3.0.0", "mdast-util-to-string": "^4.0.0", "rehype-raw": "^7.0.0", @@ -3482,21 +3439,22 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.6.3.tgz", - "integrity": "sha512-MjaXX9PN/k5ugNvfRZdWyKWq4FsrhN4LEXaj0pEmMebJuBNlFeGyKQUa9DRhJHpadNaiMLrbo9m3U7Ig5YlsZg==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.8.1.tgz", + "integrity": "sha512-6xhvAJiXzsaq3JdosS7wbRt/PwEPWHr9eM4YNYqVlbgG1hSK3uQDXTVvQktasp3VO6BmfYWPozueLWuj4gB+vg==", + "license": "MIT", "dependencies": { - "@docusaurus/types": "3.6.3", + "@docusaurus/types": "3.8.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", "@types/react-router-dom": "*", - "react-helmet-async": "*", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" }, "peerDependencies": { @@ -3505,23 +3463,24 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.6.3.tgz", - "integrity": "sha512-k0ogWwwJU3pFRFfvW1kRVHxzf2DutLGaaLjAnHVEU6ju+aRP0Z5ap/13DHyPOfHeE4WKpn/M0TqjdwZAcY3kAw==", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.8.1.tgz", + "integrity": "sha512-vNTpMmlvNP9n3hGEcgPaXyvTljanAKIUkuG9URQ1DeuDup0OR7Ltvoc8yrmH+iMZJbcQGhUJF+WjHLwuk8HSdw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/mdx-loader": "3.8.1", + "@docusaurus/theme-common": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", "cheerio": "1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^11.1.1", "lodash": "^4.17.21", - "reading-time": "^1.5.0", + "schema-dts": "^1.1.2", "srcset": "^4.0.0", "tslib": "^2.6.0", "unist-util-visit": "^5.0.0", @@ -3533,29 +3492,31 @@ }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.6.3.tgz", - "integrity": "sha512-r2wS8y/fsaDcxkm20W5bbYJFPzdWdEaTWVYjNxlHlcmX086eqQR1Fomlg9BHTJ0dLXPzAlbC8EN4XqMr3QzNCQ==", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.8.1.tgz", + "integrity": "sha512-oByRkSZzeGNQByCMaX+kif5Nl2vmtj2IHQI2fWjCfCootsdKZDPFLonhIp5s3IGJO7PLUfe0POyw0Xh/RrGXJA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/mdx-loader": "3.8.1", + "@docusaurus/module-type-aliases": "3.8.1", + "@docusaurus/theme-common": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", "js-yaml": "^4.1.0", "lodash": "^4.17.21", + "schema-dts": "^1.1.2", "tslib": "^2.6.0", "utility-types": "^3.10.0", "webpack": "^5.88.1" @@ -3564,20 +3525,21 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.6.3.tgz", - "integrity": "sha512-eHrmTgjgLZsuqfsYr5X2xEwyIcck0wseSofWrjTwT9FLOWp+KDmMAuVK+wRo7sFImWXZk3oV/xX/g9aZrhD7OA==", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.8.1.tgz", + "integrity": "sha512-a+V6MS2cIu37E/m7nDJn3dcxpvXb6TvgdNI22vJX8iUTp8eoMoPa0VArEbWvCxMY/xdC26WzNv4wZ6y0iIni/w==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/mdx-loader": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" @@ -3586,56 +3548,75 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-css-cascade-layers": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.8.1.tgz", + "integrity": "sha512-VQ47xRxfNKjHS5ItzaVXpxeTm7/wJLFMOPo1BkmoMG4Cuz4nuI+Hs62+RMk1OqVog68Swz66xVPK8g9XTrBKRw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" } }, "node_modules/@docusaurus/plugin-debug": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.6.3.tgz", - "integrity": "sha512-zB9GXfIZNPRfzKnNjU6xGVrqn9bPXuGhpjgsuc/YtcTDjnjhasg38NdYd5LEqXex5G/zIorQgWB3n6x/Ut62vQ==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.8.1.tgz", + "integrity": "sha512-nT3lN7TV5bi5hKMB7FK8gCffFTBSsBsAfV84/v293qAmnHOyg1nr9okEw8AiwcO3bl9vije5nsUvP0aRl2lpaw==", + "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", + "@docusaurus/core": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", "fs-extra": "^11.1.1", - "react-json-view-lite": "^1.2.0", + "react-json-view-lite": "^2.3.0", "tslib": "^2.6.0" }, "engines": { "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.6.3.tgz", - "integrity": "sha512-rCDNy1QW8Dag7nZq67pcum0bpFLrwvxJhYuVprhFh8BMBDxV0bY+bAkGHbSf68P3Bk9C3hNOAXX1srGLIDvcTA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.8.1.tgz", + "integrity": "sha512-Hrb/PurOJsmwHAsfMDH6oVpahkEGsx7F8CWMjyP/dw1qjqmdS9rcV1nYCGlM8nOtD3Wk/eaThzUB5TSZsGz+7Q==", + "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/core": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", "tslib": "^2.6.0" }, "engines": { "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.6.3.tgz", - "integrity": "sha512-+OyDvhM6rqVkQOmLVkQWVJAizEEfkPzVWtIHXlWPOCFGK9X4/AWeBSrU0WG4iMg9Z4zD4YDRrU+lvI4s6DSC+w==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.8.1.tgz", + "integrity": "sha512-tKE8j1cEZCh8KZa4aa80zpSTxsC2/ZYqjx6AAfd8uA8VHZVw79+7OTEP2PoWi0uL5/1Is0LF5Vwxd+1fz5HlKg==", + "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/core": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", "@types/gtag.js": "^0.0.12", "tslib": "^2.6.0" }, @@ -3643,41 +3624,41 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.6.3.tgz", - "integrity": "sha512-1M6UPB13gWUtN2UHX083/beTn85PlRI9ABItTl/JL1FJ5dJTWWFXXsHf9WW/6hrVwthwTeV/AGbGKvLKV+IlCA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.8.1.tgz", + "integrity": "sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw==", + "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "@docusaurus/core": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", "tslib": "^2.6.0" }, "engines": { "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-ideal-image": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-3.6.3.tgz", - "integrity": "sha512-y5Pi4UH8wsFUEFPzjzo1GEtb9vfi5VfWTH/ONifDW84ldYaZBPzVM4AIVWcuNPlYG+p4eYwHE4eTuJFe2iupKQ==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-3.8.1.tgz", + "integrity": "sha512-Y+ts2dAvBFqLjt5VjpEn15Ct4D93RyZXcpdU3gtrrQETg2V2aSRP4jOXexoUzJACIOG5IWjEXCUeaoVT9o7GFQ==", + "license": "MIT", "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/lqip-loader": "3.6.3", + "@docusaurus/core": "3.8.1", + "@docusaurus/lqip-loader": "3.8.1", "@docusaurus/responsive-loader": "^1.7.0", - "@docusaurus/theme-translations": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "@slorber/react-ideal-image": "^0.0.12", - "react-waypoint": "^10.3.0", + "@docusaurus/theme-translations": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", "sharp": "^0.32.3", "tslib": "^2.6.0", "webpack": "^5.88.1" @@ -3687,8 +3668,8 @@ }, "peerDependencies": { "jimp": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "jimp": { @@ -3697,16 +3678,17 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.6.3.tgz", - "integrity": "sha512-94qOO4M9Fwv9KfVQJsgbe91k+fPJ4byf1L3Ez8TUa6TAFPo/BrLwQ80zclHkENlL1824TuxkcMKv33u6eydQCg==", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.8.1.tgz", + "integrity": "sha512-+9YV/7VLbGTq8qNkjiugIelmfUEVkTyLe6X8bWq7K5qPvGXAjno27QAfFq63mYfFFbJc7z+pudL63acprbqGzw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" @@ -3715,41 +3697,68 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-svgr": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.8.1.tgz", + "integrity": "sha512-rW0LWMDsdlsgowVwqiMb/7tANDodpy1wWPwCcamvhY7OECReN3feoFwLjd/U4tKjNY3encj0AJSTxJA+Fpe+Gw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "@svgr/core": "8.1.0", + "@svgr/webpack": "^8.1.0", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/preset-classic": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.6.3.tgz", - "integrity": "sha512-VHSYWROT3flvNNI1SrnMOtW1EsjeHNK9dhU6s9eY5hryZe79lUqnZJyze/ymDe2LXAqzyj6y5oYvyBoZZk6ErA==", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/plugin-content-blog": "3.6.3", - "@docusaurus/plugin-content-docs": "3.6.3", - "@docusaurus/plugin-content-pages": "3.6.3", - "@docusaurus/plugin-debug": "3.6.3", - "@docusaurus/plugin-google-analytics": "3.6.3", - "@docusaurus/plugin-google-gtag": "3.6.3", - "@docusaurus/plugin-google-tag-manager": "3.6.3", - "@docusaurus/plugin-sitemap": "3.6.3", - "@docusaurus/theme-classic": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/theme-search-algolia": "3.6.3", - "@docusaurus/types": "3.6.3" + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.8.1.tgz", + "integrity": "sha512-yJSjYNHXD8POMGc2mKQuj3ApPrN+eG0rO1UPgSx7jySpYU+n4WjBikbrA2ue5ad9A7aouEtMWUoiSRXTH/g7KQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/plugin-content-blog": "3.8.1", + "@docusaurus/plugin-content-docs": "3.8.1", + "@docusaurus/plugin-content-pages": "3.8.1", + "@docusaurus/plugin-css-cascade-layers": "3.8.1", + "@docusaurus/plugin-debug": "3.8.1", + "@docusaurus/plugin-google-analytics": "3.8.1", + "@docusaurus/plugin-google-gtag": "3.8.1", + "@docusaurus/plugin-google-tag-manager": "3.8.1", + "@docusaurus/plugin-sitemap": "3.8.1", + "@docusaurus/plugin-svgr": "3.8.1", + "@docusaurus/theme-classic": "3.8.1", + "@docusaurus/theme-common": "3.8.1", + "@docusaurus/theme-search-algolia": "3.8.1", + "@docusaurus/types": "3.8.1" }, "engines": { "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/responsive-loader": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/responsive-loader/-/responsive-loader-1.7.0.tgz", - "integrity": "sha512-N0cWuVqTRXRvkBxeMQcy/OF2l7GN8rmni5EzR3HpwR+iU2ckYPnziceojcxvvxQ5NqZg1QfEW0tycQgHp+e+Nw==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@docusaurus/responsive-loader/-/responsive-loader-1.7.1.tgz", + "integrity": "sha512-jAebZ43f8GVpZSrijLGHVVp7Y0OMIPRaL+HhiIWQ+f/b72lTsKLkSkOVHEzvd2psNJ9lsoiM3gt6akpak6508w==", + "license": "BSD-3-Clause", "dependencies": { "loader-utils": "^2.0.0" }, @@ -3770,30 +3779,31 @@ } }, "node_modules/@docusaurus/theme-classic": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.6.3.tgz", - "integrity": "sha512-1RRLK1tSArI2c00qugWYO3jRocjOZwGF1mBzPPylDVRwWCS/rnWWR91ChdbbaxIupRJ+hX8ZBYrwr5bbU0oztQ==", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/plugin-content-blog": "3.6.3", - "@docusaurus/plugin-content-docs": "3.6.3", - "@docusaurus/plugin-content-pages": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/theme-translations": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.8.1.tgz", + "integrity": "sha512-bqDUCNqXeYypMCsE1VcTXSI1QuO4KXfx8Cvl6rYfY0bhhqN6d2WZlRkyLg/p6pm+DzvanqHOyYlqdPyP0iz+iw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/mdx-loader": "3.8.1", + "@docusaurus/module-type-aliases": "3.8.1", + "@docusaurus/plugin-content-blog": "3.8.1", + "@docusaurus/plugin-content-docs": "3.8.1", + "@docusaurus/plugin-content-pages": "3.8.1", + "@docusaurus/theme-common": "3.8.1", + "@docusaurus/theme-translations": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "copy-text-to-clipboard": "^3.2.0", "infima": "0.2.0-alpha.45", "lodash": "^4.17.21", "nprogress": "^0.2.0", - "postcss": "^8.4.26", + "postcss": "^8.5.4", "prism-react-renderer": "^2.3.0", "prismjs": "^1.29.0", "react-router-dom": "^5.3.4", @@ -3805,19 +3815,20 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-common": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.6.3.tgz", - "integrity": "sha512-b8ZkhczXHDxWWyvz+YJy4t/PlPbEogTTbgnHoflYnH7rmRtyoodTsu8WVM12la5LmlMJBclBXFl29OH8kPE7gg==", - "dependencies": { - "@docusaurus/mdx-loader": "3.6.3", - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.8.1.tgz", + "integrity": "sha512-UswMOyTnPEVRvN5Qzbo+l8k4xrd5fTFu2VPPfD6FcW/6qUtVLmJTQCktbAL3KJ0BVXGm5aJXz/ZrzqFuZERGPw==", + "license": "MIT", + "dependencies": { + "@docusaurus/mdx-loader": "3.8.1", + "@docusaurus/module-type-aliases": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -3832,46 +3843,48 @@ }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-mermaid": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.6.3.tgz", - "integrity": "sha512-kIqpjNCP/9R2GGf8UmiDxD3CkOAEJuJIEFlaKMgQtjVxa/vH+9PLI1+DFbArGoG4+0ENTYUq8phHPW7SeL36uQ==", - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "mermaid": ">=10.4", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.8.1.tgz", + "integrity": "sha512-IWYqjyTPjkNnHsFFu9+4YkeXS7PD1xI3Bn2shOhBq+f95mgDfWInkpfBN4aYvx4fTT67Am6cPtohRdwh4Tidtg==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.8.1", + "@docusaurus/module-type-aliases": "3.8.1", + "@docusaurus/theme-common": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "mermaid": ">=11.6.0", "tslib": "^2.6.0" }, "engines": { "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.6.3.tgz", - "integrity": "sha512-rt+MGCCpYgPyWCGXtbxlwFbTSobu15jWBTPI2LHsHNa5B0zSmOISX6FWYAPt5X1rNDOqMGM0FATnh7TBHRohVA==", - "dependencies": { - "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.6.3", - "@docusaurus/logger": "3.6.3", - "@docusaurus/plugin-content-docs": "3.6.3", - "@docusaurus/theme-common": "3.6.3", - "@docusaurus/theme-translations": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-validation": "3.6.3", - "algoliasearch": "^4.18.0", - "algoliasearch-helper": "^3.13.3", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.8.1.tgz", + "integrity": "sha512-NBFH5rZVQRAQM087aYSRKQ9yGEK9eHd+xOxQjqNpxMiV85OhJDD4ZGz6YJIod26Fbooy54UWVdzNU0TFeUUUzQ==", + "license": "MIT", + "dependencies": { + "@docsearch/react": "^3.9.0", + "@docusaurus/core": "3.8.1", + "@docusaurus/logger": "3.8.1", + "@docusaurus/plugin-content-docs": "3.8.1", + "@docusaurus/theme-common": "3.8.1", + "@docusaurus/theme-translations": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-validation": "3.8.1", + "algoliasearch": "^5.17.1", + "algoliasearch-helper": "^3.22.6", "clsx": "^2.0.0", "eta": "^2.2.0", "fs-extra": "^11.1.1", @@ -3883,14 +3896,15 @@ "node": ">=18.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-translations": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.6.3.tgz", - "integrity": "sha512-Gb0regclToVlngSIIwUCtBMQBq48qVUaN1XQNKW4XwlsgUyk0vP01LULdqbem7czSwIeBAFXFoORJ0RPX7ht/w==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.8.1.tgz", + "integrity": "sha512-OTp6eebuMcf2rJt4bqnvuwmm3NVXfzfYejL+u/Y1qwKhZPrjPoKWfk1CbOP5xH5ZOPkiAsx4dHdQBRJszK3z2g==", + "license": "MIT", "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" @@ -3900,41 +3914,58 @@ } }, "node_modules/@docusaurus/tsconfig": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.6.3.tgz", - "integrity": "sha512-1pT/rTrRpMV15E4tJH95W5PrjboMn5JkKF+Ys8cTjMegetiXjs0gPFOSDA5hdTlberKQLDO50xPjMJHondLuzA==", - "dev": true + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.8.1.tgz", + "integrity": "sha512-XBWCcqhRHhkhfolnSolNL+N7gj3HVE3CoZVqnVjfsMzCoOsuQw2iCLxVVHtO+rePUUfouVZHURDgmqIySsF66A==", + "dev": true, + "license": "MIT" }, "node_modules/@docusaurus/types": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.3.tgz", - "integrity": "sha512-xD9oTGDrouWzefkhe9ogB2fDV96/82cRpNGx2HIvI5L87JHNhQVIWimQ/3JIiiX/TEd5S9s+VO6FFguwKNRVow==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.8.1.tgz", + "integrity": "sha512-ZPdW5AB+pBjiVrcLuw3dOS6BFlrG0XkS2lDGsj8TizcnREQg3J8cjsgfDviszOk4CweNfwo1AEELJkYaMUuOPg==", + "license": "MIT", "dependencies": { "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", "@types/react": "*", "commander": "^5.1.0", "joi": "^17.9.2", - "react-helmet-async": "^1.3.0", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "utility-types": "^3.10.0", "webpack": "^5.95.0", "webpack-merge": "^5.9.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/types/node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" } }, "node_modules/@docusaurus/utils": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.6.3.tgz", - "integrity": "sha512-0R/FR3bKVl4yl8QwbL4TYFfR+OXBRpVUaTJdENapBGR3YMwfM6/JnhGilWQO8AOwPJGtGoDK7ib8+8UF9f3OZQ==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.8.1.tgz", + "integrity": "sha512-P1ml0nvOmEFdmu0smSXOqTS1sxU5tqvnc0dA4MTKV39kye+bhQnjkIKEE18fNOvxjyB86k8esoCIFM3x4RykOQ==", + "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.6.3", - "@docusaurus/types": "3.6.3", - "@docusaurus/utils-common": "3.6.3", - "@svgr/webpack": "^8.1.0", + "@docusaurus/logger": "3.8.1", + "@docusaurus/types": "3.8.1", + "@docusaurus/utils-common": "3.8.1", "escape-string-regexp": "^4.0.0", + "execa": "5.1.1", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", "github-slugger": "^1.5.0", @@ -3944,9 +3975,9 @@ "js-yaml": "^4.1.0", "lodash": "^4.17.21", "micromatch": "^4.0.5", + "p-queue": "^6.6.2", "prompts": "^2.4.2", "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", "tslib": "^2.6.0", "url-loader": "^4.1.1", "utility-types": "^3.10.0", @@ -3957,11 +3988,12 @@ } }, "node_modules/@docusaurus/utils-common": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.6.3.tgz", - "integrity": "sha512-v4nKDaANLgT3pMBewHYEMAl/ufY0LkXao1QkFWzI5huWFOmNQ2UFzv2BiKeHX5Ownis0/w6cAyoxPhVdDonlSQ==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.8.1.tgz", + "integrity": "sha512-zTZiDlvpvoJIrQEEd71c154DkcriBecm4z94OzEE9kz7ikS3J+iSlABhFXM45mZ0eN5pVqqr7cs60+ZlYLewtg==", + "license": "MIT", "dependencies": { - "@docusaurus/types": "3.6.3", + "@docusaurus/types": "3.8.1", "tslib": "^2.6.0" }, "engines": { @@ -3969,13 +4001,14 @@ } }, "node_modules/@docusaurus/utils-validation": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.6.3.tgz", - "integrity": "sha512-bhEGGiN5BE38h21vjqD70Gxg++j+PfYVddDUE5UFvLDup68QOcpD33CLr+2knPorlxRbEaNfz6HQDUMQ3HuqKw==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.8.1.tgz", + "integrity": "sha512-gs5bXIccxzEbyVecvxg6upTwaUbfa0KMmTj7HhHzc016AGyxH2o73k1/aOD0IFrdCsfJNt37MqNI47s2MgRZMA==", + "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.6.3", - "@docusaurus/utils": "3.6.3", - "@docusaurus/utils-common": "3.6.3", + "@docusaurus/logger": "3.8.1", + "@docusaurus/utils": "3.8.1", + "@docusaurus/utils-common": "3.8.1", "fs-extra": "^11.2.0", "joi": "^17.9.2", "js-yaml": "^4.1.0", @@ -3990,8 +4023,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@faker-js/faker": { "version": "5.5.3", @@ -4003,12 +4035,14 @@ "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "license": "BSD-3-Clause" }, "node_modules/@hapi/topo": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } @@ -4025,12 +4059,13 @@ } }, "node_modules/@iconify-icon/react": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@iconify-icon/react/-/react-2.1.0.tgz", - "integrity": "sha512-OuEsW5Y474rg3WlseLFQ0uuJjnyk1DhLN1Ire5JGjF4sF8/rNxGJDLSItEogRcKuUbL+zzuoBsaTUVVInuixRA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@iconify-icon/react/-/react-2.3.0.tgz", + "integrity": "sha512-7at8wGF+igiCS2XMaIrkZokD0zxz0pNa5SZn5tJAkZMJezeJlYiFXI5rYkiEpUpMaNYhYTqGLB90I/0sKJZkUw==", "dev": true, + "license": "MIT", "dependencies": { - "iconify-icon": "^2.1.0" + "iconify-icon": "^2.3.0" }, "funding": { "url": "https://github.com/sponsors/cyberalien" @@ -4043,14 +4078,16 @@ "version": "1.2.20", "resolved": "https://registry.npmjs.org/@iconify-icons/carbon/-/carbon-1.2.20.tgz", "integrity": "sha512-QCsqNX5VRK8ZqAnwDhUHdJFdRIDCHM3bF+72DUCIi1bQ6L8n5amOP4ZND2q1TadtAjP7g6DEnS2a6780iPjx9Q==", + "license": "Apache-2.0", "dependencies": { "@iconify/types": "*" } }, "node_modules/@iconify/react": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@iconify/react/-/react-5.0.2.tgz", - "integrity": "sha512-wtmstbYlEbo4NDxFxBJkhkf9gJBDqMGr7FaqLrAUMneRV3Z+fVHLJjOhWbkAF8xDQNFC/wcTYdrWo1lnRhmagQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@iconify/react/-/react-5.2.1.tgz", + "integrity": "sha512-37GDR3fYDZmnmUn9RagyaX+zca24jfVOMY8E1IXTqJuE8pxNtN51KWPQe3VODOWvuUurq7q9uUu3CFrpqj5Iqg==", + "license": "MIT", "dependencies": { "@iconify/types": "^2.0.0" }, @@ -4064,7 +4101,8 @@ "node_modules/@iconify/types": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", - "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==" + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" }, "node_modules/@iconify/utils": { "version": "2.3.0", @@ -4098,6 +4136,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -4111,9 +4150,10 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -4125,6 +4165,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -4139,6 +4180,7 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -4150,6 +4192,7 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -4163,9 +4206,10 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -4179,6 +4223,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -4187,6 +4232,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -4195,20 +4241,23 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -4218,18 +4267,19 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" }, "node_modules/@mdx-js/mdx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.0.1.tgz", - "integrity": "sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", + "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", @@ -4237,14 +4287,15 @@ "@types/mdx": "^2.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", - "estree-util-build-jsx": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", - "estree-util-to-js": "^2.0.0", + "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", - "hast-util-to-estree": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", - "periscopic": "^3.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", @@ -4264,6 +4315,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", + "license": "MIT", "dependencies": { "@types/mdx": "^2.0.0" }, @@ -4277,18 +4329,19 @@ } }, "node_modules/@mermaid-js/parser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.3.0.tgz", - "integrity": "sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.4.0.tgz", + "integrity": "sha512-wla8XOWvQAwuqy+gxiZqY+c7FokraOTHRWMsbB4AgRx9Sy7zKslNyejy7E+a77qHfey5GXw/ik3IXv/NHMJgaA==", "license": "MIT", "dependencies": { - "langium": "3.0.0" + "langium": "3.3.1" } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -4301,6 +4354,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -4309,6 +4363,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -4318,57 +4373,52 @@ } }, "node_modules/@octokit/app": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@octokit/app/-/app-15.0.1.tgz", - "integrity": "sha512-nwSjC349E6/wruMCo944y1dBC7uKzUYrBMoC4Qx/xfLLBmD+R66oMKB1jXS2HYRF9Hqh/Alq3UNRggVWZxjvUg==", + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@octokit/app/-/app-15.1.6.tgz", + "integrity": "sha512-WELCamoCJo9SN0lf3SWZccf68CF0sBNPQuLYmZ/n87p5qvBJDe9aBtr5dHkh7T9nxWZ608pizwsUbypSzZAiUw==", + "license": "MIT", "dependencies": { - "@octokit/auth-app": "^7.0.0", - "@octokit/auth-unauthenticated": "^6.0.0", - "@octokit/core": "^6.1.2", - "@octokit/oauth-app": "^7.0.0", - "@octokit/plugin-paginate-rest": "^11.0.0", - "@octokit/types": "^13.0.0", - "@octokit/webhooks": "^13.0.0" + "@octokit/auth-app": "^7.2.1", + "@octokit/auth-unauthenticated": "^6.1.3", + "@octokit/core": "^6.1.5", + "@octokit/oauth-app": "^7.1.6", + "@octokit/plugin-paginate-rest": "^12.0.0", + "@octokit/types": "^14.0.0", + "@octokit/webhooks": "^13.6.1" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/auth-app": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-7.0.0.tgz", - "integrity": "sha512-2MKylF29sWO72KNI1aUMDJ/ZMOwWjePGz1VnS1B9xdY+SOGvGRUAnufH6SDWGZuwQ7WyvwkCYc0eG2IekglWwQ==", - "dependencies": { - "@octokit/auth-oauth-app": "^8.1.0", - "@octokit/auth-oauth-user": "^5.1.0", - "@octokit/request": "^9.1.1", - "@octokit/request-error": "^6.1.1", - "@octokit/types": "^13.4.1", - "lru-cache": "^10.0.0", - "universal-github-app-jwt": "^2.0.6", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-7.2.1.tgz", + "integrity": "sha512-4jaopCVOtWN0V8qCx/1s2pkRqC6tcvIQM3kFB99eIpsP53GfsoIKO08D94b83n/V3iGihHmxWR2lXzE0NicUGg==", + "license": "MIT", + "dependencies": { + "@octokit/auth-oauth-app": "^8.1.4", + "@octokit/auth-oauth-user": "^5.1.4", + "@octokit/request": "^9.2.3", + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0", + "toad-cache": "^3.7.0", + "universal-github-app-jwt": "^2.2.0", "universal-user-agent": "^7.0.0" }, "engines": { "node": ">= 18" } }, - "node_modules/@octokit/auth-app/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/@octokit/auth-oauth-app": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-8.1.1.tgz", - "integrity": "sha512-5UtmxXAvU2wfcHIPPDWzVSAWXVJzG3NWsxb7zCFplCWEmMCArSZV0UQu5jw5goLQXbFyOr5onzEH37UJB3zQQg==", + "version": "8.1.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-8.1.4.tgz", + "integrity": "sha512-71iBa5SflSXcclk/OL3lJzdt4iFs56OJdpBGEBl1wULp7C58uiswZLV6TdRaiAzHP1LT8ezpbHlKuxADb+4NkQ==", + "license": "MIT", "dependencies": { - "@octokit/auth-oauth-device": "^7.0.0", - "@octokit/auth-oauth-user": "^5.0.1", - "@octokit/request": "^9.0.0", - "@octokit/types": "^13.0.0", + "@octokit/auth-oauth-device": "^7.1.5", + "@octokit/auth-oauth-user": "^5.1.4", + "@octokit/request": "^9.2.3", + "@octokit/types": "^14.0.0", "universal-user-agent": "^7.0.0" }, "engines": { @@ -4376,13 +4426,14 @@ } }, "node_modules/@octokit/auth-oauth-device": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-7.1.1.tgz", - "integrity": "sha512-HWl8lYueHonuyjrKKIup/1tiy0xcmQCdq5ikvMO1YwkNNkxb6DXfrPjrMYItNLyCP/o2H87WuijuE+SlBTT8eg==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-7.1.5.tgz", + "integrity": "sha512-lR00+k7+N6xeECj0JuXeULQ2TSBB/zjTAmNF2+vyGPDEFx1dgk1hTDmL13MjbSmzusuAmuJD8Pu39rjp9jH6yw==", + "license": "MIT", "dependencies": { - "@octokit/oauth-methods": "^5.0.0", - "@octokit/request": "^9.0.0", - "@octokit/types": "^13.0.0", + "@octokit/oauth-methods": "^5.1.5", + "@octokit/request": "^9.2.3", + "@octokit/types": "^14.0.0", "universal-user-agent": "^7.0.0" }, "engines": { @@ -4390,14 +4441,15 @@ } }, "node_modules/@octokit/auth-oauth-user": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-5.1.1.tgz", - "integrity": "sha512-rRkMz0ErOppdvEfnemHJXgZ9vTPhBuC6yASeFaB7I2yLMd7QpjfrL1mnvRPlyKo+M6eeLxrKanXJ9Qte29SRsw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-5.1.6.tgz", + "integrity": "sha512-/R8vgeoulp7rJs+wfJ2LtXEVC7pjQTIqDab7wPKwVG6+2v/lUnCOub6vaHmysQBbb45FknM3tbHW8TOVqYHxCw==", + "license": "MIT", "dependencies": { - "@octokit/auth-oauth-device": "^7.0.1", - "@octokit/oauth-methods": "^5.0.0", - "@octokit/request": "^9.0.1", - "@octokit/types": "^13.0.0", + "@octokit/auth-oauth-device": "^7.1.5", + "@octokit/oauth-methods": "^5.1.5", + "@octokit/request": "^9.2.3", + "@octokit/types": "^14.0.0", "universal-user-agent": "^7.0.0" }, "engines": { @@ -4405,35 +4457,38 @@ } }, "node_modules/@octokit/auth-token": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz", - "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.2.tgz", + "integrity": "sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw==", + "license": "MIT", "engines": { "node": ">= 18" } }, "node_modules/@octokit/auth-unauthenticated": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-6.1.0.tgz", - "integrity": "sha512-zPSmfrUAcspZH/lOFQnVnvjQZsIvmfApQH6GzJrkIunDooU1Su2qt2FfMTSVPRp7WLTQyC20Kd55lF+mIYaohQ==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-6.1.3.tgz", + "integrity": "sha512-d5gWJla3WdSl1yjbfMpET+hUSFCE15qM0KVSB0H1shyuJihf/RL1KqWoZMIaonHvlNojkL9XtLFp8QeLe+1iwA==", + "license": "MIT", "dependencies": { - "@octokit/request-error": "^6.0.1", - "@octokit/types": "^13.0.0" + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/core": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz", - "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.5.tgz", + "integrity": "sha512-vvmsN0r7rguA+FySiCsbaTTobSftpIDIpPW81trAmsv9TGxg3YCujAxRYp/Uy8xmDgYCzzgulG62H7KYUFmeIg==", + "license": "MIT", "dependencies": { "@octokit/auth-token": "^5.0.0", - "@octokit/graphql": "^8.0.0", - "@octokit/request": "^9.0.0", - "@octokit/request-error": "^6.0.1", - "@octokit/types": "^13.0.0", + "@octokit/graphql": "^8.2.2", + "@octokit/request": "^9.2.3", + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0", "before-after-hook": "^3.0.2", "universal-user-agent": "^7.0.0" }, @@ -4442,12 +4497,12 @@ } }, "node_modules/@octokit/endpoint": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.3.tgz", - "integrity": "sha512-nBRBMpKPhQUxCsQQeW+rCJ/OPSMcj3g0nfHn01zGYZXuNDvvXudF/TYY6APj5THlurerpFN4a/dQAIAaM6BYhA==", + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.4.tgz", + "integrity": "sha512-OlYOlZIsfEVZm5HCSR8aSg02T2lbUWOsCQoPKfTXJwDzcHQBrVBGdGXb89dv2Kw2ToZaRtudp8O3ZIYoaOjKlA==", "license": "MIT", "dependencies": { - "@octokit/types": "^13.6.2", + "@octokit/types": "^14.0.0", "universal-user-agent": "^7.0.2" }, "engines": { @@ -4455,12 +4510,13 @@ } }, "node_modules/@octokit/graphql": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", - "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.2.2.tgz", + "integrity": "sha512-Yi8hcoqsrXGdt0yObxbebHXFOiUA+2v3n53epuOg1QUgOB6c4XzvisBNVXJSl8RYA5KrDuSL2yq9Qmqe5N0ryA==", + "license": "MIT", "dependencies": { - "@octokit/request": "^9.0.0", - "@octokit/types": "^13.0.0", + "@octokit/request": "^9.2.3", + "@octokit/types": "^14.0.0", "universal-user-agent": "^7.0.0" }, "engines": { @@ -4468,16 +4524,17 @@ } }, "node_modules/@octokit/oauth-app": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-7.1.2.tgz", - "integrity": "sha512-4ntCOZIiTozKwuYQroX/ZD722tzMH8Eicv/cgDM/3F3lyrlwENHDv4flTCBpSJbfK546B2SrkKMWB+/HbS84zQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@octokit/oauth-app/-/oauth-app-7.1.6.tgz", + "integrity": "sha512-OMcMzY2WFARg80oJNFwWbY51TBUfLH4JGTy119cqiDawSFXSIBujxmpXiKbGWQlvfn0CxE6f7/+c6+Kr5hI2YA==", + "license": "MIT", "dependencies": { - "@octokit/auth-oauth-app": "^8.0.0", - "@octokit/auth-oauth-user": "^5.0.1", - "@octokit/auth-unauthenticated": "^6.0.0-beta.1", - "@octokit/core": "^6.0.0", - "@octokit/oauth-authorization-url": "^7.0.0", - "@octokit/oauth-methods": "^5.0.0", + "@octokit/auth-oauth-app": "^8.1.3", + "@octokit/auth-oauth-user": "^5.1.3", + "@octokit/auth-unauthenticated": "^6.1.2", + "@octokit/core": "^6.1.4", + "@octokit/oauth-authorization-url": "^7.1.1", + "@octokit/oauth-methods": "^5.1.4", "@types/aws-lambda": "^8.10.83", "universal-user-agent": "^7.0.0" }, @@ -4489,39 +4546,43 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-7.1.1.tgz", "integrity": "sha512-ooXV8GBSabSWyhLUowlMIVd9l1s2nsOGQdlP2SQ4LnkEsGXzeCvbSbCPdZThXhEFzleGPwbapT0Sb+YhXRyjCA==", + "license": "MIT", "engines": { "node": ">= 18" } }, "node_modules/@octokit/oauth-methods": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-5.1.2.tgz", - "integrity": "sha512-C5lglRD+sBlbrhCUTxgJAFjWgJlmTx5bQ7Ch0+2uqRjYv7Cfb5xpX4WuSC9UgQna3sqRGBL9EImX9PvTpMaQ7g==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-5.1.5.tgz", + "integrity": "sha512-Ev7K8bkYrYLhoOSZGVAGsLEscZQyq7XQONCBBAl2JdMg7IT3PQn/y8P0KjloPoYpI5UylqYrLeUcScaYWXwDvw==", + "license": "MIT", "dependencies": { "@octokit/oauth-authorization-url": "^7.0.0", - "@octokit/request": "^9.1.0", - "@octokit/request-error": "^6.1.0", - "@octokit/types": "^13.0.0" + "@octokit/request": "^9.2.3", + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/openapi-types": { - "version": "23.0.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz", - "integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==", + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.1.0.tgz", + "integrity": "sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==", "license": "MIT" }, "node_modules/@octokit/openapi-webhooks-types": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-webhooks-types/-/openapi-webhooks-types-8.2.1.tgz", - "integrity": "sha512-msAU1oTSm0ZmvAE0xDemuF4tVs5i0xNnNGtNmr4EuATi+1Rn8cZDetj6NXioSf5LwnxEc209COa/WOSbjuhLUA==" + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-webhooks-types/-/openapi-webhooks-types-11.0.0.tgz", + "integrity": "sha512-ZBzCFj98v3SuRM7oBas6BHZMJRadlnDoeFfvm1olVxZnYeU6Vh97FhPxyS5aLh5pN51GYv2I51l/hVUAVkGBlA==", + "license": "MIT" }, "node_modules/@octokit/plugin-paginate-graphql": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-5.2.2.tgz", - "integrity": "sha512-7znSVvlNAOJisCqAnjN1FtEziweOHSjPGAuc5W58NeGNAr/ZB57yCsjQbXDlWsVryA7hHQaEQPcBbJYFawlkyg==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-5.2.4.tgz", + "integrity": "sha512-pLZES1jWaOynXKHOqdnwZ5ULeVR6tVVCMm+AUbp0htdcyXDU95WbkYdU4R2ej1wKj5Tu94Mee2Ne0PjPO9cCyA==", + "license": "MIT", "engines": { "node": ">= 18" }, @@ -4530,12 +4591,12 @@ } }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "11.4.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.2.tgz", - "integrity": "sha512-BXJ7XPCTDXFF+wxcg/zscfgw2O/iDPtNSkwwR1W1W5c4Mb3zav/M2XvxQ23nVmKj7jpweB4g8viMeCQdm7LMVA==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-12.0.0.tgz", + "integrity": "sha512-MPd6WK1VtZ52lFrgZ0R2FlaoiWllzgqFHaSZxvp72NmoDeZ0m8GeJdg4oB6ctqMTYyrnDYp592Xma21mrgiyDA==", "license": "MIT", "dependencies": { - "@octokit/types": "^13.7.0" + "@octokit/types": "^14.0.0" }, "engines": { "node": ">= 18" @@ -4545,11 +4606,12 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "13.2.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.1.tgz", - "integrity": "sha512-YMWBw6Exh1ZBs5cCE0AnzYxSQDIJS00VlBqISTgNYmu5MBdeM07K/MAJjy/VkNaH5jpJmD/5HFUvIZ+LDB5jSQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-14.0.0.tgz", + "integrity": "sha512-iQt6ovem4b7zZYZQtdv+PwgbL5VPq37th1m2x2TdkgimIDJpsi2A6Q/OI/23i/hR6z5mL0EgisNR4dcbmckSZQ==", + "license": "MIT", "dependencies": { - "@octokit/types": "^13.5.0" + "@octokit/types": "^14.0.0" }, "engines": { "node": ">= 18" @@ -4559,12 +4621,13 @@ } }, "node_modules/@octokit/plugin-retry": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.1.tgz", - "integrity": "sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.2.1.tgz", + "integrity": "sha512-wUc3gv0D6vNHpGxSaR3FlqJpTXGWgqmk607N9L3LvPL4QjaxDgX/1nY2mGpT37Khn+nlIXdljczkRnNdTTV3/A==", + "license": "MIT", "dependencies": { - "@octokit/request-error": "^6.0.0", - "@octokit/types": "^13.0.0", + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0", "bottleneck": "^2.15.3" }, "engines": { @@ -4575,29 +4638,30 @@ } }, "node_modules/@octokit/plugin-throttling": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.0.tgz", - "integrity": "sha512-B5YTToSRTzNSeEyssnrT7WwGhpIdbpV9NKIs3KyTWHX6PhpYn7gqF/+lL3BvsASBM3Sg5BAUYk7KZx5p/Ec77w==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-10.0.0.tgz", + "integrity": "sha512-Kuq5/qs0DVYTHZuBAzCZStCzo2nKvVRo/TDNhCcpC2TKiOGz/DisXMCvjt3/b5kr6SCI1Y8eeeJTHBxxpFvZEg==", + "license": "MIT", "dependencies": { - "@octokit/types": "^13.0.0", + "@octokit/types": "^14.0.0", "bottleneck": "^2.15.3" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": "^6.0.0" + "@octokit/core": "^6.1.3" } }, "node_modules/@octokit/request": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.2.tgz", - "integrity": "sha512-dZl0ZHx6gOQGcffgm1/Sf6JfEpmh34v3Af2Uci02vzUYz6qEN6zepoRtmybWXIGXFIK8K9ylE3b+duCWqhArtg==", + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.3.tgz", + "integrity": "sha512-Ma+pZU8PXLOEYzsWf0cn/gY+ME57Wq8f49WTXA8FMHp2Ps9djKw//xYJ1je8Hm0pR2lU9FUGeJRWOtxq6olt4w==", "license": "MIT", "dependencies": { - "@octokit/endpoint": "^10.1.3", - "@octokit/request-error": "^6.1.7", - "@octokit/types": "^13.6.2", + "@octokit/endpoint": "^10.1.4", + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0", "fast-content-type-parse": "^2.0.0", "universal-user-agent": "^7.0.2" }, @@ -4606,99 +4670,49 @@ } }, "node_modules/@octokit/request-error": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.7.tgz", - "integrity": "sha512-69NIppAwaauwZv6aOzb+VVLwt+0havz9GT5YplkeJv7fG7a40qpLt/yZKyiDxAhgz0EtgNdNcb96Z0u+Zyuy2g==", + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.8.tgz", + "integrity": "sha512-WEi/R0Jmq+IJKydWlKDmryPcmdYSVjL3ekaiEL1L9eo1sUnqMJ+grqmC9cjk7CA7+b2/T397tO5d8YLOH3qYpQ==", "license": "MIT", "dependencies": { - "@octokit/types": "^13.6.2" + "@octokit/types": "^14.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/types": { - "version": "13.8.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.8.0.tgz", - "integrity": "sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.1.0.tgz", + "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^23.0.1" + "@octokit/openapi-types": "^25.1.0" } }, "node_modules/@octokit/webhooks": { - "version": "13.2.7", - "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-13.2.7.tgz", - "integrity": "sha512-sPHCyi9uZuCs1gg0yF53FFocM+GsiiBEhQQV/itGzzQ8gjyv2GMJ1YvgdDY4lC0ePZeiV3juEw4GbS6w1VHhRw==", + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-13.9.0.tgz", + "integrity": "sha512-5Kva+/Gi7c+39d0/0MM/v/5RCZuwqm75fUD+t7Es3Iz/adui54GnjfNmJpkkPkXGC+5IWnEvgqwY6gstK/JlUQ==", + "license": "MIT", "dependencies": { - "@octokit/openapi-webhooks-types": "8.2.1", - "@octokit/request-error": "^6.0.1", - "@octokit/webhooks-methods": "^5.0.0", - "aggregate-error": "^5.0.0" + "@octokit/openapi-webhooks-types": "11.0.0", + "@octokit/request-error": "^6.1.7", + "@octokit/webhooks-methods": "^5.1.1" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/webhooks-methods": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-5.1.0.tgz", - "integrity": "sha512-yFZa3UH11VIxYnnoOYCVoJ3q4ChuSOk2IVBBQ0O3xtKX4x9bmKb/1t+Mxixv2iUhzMdOl1qeWJqEhouXXzB3rQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@octokit/webhooks-methods/-/webhooks-methods-5.1.1.tgz", + "integrity": "sha512-NGlEHZDseJTCj8TMMFehzwa9g7On4KJMPVHDSrHxCQumL6uSQR8wIkP/qesv52fXqV1BPf4pTxwtS31ldAt9Xg==", + "license": "MIT", "engines": { "node": ">= 18" } }, - "node_modules/@octokit/webhooks/node_modules/aggregate-error": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", - "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", - "dependencies": { - "clean-stack": "^5.2.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@octokit/webhooks/node_modules/clean-stack": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-5.2.0.tgz", - "integrity": "sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ==", - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@octokit/webhooks/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@octokit/webhooks/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@parcel/watcher": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", @@ -4995,30 +5009,11 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "license": "Apache-2.0", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/@parcel/watcher/node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "license": "MIT", - "optional": true - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -5028,6 +5023,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "license": "MIT", "engines": { "node": ">=12.22.0" } @@ -5036,6 +5032,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "license": "MIT", "dependencies": { "graceful-fs": "4.2.10" }, @@ -5046,12 +5043,14 @@ "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "license": "ISC" }, "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "license": "MIT", "dependencies": { "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", @@ -5062,16 +5061,16 @@ } }, "node_modules/@polka/url": { - "version": "1.0.0-next.25", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", - "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==" + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "license": "MIT" }, "node_modules/@redocly/ajv": { "version": "8.11.2", "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz", "integrity": "sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -5087,15 +5086,13 @@ "version": "0.22.2", "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.22.2.tgz", "integrity": "sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@redocly/openapi-core": { "version": "1.34.3", "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.34.3.tgz", "integrity": "sha512-3arRdUp1fNx55itnjKiUhO6t4Mf91TsrTIYINDNLAZPS0TPd5YpiXRctwjel0qqWoOOhjA34cZ3m4dksLDFUYg==", "license": "MIT", - "peer": true, "dependencies": { "@redocly/ajv": "^8.11.2", "@redocly/config": "^0.22.0", @@ -5112,19 +5109,11 @@ "npm": ">=9.5.0" } }, - "node_modules/@redocly/openapi-core/node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "license": "MIT", - "peer": true - }, "node_modules/@redocly/openapi-core/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "license": "ISC", - "peer": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5160,6 +5149,7 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } @@ -5167,22 +5157,26 @@ "node_modules/@sideway/formula": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "license": "BSD-3-Clause" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "license": "BSD-3-Clause" }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "license": "MIT" }, "node_modules/@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -5190,24 +5184,11 @@ "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@slorber/react-ideal-image": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@slorber/react-ideal-image/-/react-ideal-image-0.0.12.tgz", - "integrity": "sha512-u8KiDTEkMA7/KAeA5ywg/P7YG4zuKhWtswfVZDH8R8HXgQsFcHIYU2WaQnGuK/Du7Wdj90I+SdFmajSGFRvoKA==", - "engines": { - "node": ">= 8.9.0", - "npm": "> 3" - }, - "peerDependencies": { - "prop-types": ">=15", - "react": ">=0.14.x", - "react-waypoint": ">=9.0.2" - } - }, "node_modules/@slorber/remark-comment": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", + "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.1.0", @@ -5218,6 +5199,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -5233,6 +5215,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -5248,6 +5231,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -5263,6 +5247,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -5278,6 +5263,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -5293,6 +5279,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -5308,6 +5295,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -5323,6 +5311,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -5338,6 +5327,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "license": "MIT", "dependencies": { "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", @@ -5363,6 +5353,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -5382,6 +5373,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "license": "MIT", "dependencies": { "@babel/types": "^7.21.3", "entities": "^4.4.0" @@ -5398,6 +5390,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -5419,6 +5412,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "license": "MIT", "dependencies": { "cosmiconfig": "^8.1.3", "deepmerge": "^4.3.1", @@ -5439,6 +5433,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", "@babel/plugin-transform-react-constant-elements": "^7.21.3", @@ -5461,6 +5456,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.1" }, @@ -5472,27 +5468,22 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "license": "ISC", "engines": { "node": ">=10.13.0" } }, - "node_modules/@types/acorn": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", - "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", - "dependencies": { - "@types/estree": "*" - } - }, "node_modules/@types/aws-lambda": { - "version": "8.10.137", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.137.tgz", - "integrity": "sha512-YNFwzVarXAOXkjuFxONyDw1vgRNzyH8AuyN19s0bM+ChSu/bzxb5XPxYFLXoqoM+tvgzwR3k7fXcEOW125yJxg==" + "version": "8.10.149", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.149.tgz", + "integrity": "sha512-NXSZIhfJjnXqJgtS7IwutqIF/SOy1Wz5Px4gUY1RWITp3AYTyuJS4xaXr/bIJY1v15XMzrJ5soGnPM+7uigZjA==", + "license": "MIT" }, "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -5502,6 +5493,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5510,6 +5502,7 @@ "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5518,6 +5511,7 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "license": "MIT", "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -5780,27 +5774,51 @@ "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", "dependencies": { "@types/ms": "*" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", "dependencies": { "@types/estree": "*" } }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz", + "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -5809,9 +5827,22 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", - "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", + "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -5828,12 +5859,14 @@ "node_modules/@types/gtag.js": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", - "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==" + "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==", + "license": "MIT" }, "node_modules/@types/hast": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -5841,7 +5874,8 @@ "node_modules/@types/history": { "version": "4.7.11", "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "license": "MIT" }, "node_modules/@types/hoist-non-react-statics": { "version": "3.3.6", @@ -5856,22 +5890,26 @@ "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "license": "MIT" }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT" }, "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" }, "node_modules/@types/http-proxy": { - "version": "1.17.14", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", - "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "version": "1.17.16", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", + "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5879,12 +5917,14 @@ "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } @@ -5893,6 +5933,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } @@ -5900,12 +5941,14 @@ "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" }, "node_modules/@types/mdast": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", - "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -5913,70 +5956,75 @@ "node_modules/@types/mdx": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==" + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" }, "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" }, "node_modules/@types/node": { - "version": "20.12.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.8.tgz", - "integrity": "sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==", + "version": "22.15.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.30.tgz", + "integrity": "sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==", + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.21.0" } }, "node_modules/@types/node-forge": { "version": "1.3.11", "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" - }, "node_modules/@types/parse5": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" + "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==", + "license": "MIT" }, "node_modules/@types/prismjs": { - "version": "1.26.3", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.3.tgz", - "integrity": "sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==" + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", + "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", + "license": "MIT" }, "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.1.tgz", - "integrity": "sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==", + "version": "19.1.6", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.6.tgz", + "integrity": "sha512-JeG0rEWak0N6Itr6QUx+X60uQmN+5t3j9r/OVDtWzFXKaj6kD1BwJzOksD0FF6iWxZlbE1kB0q9vtnU2ekqa1Q==", + "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, @@ -5996,6 +6044,7 @@ "version": "5.1.20", "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "license": "MIT", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*" @@ -6005,6 +6054,7 @@ "version": "5.0.11", "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", + "license": "MIT", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", @@ -6015,6 +6065,7 @@ "version": "5.3.3", "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "license": "MIT", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", @@ -6024,20 +6075,23 @@ "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" }, "node_modules/@types/sax": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -6047,14 +6101,16 @@ "version": "1.9.4", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "license": "MIT", "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", + "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", + "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/node": "*", @@ -6065,6 +6121,7 @@ "version": "0.3.36", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -6077,14 +6134,16 @@ "optional": true }, "node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -6093,6 +6152,7 @@ "version": "17.0.33", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } @@ -6100,163 +6160,184 @@ "node_modules/@types/yargs-parser": { "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" }, "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "license": "ISC" }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -6265,29 +6346,19 @@ "node": ">= 0.6" } }, - "node_modules/accepts/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -6296,26 +6367,23 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -6324,6 +6392,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -6333,7 +6402,6 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "license": "MIT", - "peer": true, "engines": { "node": ">= 14" } @@ -6342,6 +6410,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -6351,14 +6420,15 @@ } }, "node_modules/ajv": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", - "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", + "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "uri-js": "^4.2.2" }, "funding": { "type": "github", @@ -6370,7 +6440,6 @@ "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", "license": "MIT", - "peer": true, "peerDependencies": { "ajv": "^8.5.0" }, @@ -6384,6 +6453,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -6400,6 +6470,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -6408,31 +6479,34 @@ } }, "node_modules/algoliasearch": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz", - "integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.24.0", - "@algolia/cache-common": "4.24.0", - "@algolia/cache-in-memory": "4.24.0", - "@algolia/client-account": "4.24.0", - "@algolia/client-analytics": "4.24.0", - "@algolia/client-common": "4.24.0", - "@algolia/client-personalization": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/logger-console": "4.24.0", - "@algolia/recommend": "4.24.0", - "@algolia/requester-browser-xhr": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/requester-node-http": "4.24.0", - "@algolia/transporter": "4.24.0" + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.27.0.tgz", + "integrity": "sha512-2PvAgvxxJzA3+dB+ERfS2JPdvUsxNf89Cc2GF5iCcFupTULOwmbfinvqrC4Qj9nHJJDNf494NqEN/1f9177ZTQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-abtesting": "5.27.0", + "@algolia/client-analytics": "5.27.0", + "@algolia/client-common": "5.27.0", + "@algolia/client-insights": "5.27.0", + "@algolia/client-personalization": "5.27.0", + "@algolia/client-query-suggestions": "5.27.0", + "@algolia/client-search": "5.27.0", + "@algolia/ingestion": "1.27.0", + "@algolia/monitoring": "1.27.0", + "@algolia/recommend": "5.27.0", + "@algolia/requester-browser-xhr": "5.27.0", + "@algolia/requester-fetch": "5.27.0", + "@algolia/requester-node-http": "5.27.0" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/algoliasearch-helper": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.5.tgz", - "integrity": "sha512-lWvhdnc+aKOKx8jyA3bsdEgHzm/sglC4cYdMG4xSQyRiPLJVJtH/IVYZG3Hp6PkTEhQqhyVYkeP9z2IlcHJsWw==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.25.0.tgz", + "integrity": "sha512-vQoK43U6HXA9/euCqLjvyNdM4G2Fiu/VFp4ae0Gau9sZeIKBPvUPnXfLYAe65Bg7PFuw03coeu5K6lTPSXRObw==", + "license": "MIT", "dependencies": { "@algolia/events": "^4.0.1" }, @@ -6440,41 +6514,6 @@ "algoliasearch": ">= 3.1 < 6" } }, - "node_modules/algoliasearch/node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", - "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/requester-browser-xhr": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", - "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/algoliasearch/node_modules/@algolia/requester-node-http": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", - "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, "node_modules/allof-merge": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/allof-merge/-/allof-merge-0.6.6.tgz", @@ -6488,6 +6527,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", "dependencies": { "string-width": "^4.1.0" } @@ -6495,12 +6535,14 @@ "node_modules/ansi-align/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/ansi-align/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -6514,6 +6556,7 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -6528,6 +6571,7 @@ "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -6542,6 +6586,7 @@ "engines": [ "node >= 0.8.0" ], + "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } @@ -6550,6 +6595,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -6558,6 +6604,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -6578,6 +6625,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -6589,35 +6637,41 @@ "node_modules/aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "license": "ISC" }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/astring": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", - "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", "bin": { "astring": "bin/astring" } @@ -6626,18 +6680,19 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", "engines": { "node": ">= 4.0.0" } @@ -6646,14 +6701,15 @@ "version": "0.37.1", "resolved": "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.37.1.tgz", "integrity": "sha512-PgSe9fHYhZEsm/9jggbjtVsGXJkPLvd+9mC7gZJ662vVL5CRWEtm/mIrrzCx0MrNxHVwxD5d00UOn6NsmL2LUQ==", + "license": "MIT", "dependencies": { "immediate": "^3.2.3" } }, "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", "funding": [ { "type": "opencollective", @@ -6668,12 +6724,13 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", + "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -6687,9 +6744,9 @@ } }, "node_modules/axios": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.2.tgz", - "integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", + "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -6700,12 +6757,14 @@ "node_modules/b4a": { "version": "1.6.7", "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", - "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==" + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "license": "Apache-2.0" }, "node_modules/babel-loader": { "version": "9.2.1", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "license": "MIT", "dependencies": { "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" @@ -6722,17 +6781,19 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "license": "MIT", "dependencies": { "object.assign": "^4.1.0" } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", - "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", + "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.2", + "@babel/helper-define-polyfill-provider": "^0.6.4", "semver": "^6.3.1" }, "peerDependencies": { @@ -6743,28 +6804,31 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", - "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", + "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2" + "@babel/helper-define-polyfill-provider": "^0.6.4" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -6774,6 +6838,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6782,7 +6847,8 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, "node_modules/bare-events": { "version": "2.5.4", @@ -6792,9 +6858,9 @@ "optional": true }, "node_modules/bare-fs": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.2.tgz", - "integrity": "sha512-S5mmkMesiduMqnz51Bfh0Et9EX0aTCJxhsI4bvzFFLs8Z1AV8RDHadfY5CyLwdoLHgXbNBEN1gQcbEtGwuvixw==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.5.tgz", + "integrity": "sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -6873,17 +6939,20 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" }, "node_modules/bcp-47-match": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz", "integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6892,12 +6961,14 @@ "node_modules/before-after-hook": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", - "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==" + "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==", + "license": "Apache-2.0" }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", "engines": { "node": "*" } @@ -6906,6 +6977,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -6917,16 +6989,48 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/bl/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, "node_modules/body-parser": { "version": "1.20.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -6950,6 +7054,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -6958,19 +7063,49 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/bonjour-service": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", - "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" @@ -6979,17 +7114,20 @@ "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" }, "node_modules/bottleneck": { "version": "2.19.5", "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", - "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", + "license": "MIT" }, "node_modules/boxen": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^6.2.0", @@ -7011,6 +7149,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -7019,6 +7158,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -7027,9 +7167,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", "funding": [ { "type": "opencollective", @@ -7044,11 +7184,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.1" + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -7058,9 +7199,9 @@ } }, "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -7075,20 +7216,23 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "ieee754": "^1.2.1" } }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7097,6 +7241,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", "engines": { "node": ">=14.16" } @@ -7105,6 +7250,7 @@ "version": "10.2.14", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "license": "MIT", "dependencies": { "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", @@ -7118,16 +7264,57 @@ "node": ">=14.16" } }, + "node_modules/cacheable-request/node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -7140,13 +7327,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -7155,6 +7342,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -7164,6 +7352,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -7175,6 +7364,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", @@ -7183,9 +7373,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001680", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", - "integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==", + "version": "1.0.30001721", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz", + "integrity": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==", "funding": [ { "type": "opencollective", @@ -7199,12 +7389,14 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7214,6 +7406,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7229,6 +7422,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", "engines": { "node": ">=10" } @@ -7237,6 +7431,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7246,6 +7441,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7255,6 +7451,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7264,6 +7461,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7282,6 +7480,7 @@ "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", @@ -7302,6 +7501,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", @@ -7344,6 +7544,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -7366,12 +7567,14 @@ "node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", "engines": { "node": ">=6.0" } @@ -7386,6 +7589,7 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } @@ -7394,6 +7598,7 @@ "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", "dependencies": { "source-map": "~0.6.0" }, @@ -7405,6 +7610,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -7413,6 +7619,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -7421,6 +7628,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -7429,9 +7637,10 @@ } }, "node_modules/cli-table3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz", - "integrity": "sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -7445,12 +7654,14 @@ "node_modules/cli-table3/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/cli-table3/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7465,7 +7676,6 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "license": "ISC", - "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -7479,15 +7689,13 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "license": "MIT", - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7502,7 +7710,6 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7519,6 +7726,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -7532,6 +7740,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -7540,6 +7749,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7549,6 +7759,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" @@ -7561,6 +7772,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -7571,12 +7783,14 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/color-string": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -7586,6 +7800,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "license": "ISC", "bin": { "color-support": "bin.js" } @@ -7593,17 +7808,20 @@ "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" }, "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "license": "MIT" }, "node_modules/combine-promises": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", + "license": "MIT", "engines": { "node": ">=10" } @@ -7612,6 +7830,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -7620,10 +7839,11 @@ } }, "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "funding": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "license": "MIT", + "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } @@ -7632,6 +7852,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -7639,12 +7860,14 @@ "node_modules/common-path-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "license": "ISC" }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -7652,35 +7875,38 @@ "node": ">= 0.6" } }, - "node_modules/compressible/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", + "license": "MIT", "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", + "bytes": "3.1.2", + "compressible": "~2.0.18", "debug": "2.6.9", + "negotiator": "~0.6.4", "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", + "safe-buffer": "5.2.1", "vary": "~1.1.2" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/compression/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -7688,18 +7914,13 @@ "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/compute-gcd": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz", "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==", - "peer": true, "dependencies": { "validate.io-array": "^1.0.3", "validate.io-function": "^1.0.2", @@ -7710,7 +7931,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz", "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==", - "peer": true, "dependencies": { "compute-gcd": "^1.2.1", "validate.io-array": "^1.0.3", @@ -7721,18 +7941,20 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" }, "node_modules/confbox": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", - "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", "license": "MIT" }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -7742,6 +7964,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "license": "BSD-2-Clause", "dependencies": { "dot-prop": "^6.0.1", "graceful-fs": "^4.2.6", @@ -7760,14 +7983,16 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/consola": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", - "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", "engines": { "node": "^14.18.0 || >=16.10.0" } @@ -7775,17 +8000,14 @@ "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" - }, - "node_modules/consolidated-events": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/consolidated-events/-/consolidated-events-2.0.2.tgz", - "integrity": "sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ==" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "license": "ISC" }, "node_modules/content-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7794,6 +8016,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7801,12 +8024,14 @@ "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" }, "node_modules/cookie": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -7814,12 +8039,14 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" }, "node_modules/copy-text-to-clipboard": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -7831,6 +8058,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "license": "MIT", "dependencies": { "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", @@ -7854,6 +8082,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -7865,6 +8094,7 @@ "version": "13.2.2", "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -7883,6 +8113,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -7891,21 +8122,23 @@ } }, "node_modules/core-js": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.0.tgz", - "integrity": "sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug==", + "version": "3.43.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.43.0.tgz", + "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "version": "3.43.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz", + "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", + "license": "MIT", "dependencies": { - "browserslist": "^4.24.2" + "browserslist": "^4.25.0" }, "funding": { "type": "opencollective", @@ -7913,10 +8146,11 @@ } }, "node_modules/core-js-pure": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.39.0.tgz", - "integrity": "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==", + "version": "3.43.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.43.0.tgz", + "integrity": "sha512-i/AgxU2+A+BbJdMxh3v7/vxi2SbFqxiFmg6VsDwYB4jkucrd1BZNA9a9gphC0fYMG5IBSgQcbQnk865VCLe7xA==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -7925,12 +8159,14 @@ "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" }, "node_modules/cose-base": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "license": "MIT", "dependencies": { "layout-base": "^1.0.0" } @@ -7939,6 +8175,7 @@ "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", @@ -7964,6 +8201,7 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -7983,6 +8221,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "license": "MIT", "dependencies": { "type-fest": "^1.0.1" }, @@ -7997,6 +8236,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -8018,6 +8258,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -8029,9 +8270,10 @@ } }, "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -8044,6 +8286,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "license": "ISC", "engines": { "node": "^14 || ^16 || >=18" }, @@ -8052,9 +8295,9 @@ } }, "node_modules/css-has-pseudo": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.1.tgz", - "integrity": "sha512-EOcoyJt+OsuKfCADgLT7gADZI5jMzIe/AeI6MeAYKiFBDmNmM7kk46DtSfMj5AohUJisqVzopBpnQTlvbyaBWg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz", + "integrity": "sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ==", "funding": [ { "type": "github", @@ -8065,6 +8308,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/selector-specificity": "^5.0.0", "postcss-selector-parser": "^7.0.0", @@ -8091,6 +8335,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -8099,9 +8344,10 @@ } }, "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -8114,6 +8360,7 @@ "version": "6.11.0", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", @@ -8148,6 +8395,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "cssnano": "^6.0.1", @@ -8201,6 +8449,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -8212,6 +8461,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -8226,12 +8476,14 @@ "node_modules/css-selector-parser": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", - "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==" + "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==", + "license": "MIT" }, "node_modules/css-tree": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -8244,6 +8496,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -8252,9 +8505,9 @@ } }, "node_modules/cssdb": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.1.tgz", - "integrity": "sha512-KwEPys7lNsC8OjASI8RrmwOYYDcm0JOW9zQhcV83ejYcQkirTEyeAGui8aO2F5PiS6SLpxuTzl6qlMElIdsgIg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.3.0.tgz", + "integrity": "sha512-c7bmItIg38DgGjSwDPZOYF/2o0QU/sSgkWOMyl8votOfgFuyiFKWPesmCGEsrGLxEA9uL540cp8LdaGEjUGsZQ==", "funding": [ { "type": "opencollective", @@ -8264,12 +8517,14 @@ "type": "github", "url": "https://github.com/sponsors/csstools" } - ] + ], + "license": "MIT-0" }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -8281,6 +8536,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "license": "MIT", "dependencies": { "cssnano-preset-default": "^6.1.2", "lilconfig": "^3.1.1" @@ -8300,6 +8556,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", + "license": "MIT", "dependencies": { "autoprefixer": "^10.4.19", "browserslist": "^4.23.0", @@ -8320,6 +8577,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "css-declaration-sorter": "^7.2.0", @@ -8363,6 +8621,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -8374,6 +8633,7 @@ "version": "5.0.5", "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", "dependencies": { "css-tree": "~2.2.0" }, @@ -8386,6 +8646,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" @@ -8398,17 +8659,20 @@ "node_modules/csso/node_modules/mdn-data": { "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" }, "node_modules/cytoscape": { - "version": "3.29.2", - "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.29.2.tgz", - "integrity": "sha512-2G1ycU28Nh7OHT9rkXRLpCDP30MKH1dXJORZuBhtEhEW7pKwgPi77ImqlCWinouyE1PNepIOGZBOrE84DG7LyQ==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.32.0.tgz", + "integrity": "sha512-5JHBC9n75kz5851jeklCPmZWcg3hUe6sjqJvyk3+hVqFaKcHwHgxsjeN1yLmggoUc6STbtm9/NQyabQehfjvWQ==", + "license": "MIT", "engines": { "node": ">=0.10" } @@ -8417,6 +8681,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "license": "MIT", "dependencies": { "cose-base": "^1.0.0" }, @@ -8630,18 +8895,6 @@ "node": ">= 10" } }, - "node_modules/d3-dsv/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/d3-ease": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", @@ -8759,6 +9012,7 @@ "version": "0.12.3", "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "license": "BSD-3-Clause", "dependencies": { "d3-array": "1 - 2", "d3-shape": "^1.2.0" @@ -8768,6 +9022,7 @@ "version": "2.12.1", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "license": "BSD-3-Clause", "dependencies": { "internmap": "^1.0.0" } @@ -8775,12 +9030,14 @@ "node_modules/d3-sankey/node_modules/d3-path": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "license": "BSD-3-Clause" }, "node_modules/d3-sankey/node_modules/d3-shape": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "license": "BSD-3-Clause", "dependencies": { "d3-path": "1" } @@ -8788,7 +9045,8 @@ "node_modules/d3-sankey/node_modules/internmap": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "license": "ISC" }, "node_modules/d3-scale": { "version": "4.0.2", @@ -8919,19 +9177,21 @@ } }, "node_modules/dayjs": { - "version": "1.11.11", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", - "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" }, "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "license": "MIT" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -8946,9 +9206,10 @@ } }, "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", + "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", + "license": "MIT", "dependencies": { "character-entities": "^2.0.0" }, @@ -8961,6 +9222,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -8971,21 +9233,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -8994,6 +9246,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9002,6 +9255,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "license": "BSD-2-Clause", "dependencies": { "execa": "^5.0.0" }, @@ -9013,6 +9267,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", "engines": { "node": ">=10" } @@ -9021,6 +9276,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -9037,6 +9293,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", "engines": { "node": ">=8" } @@ -9045,6 +9302,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -9057,27 +9315,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/delaunator": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", @@ -9091,6 +9328,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -9099,6 +9337,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -9107,6 +9346,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -9115,23 +9355,30 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, "engines": { - "node": ">=8" + "node": ">=0.10" } }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" }, "node_modules/detect-package-manager": { "version": "3.0.2", @@ -9146,9 +9393,10 @@ } }, "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", + "license": "MIT", "dependencies": { "address": "^1.0.1", "debug": "4" @@ -9156,41 +9404,16 @@ "bin": { "detect": "bin/detect-port.js", "detect-port": "bin/detect-port.js" - } - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" }, "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" + "node": ">= 4.0.0" } }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, "node_modules/devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", "dependencies": { "dequal": "^2.0.0" }, @@ -9212,6 +9435,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -9223,6 +9447,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/direction/-/direction-1.0.4.tgz", "integrity": "sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ==", + "license": "MIT", "bin": { "direction": "cli.js" }, @@ -9235,6 +9460,7 @@ "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -9246,6 +9472,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/docusaurus-lunr-search/-/docusaurus-lunr-search-3.6.0.tgz", "integrity": "sha512-CCEAnj5e67sUZmIb2hOl4xb4nDN07fb0fvRDDmdWlYpUvyS1CSKbw4lsGInLyUFEEEBzxQmT6zaVQdF/8Zretg==", + "license": "MIT", "dependencies": { "autocomplete.js": "^0.37.1", "clsx": "^2.1.1", @@ -9274,12 +9501,14 @@ "node_modules/docusaurus-lunr-search/node_modules/@types/unist": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" }, "node_modules/docusaurus-lunr-search/node_modules/bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -9289,6 +9518,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9298,6 +9528,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "license": "MIT", "engines": { "node": ">=8" } @@ -9306,6 +9537,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9317,6 +9549,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -9326,6 +9559,7 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "license": "MIT", "dependencies": { "bail": "^1.0.0", "extend": "^3.0.0", @@ -9339,19 +9573,11 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/docusaurus-lunr-search/node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/docusaurus-lunr-search/node_modules/unist-util-stringify-position": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.2" }, @@ -9364,6 +9590,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -9379,6 +9606,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^2.0.0" @@ -9393,7 +9621,6 @@ "resolved": "https://registry.npmjs.org/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-4.4.0.tgz", "integrity": "sha512-VFW0euAyM6i6U6Q2WrNXkp1LnxQFGszZbmloMFYrs1qwBjPLkuHfQ4OJMXGDsGcGl4zNDJ9cwODmJlmdwl1hwg==", "license": "MIT", - "peer": true, "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.5.4", "@redocly/openapi-core": "^1.10.5", @@ -9426,7 +9653,6 @@ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -9436,7 +9662,6 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "license": "MIT", - "peer": true, "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -9451,6 +9676,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/docusaurus-plugin-remote-content/-/docusaurus-plugin-remote-content-4.0.0.tgz", "integrity": "sha512-e+gBmNdgOwA+7u6O2kk/u1w4ET23j8OIF6OiOWV6EoKHJJ/w/8U5smkHNlrQC3hQOltxE2NRC1jbsG7wfS+d3w==", + "license": "MIT", "workspaces": [ "testsite" ], @@ -9467,58 +9693,6 @@ "@docusaurus/core": "2.x || 3.x" } }, - "node_modules/docusaurus-plugin-remote-content/node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/docusaurus-plugin-remote-content/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/docusaurus-plugin-remote-content/node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/docusaurus-plugin-sass": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/docusaurus-plugin-sass/-/docusaurus-plugin-sass-0.2.6.tgz", @@ -9537,6 +9711,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/docusaurus-theme-github-codeblock/-/docusaurus-theme-github-codeblock-2.0.2.tgz", "integrity": "sha512-H2WoQPWOLjGZO6KS58Gsd+eUVjTFJemkReiSSu9chqokyLc/3Ih3+zPRYfuEZ/HsDvSMIarf7CNcp+Vt+/G+ig==", + "license": "MIT", "dependencies": { "@docusaurus/types": "^3.0.0" } @@ -9616,30 +9791,6 @@ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "license": "MIT" }, - "node_modules/docusaurus-theme-openapi-docs/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/docusaurus-theme-openapi-docs/node_modules/clsx": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", @@ -9649,6 +9800,16 @@ "node": ">=6" } }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/docusaurus-theme-openapi-docs/node_modules/escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", @@ -9786,6 +9947,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "license": "MIT" + }, "node_modules/docusaurus-theme-openapi-docs/node_modules/mdast-util-find-and-replace": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", @@ -10530,6 +10697,16 @@ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "license": "MIT" }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/docusaurus-theme-openapi-docs/node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", @@ -10644,6 +10821,25 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, "node_modules/docusaurus-theme-openapi-docs/node_modules/unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", @@ -10760,10 +10956,31 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/docusaurus-theme-openapi-docs/node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", "dependencies": { "utila": "~0.4" } @@ -10772,6 +10989,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -10790,12 +11008,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -10807,18 +11027,19 @@ } }, "node_modules/dompurify": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", - "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", + "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -10832,6 +11053,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -10841,6 +11063,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -10855,44 +11078,66 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.61", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.61.tgz", - "integrity": "sha512-CcRGSBCBB6L9c3PBJWYYrBo6Bzeoi+GZTKvtuRtooJGWsINk+mOInZWcssU35zDTAwreVcrMimc9aMyPpehRNw==" + "version": "1.5.165", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.165.tgz", + "integrity": "sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw==", + "license": "ISC" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" }, "node_modules/emojilib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", - "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==" + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "license": "MIT" }, "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", "engines": { "node": ">= 4" } @@ -10901,6 +11146,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz", "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -10910,6 +11156,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -10918,14 +11165,16 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -10938,6 +11187,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -10949,17 +11199,16 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -10968,26 +11217,87 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz", - "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/es6-promise": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "license": "MIT" + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", "license": "MIT", - "peer": true + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -10996,6 +11306,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11006,12 +11317,14 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -11023,6 +11336,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -11035,6 +11349,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -11047,6 +11362,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -11058,6 +11374,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -11066,6 +11383,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -11074,6 +11392,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" }, @@ -11086,6 +11405,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", @@ -11101,6 +11421,21 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -11110,6 +11445,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", @@ -11121,9 +11457,9 @@ } }, "node_modules/estree-util-value-to-estree": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.3.3.tgz", - "integrity": "sha512-Db+m1WSD4+mUO7UgMeKkAwdbfNWwIxLt48XF2oFU9emPfXkIu+k5/nlOj313v7wqtAPo0f9REhUvznFrPkG8CQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz", + "integrity": "sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" @@ -11136,6 +11472,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" @@ -11149,6 +11486,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" } @@ -11157,6 +11495,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -11165,6 +11504,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", + "license": "MIT", "engines": { "node": ">=6.0.0" }, @@ -11176,6 +11516,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -11195,12 +11536,14 @@ "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "engines": { "node": ">=0.8.x" } @@ -11209,6 +11552,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -11237,6 +11581,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", "engines": { "node": ">=6" } @@ -11291,6 +11636,7 @@ "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -11302,6 +11648,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -11309,7 +11656,8 @@ "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/express/node_modules/path-to-regexp": { "version": "0.1.12", @@ -11317,23 +11665,47 @@ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", "license": "MIT" }, + "node_modules/express/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/express/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, + "node_modules/exsolve": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz", + "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==", + "license": "MIT" + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" }, "node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -11360,23 +11732,26 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "node_modules/fast-fifo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -11385,19 +11760,20 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" }, "node_modules/fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -11406,6 +11782,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "license": "MIT", "dependencies": { "format": "^0.2.0" }, @@ -11418,6 +11795,7 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -11429,6 +11807,7 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "license": "MIT", "dependencies": { "xml-js": "^1.6.11" }, @@ -11440,6 +11819,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "license": "MIT", "dependencies": { "escape-string-regexp": "^1.0.5" }, @@ -11454,6 +11834,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -11462,6 +11843,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -11481,6 +11863,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -11496,6 +11879,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -11503,12 +11887,14 @@ "node_modules/file-loader/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/file-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -11537,18 +11923,11 @@ "node": ">=0.10.0" } }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -11560,6 +11939,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", @@ -11577,6 +11957,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -11584,12 +11965,14 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/find-cache-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "license": "MIT", "dependencies": { "common-path-prefix": "^3.0.0", "pkg-dir": "^7.0.0" @@ -11605,6 +11988,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -11620,20 +12004,22 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -11647,15 +12033,15 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -11669,6 +12055,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", "engines": { "node": ">=14" }, @@ -11676,153 +12063,16 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "engines": { - "node": ">=6" - } - }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", + "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -11833,6 +12083,7 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "license": "MIT", "engines": { "node": ">= 14.17" } @@ -11849,6 +12100,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -11857,6 +12109,7 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "license": "MIT", "engines": { "node": "*" }, @@ -11869,6 +12122,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -11876,12 +12130,14 @@ "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" }, "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -11894,18 +12150,21 @@ "node_modules/fs-monkey": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "license": "Unlicense" }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -11918,6 +12177,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11927,6 +12187,7 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", "deprecated": "This package is no longer supported.", + "license": "ISC", "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", @@ -11945,12 +12206,14 @@ "node_modules/gauge/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/gauge/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -11964,6 +12227,7 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -11973,21 +12237,26 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "license": "ISC", - "peer": true, "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -11999,12 +12268,27 @@ "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -12015,27 +12299,30 @@ "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT" }, "node_modules/github-slugger": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", - "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "license": "ISC" }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "*" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -12045,6 +12332,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -12055,32 +12343,29 @@ "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" }, "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "license": "MIT", "dependencies": { "ini": "2.0.0" }, @@ -12095,49 +12380,16 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", "engines": { "node": ">=10" } }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", "engines": { "node": ">=4" } @@ -12146,6 +12398,7 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -12162,11 +12415,12 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12176,6 +12430,7 @@ "version": "12.6.1", "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "license": "MIT", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -12200,6 +12455,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -12210,14 +12466,14 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/graphlib": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", "license": "MIT", - "peer": true, "dependencies": { "lodash": "^4.17.15" } @@ -12226,6 +12482,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", "dependencies": { "js-yaml": "^3.13.1", "kind-of": "^6.0.2", @@ -12240,6 +12497,7 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } @@ -12248,6 +12506,7 @@ "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -12260,6 +12519,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", "dependencies": { "duplexer": "^0.1.2" }, @@ -12279,12 +12539,14 @@ "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -12293,6 +12555,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -12300,10 +12563,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -12311,10 +12575,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, "engines": { "node": ">= 0.4" }, @@ -12325,12 +12593,14 @@ "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "license": "ISC" }, "node_modules/has-yarn": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -12342,6 +12612,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -12350,58 +12621,107 @@ } }, "node_modules/hast-util-from-parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", - "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", + "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^8.0.0", - "property-information": "^6.0.0", - "vfile": "^6.0.0", - "vfile-location": "^5.0.0", - "web-namespaces": "^2.0.0" + "@types/parse5": "^5.0.0", + "hastscript": "^6.0.0", + "property-information": "^5.0.0", + "vfile": "^4.0.0", + "vfile-location": "^3.2.0", + "web-namespaces": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-has-property": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz", - "integrity": "sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "node_modules/hast-util-from-parse5/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/hast-util-from-parse5/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5/node_modules/vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5/node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-has-property": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz", + "integrity": "sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, "node_modules/hast-util-is-element": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", - "dependencies": { - "@types/hast": "^3.0.0" - }, + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-raw": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.4.tgz", - "integrity": "sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -12422,88 +12742,157 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-select": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-4.0.2.tgz", - "integrity": "sha512-8EEG2//bN5rrzboPWD2HdS3ugLijNioS1pqOTIolXNf67xxShYw4SQEmVXd3imiBG+U2bC2nVTySr/iRAA7Cjg==", + "node_modules/hast-util-raw/node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-raw/node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", "dependencies": { - "bcp-47-match": "^1.0.0", - "comma-separated-tokens": "^1.0.0", - "css-selector-parser": "^1.0.0", - "direction": "^1.0.0", - "hast-util-has-property": "^1.0.0", - "hast-util-is-element": "^1.0.0", - "hast-util-to-string": "^1.0.0", - "hast-util-whitespace": "^1.0.0", - "not": "^0.1.0", - "nth-check": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0", - "unist-util-visit": "^2.0.0", - "zwitch": "^1.0.0" + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-select/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" + "node_modules/hast-util-raw/node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/hast-util-select/node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "node_modules/hast-util-raw/node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/hast-util-select/node_modules/hast-util-whitespace": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz", - "integrity": "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==", + "node_modules/hast-util-raw/node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/hast-util-select/node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "node_modules/hast-util-raw/node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", "dependencies": { - "xtend": "^4.0.0" + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/hast-util-select/node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "node_modules/hast-util-raw/node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/hast-util-select/node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "node_modules/hast-util-select": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-4.0.2.tgz", + "integrity": "sha512-8EEG2//bN5rrzboPWD2HdS3ugLijNioS1pqOTIolXNf67xxShYw4SQEmVXd3imiBG+U2bC2nVTySr/iRAA7Cjg==", + "license": "MIT", + "dependencies": { + "bcp-47-match": "^1.0.0", + "comma-separated-tokens": "^1.0.0", + "css-selector-parser": "^1.0.0", + "direction": "^1.0.0", + "hast-util-has-property": "^1.0.0", + "hast-util-is-element": "^1.0.0", + "hast-util-to-string": "^1.0.0", + "hast-util-whitespace": "^1.0.0", + "not": "^0.1.0", + "nth-check": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0", + "unist-util-visit": "^2.0.0", + "zwitch": "^1.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-select/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, "node_modules/hast-util-select/node_modules/unist-util-visit": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", @@ -12518,6 +12907,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" @@ -12527,19 +12917,11 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-select/node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/hast-util-to-estree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", - "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", @@ -12552,9 +12934,9 @@ "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.0", + "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" }, @@ -12563,10 +12945,64 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-to-estree/node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-estree/node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree/node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-estree/node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-estree/node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", - "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", @@ -12578,9 +13014,9 @@ "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", + "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" }, @@ -12589,23 +13025,54 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-jsx-runtime/node_modules/inline-style-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", - "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==" + "node_modules/hast-util-to-jsx-runtime/node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/hast-util-to-jsx-runtime/node_modules/style-to-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.6.tgz", - "integrity": "sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==", + "node_modules/hast-util-to-jsx-runtime/node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", "dependencies": { - "inline-style-parser": "0.2.3" + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/hast-util-to-parse5": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", @@ -12620,10 +13087,61 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-to-parse5/node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-parse5/node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-parse5/node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-parse5/node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-parse5/node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/hast-util-to-string": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz", "integrity": "sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -12633,6 +13151,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz", "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==", + "license": "MIT", "dependencies": { "hast-util-is-element": "^1.0.0", "repeat-string": "^1.0.0", @@ -12644,37 +13163,52 @@ } }, "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz", + "integrity": "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0" + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hastscript": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", - "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", + "node_modules/hastscript/node_modules/@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@types/unist": "^2" } }, + "node_modules/hastscript/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", "bin": { "he": "bin/he" } @@ -12683,6 +13217,7 @@ "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2", "loose-envify": "^1.2.0", @@ -12708,6 +13243,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } @@ -12716,6 +13252,7 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -12726,12 +13263,14 @@ "node_modules/hpack.js/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -12745,20 +13284,22 @@ "node_modules/hpack.js/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", "funding": [ { "type": "github", @@ -12768,17 +13309,20 @@ "type": "patreon", "url": "https://patreon.com/mdevils" } - ] + ], + "license": "MIT" }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "license": "MIT" }, "node_modules/html-minifier-terser": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "clean-css": "~5.3.2", @@ -12799,6 +13343,7 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", "engines": { "node": ">=14" } @@ -12807,6 +13352,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -12815,9 +13361,10 @@ } }, "node_modules/html-url-attributes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.0.tgz", - "integrity": "sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", + "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -12827,15 +13374,17 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/html-webpack-plugin": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", - "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", + "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", + "license": "MIT", "dependencies": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", @@ -12867,6 +13416,7 @@ "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", "engines": { "node": ">= 12" } @@ -12875,6 +13425,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", @@ -12902,6 +13453,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -12910,19 +13462,22 @@ } }, "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -12934,15 +13489,23 @@ "node": ">= 0.8" } }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT" }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -12980,6 +13543,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -12997,13 +13561,13 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", "integrity": "sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/http2-wrapper": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -13017,7 +13581,6 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", - "peer": true, "dependencies": { "agent-base": "^7.1.2", "debug": "4" @@ -13030,15 +13593,17 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/iconify-icon": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/iconify-icon/-/iconify-icon-2.1.0.tgz", - "integrity": "sha512-lto4XU3bwTQnb+D/CsJ4dWAo0aDe+uPMxEtxyOodw9l7R9QnJUUab3GCehlw2M8mDHdeUu/ufx8PvRQiJphhXg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/iconify-icon/-/iconify-icon-2.3.0.tgz", + "integrity": "sha512-C0beI9oTDxQz6voI5CKl7MiJf0Lw4UU8K4G4t6pcUDClLmCvuMOpcvd8MAztQ2SfoH0iv7WHdxBFjekKPFKH2Q==", "dev": true, + "license": "MIT", "dependencies": { "@iconify/types": "^2.0.0" }, @@ -13047,11 +13612,12 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -13061,6 +13627,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -13085,24 +13652,23 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/image-size": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz", - "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz", + "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", "license": "MIT", - "dependencies": { - "queue": "6.0.2" - }, "bin": { "image-size": "bin/image-size.js" }, @@ -13113,12 +13679,14 @@ "node_modules/immediate": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==", + "license": "MIT" }, "node_modules/immer": { "version": "9.0.21", "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" @@ -13131,9 +13699,10 @@ "license": "MIT" }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -13149,6 +13718,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -13157,6 +13727,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -13165,6 +13736,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -13173,6 +13745,7 @@ "version": "0.2.0-alpha.45", "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz", "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==", + "license": "MIT", "engines": { "node": ">=12" } @@ -13181,25 +13754,30 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" }, "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", + "license": "MIT" }, "node_modules/internmap": { "version": "2.0.3", @@ -13214,6 +13792,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -13222,6 +13801,7 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } @@ -13230,6 +13810,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -13238,6 +13819,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13247,6 +13829,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" @@ -13259,12 +13842,14 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -13290,6 +13875,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "engines": { "node": ">=4" } @@ -13298,6 +13884,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "license": "MIT", "dependencies": { "ci-info": "^3.2.0" }, @@ -13306,11 +13893,15 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13320,6 +13911,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13329,6 +13921,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -13343,6 +13936,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13351,6 +13945,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13359,6 +13954,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -13367,6 +13963,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -13378,6 +13975,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13387,6 +13985,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "license": "MIT", "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -13402,6 +14001,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -13413,6 +14013,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -13421,22 +14022,16 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -13445,6 +14040,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -13456,6 +14052,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -13463,34 +14060,20 @@ "node": ">=0.10.0" } }, - "node_modules/is-reference": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", - "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", - "dependencies": { - "@types/estree": "*" - } - }, "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "engines": { - "node": ">=6" - } - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -13501,12 +14084,14 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -13518,6 +14103,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "license": "MIT", "engines": { "node": ">=12" } @@ -13525,31 +14111,32 @@ "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -13561,6 +14148,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -13577,6 +14165,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -13591,6 +14180,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -13602,17 +14192,19 @@ } }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, "node_modules/joi": { - "version": "17.13.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz", - "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==", + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.3.0", "@hapi/topo": "^5.1.0", @@ -13626,7 +14218,6 @@ "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -13634,12 +14225,14 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -13648,9 +14241,10 @@ } }, "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -13661,7 +14255,8 @@ "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" }, "node_modules/json-crawl": { "version": "0.5.3", @@ -13675,14 +14270,14 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" }, "node_modules/json-pointer": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz", "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==", "license": "MIT", - "peer": true, "dependencies": { "foreach": "^2.0.4" } @@ -13692,7 +14287,6 @@ "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz", "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==", "license": "MIT", - "peer": true, "dependencies": { "lodash": "^4.17.4" } @@ -13702,7 +14296,6 @@ "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz", "integrity": "sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==", "license": "MIT", - "peer": true, "dependencies": { "compute-lcm": "^1.1.2", "json-schema-compare": "^0.2.2", @@ -13715,12 +14308,14 @@ "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -13732,6 +14327,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -13740,9 +14336,9 @@ } }, "node_modules/katex": { - "version": "0.16.21", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", - "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==", + "version": "0.16.22", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz", + "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -13759,6 +14355,7 @@ "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", "engines": { "node": ">= 12" } @@ -13767,6 +14364,7 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -13780,6 +14378,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13788,6 +14387,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", "engines": { "node": ">=6" } @@ -13799,9 +14399,9 @@ "license": "MIT" }, "node_modules/langium": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz", - "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz", + "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==", "license": "MIT", "dependencies": { "chevrotain": "~11.0.3", @@ -13818,6 +14418,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "license": "MIT", "dependencies": { "package-json": "^8.1.0" }, @@ -13829,9 +14430,10 @@ } }, "node_modules/launch-editor": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", + "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", + "license": "MIT", "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" @@ -13840,20 +14442,23 @@ "node_modules/layout-base": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", - "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==" + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", + "license": "MIT" }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -13864,7 +14469,8 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, "node_modules/liquid-json": { "version": "0.3.1", @@ -13879,6 +14485,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "license": "MIT", "engines": { "node": ">=6.11.5" } @@ -13887,6 +14494,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -13897,13 +14505,14 @@ } }, "node_modules/local-pkg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.0.0.tgz", - "integrity": "sha512-bbgPw/wmroJsil/GgL4qjDzs5YLTBMQ99weRsok1XCDccQeehbHA/I1oRvk2NPtr7KGZgT/Y5tPRnAtMqeG2Kg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz", + "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", "license": "MIT", "dependencies": { - "mlly": "^1.7.3", - "pkg-types": "^1.3.0" + "mlly": "^1.7.4", + "pkg-types": "^2.0.1", + "quansync": "^0.2.8" }, "engines": { "node": ">=14" @@ -13916,6 +14525,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "license": "MIT", "dependencies": { "p-locate": "^6.0.0" }, @@ -13929,7 +14539,8 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" }, "node_modules/lodash-es": { "version": "4.17.21", @@ -13940,22 +14551,26 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13965,6 +14580,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -13976,6 +14592,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -13984,6 +14601,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -13995,6 +14613,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -14002,22 +14621,26 @@ "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "license": "MIT" }, "node_modules/lunr-languages": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.14.0.tgz", - "integrity": "sha512-hWUAb2KqM3L7J5bcrngszzISY4BxrXn/Xhbb9TTCJYEGqlR1nG67/M14sp09+PTIRklobrn57IAxcdcO/ZFyNA==" + "integrity": "sha512-hWUAb2KqM3L7J5bcrngszzISY4BxrXn/Xhbb9TTCJYEGqlR1nG67/M14sp09+PTIRklobrn57IAxcdcO/ZFyNA==", + "license": "MPL-1.1" }, "node_modules/mark.js": { "version": "8.11.1", "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", - "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==" + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==", + "license": "MIT" }, "node_modules/markdown-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", "engines": { "node": ">=16" }, @@ -14026,18 +14649,19 @@ } }, "node_modules/markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/marked": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-13.0.3.tgz", - "integrity": "sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==", + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz", + "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", "license": "MIT", "bin": { "marked": "bin/marked.js" @@ -14046,6 +14670,15 @@ "node": ">= 18" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/mdast-util-definitions": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", @@ -14119,12 +14752,14 @@ } }, "node_modules/mdast-util-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz", - "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", + "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", + "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", @@ -14138,9 +14773,10 @@ } }, "node_modules/mdast-util-find-and-replace": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", - "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", @@ -14156,6 +14792,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -14163,10 +14800,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mdast-util-find-and-replace/node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-from-markdown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", - "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -14187,9 +14838,9 @@ } }, "node_modules/mdast-util-from-markdown/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14199,12 +14850,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/mdast-util-frontmatter": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -14222,6 +14875,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -14230,9 +14884,10 @@ } }, "node_modules/mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", @@ -14248,9 +14903,10 @@ } }, "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz", - "integrity": "sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", @@ -14264,9 +14920,9 @@ } }, "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14277,15 +14933,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14295,12 +14952,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", @@ -14317,6 +14976,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -14331,6 +14991,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -14347,6 +15008,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -14362,6 +15024,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-mdx-expression": "^2.0.0", @@ -14375,9 +15038,10 @@ } }, "node_modules/mdast-util-mdx-expression": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", - "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -14392,9 +15056,10 @@ } }, "node_modules/mdast-util-mdx-jsx": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz", - "integrity": "sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -14406,7 +15071,6 @@ "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", - "unist-util-remove-position": "^5.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" }, @@ -14419,6 +15083,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -14436,6 +15101,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" @@ -14445,10 +15111,24 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-phrasing/node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-to-hast": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", - "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -14466,15 +15146,17 @@ } }, "node_modules/mdast-util-to-markdown": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", - "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" @@ -14484,10 +15166,21 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-to-markdown/node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/mdast-util-to-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0" }, @@ -14499,12 +15192,14 @@ "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -14512,12 +15207,14 @@ "node_modules/medium-zoom": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-1.1.0.tgz", - "integrity": "sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==" + "integrity": "sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==", + "license": "MIT" }, "node_modules/memfs": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "license": "Unlicense", "dependencies": { "fs-monkey": "^1.0.4" }, @@ -14529,6 +15226,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -14536,68 +15234,59 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/mermaid": { - "version": "11.4.1", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.4.1.tgz", - "integrity": "sha512-Mb01JT/x6CKDWaxigwfZYuYmDZ6xtrNwNlidKZwkSrDaY9n90tdrJTV5Umk+wP1fZscGptmKFXHsXMDEVZ+Q6A==", + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.6.0.tgz", + "integrity": "sha512-PE8hGUy1LDlWIHWBP05SFdqUHGmRcCcK4IzpOKPE35eOw+G9zZgcnMpyunJVUEOgb//KBORPjysKndw8bFLuRg==", "license": "MIT", "dependencies": { - "@braintree/sanitize-url": "^7.0.1", - "@iconify/utils": "^2.1.32", - "@mermaid-js/parser": "^0.3.0", + "@braintree/sanitize-url": "^7.0.4", + "@iconify/utils": "^2.1.33", + "@mermaid-js/parser": "^0.4.0", "@types/d3": "^7.4.3", - "cytoscape": "^3.29.2", + "cytoscape": "^3.29.3", "cytoscape-cose-bilkent": "^4.1.0", "cytoscape-fcose": "^2.2.0", "d3": "^7.9.0", "d3-sankey": "^0.12.3", "dagre-d3-es": "7.0.11", - "dayjs": "^1.11.10", - "dompurify": "^3.2.1", + "dayjs": "^1.11.13", + "dompurify": "^3.2.4", "katex": "^0.16.9", "khroma": "^2.1.0", "lodash-es": "^4.17.21", - "marked": "^13.0.2", + "marked": "^15.0.7", "roughjs": "^4.6.6", - "stylis": "^4.3.1", + "stylis": "^4.3.6", "ts-dedent": "^2.2.0", - "uuid": "^9.0.1" - } - }, - "node_modules/mermaid/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + "uuid": "^11.1.0" } }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/micromark": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", - "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "funding": [ { "type": "GitHub Sponsors", @@ -14608,6 +15297,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -14629,9 +15319,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", - "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "funding": [ { "type": "GitHub Sponsors", @@ -14642,6 +15332,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", @@ -14662,9 +15353,9 @@ } }, "node_modules/micromark-core-commonmark/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -14675,15 +15366,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14694,15 +15386,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-core-commonmark/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14712,12 +15405,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-directive": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -14733,9 +15428,9 @@ } }, "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -14746,15 +15441,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14765,15 +15461,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14783,12 +15480,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-frontmatter": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", + "license": "MIT", "dependencies": { "fault": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -14801,9 +15500,9 @@ } }, "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14814,15 +15513,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14832,12 +15532,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", @@ -14854,9 +15556,10 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz", - "integrity": "sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", @@ -14869,9 +15572,9 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14882,15 +15585,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14900,12 +15604,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", @@ -14922,9 +15628,9 @@ } }, "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -14935,15 +15641,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14954,15 +15661,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14972,12 +15680,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -14992,9 +15702,9 @@ } }, "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15004,12 +15714,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz", - "integrity": "sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -15023,9 +15735,9 @@ } }, "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -15036,15 +15748,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15055,15 +15768,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15073,12 +15787,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm-tagfilter": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" }, @@ -15088,9 +15804,10 @@ } }, "node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz", - "integrity": "sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -15104,9 +15821,9 @@ } }, "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -15117,15 +15834,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15136,15 +15854,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15154,12 +15873,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", - "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15170,6 +15890,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", @@ -15182,9 +15903,9 @@ } }, "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -15195,15 +15916,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15214,15 +15936,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15232,20 +15955,22 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz", - "integrity": "sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "license": "MIT", "dependencies": { - "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" @@ -15256,9 +15981,9 @@ } }, "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -15269,15 +15994,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15288,15 +16014,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15306,12 +16033,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-mdx-md": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" }, @@ -15324,6 +16053,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", "dependencies": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", @@ -15343,6 +16073,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", @@ -15360,9 +16091,9 @@ } }, "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15373,15 +16104,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15391,12 +16123,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-destination": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", - "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", "funding": [ { "type": "GitHub Sponsors", @@ -15407,6 +16140,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -15414,9 +16148,9 @@ } }, "node_modules/micromark-factory-destination/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15427,15 +16161,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-destination/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15445,12 +16180,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-label": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", - "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "funding": [ { "type": "GitHub Sponsors", @@ -15461,6 +16197,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -15469,9 +16206,9 @@ } }, "node_modules/micromark-factory-label/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15482,15 +16219,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-label/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15500,12 +16238,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz", - "integrity": "sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", "funding": [ { "type": "GitHub Sponsors", @@ -15516,9 +16255,11 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -15527,10 +16268,30 @@ "vfile-message": "^4.0.0" } }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15541,15 +16302,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15559,7 +16321,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-space": { "version": "1.1.0", @@ -15575,6 +16338,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -15593,12 +16357,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-title": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", - "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", "funding": [ { "type": "GitHub Sponsors", @@ -15609,6 +16374,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -15617,9 +16383,9 @@ } }, "node_modules/micromark-factory-title/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -15630,15 +16396,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-title/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15649,15 +16416,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-title/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15667,12 +16435,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", - "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", "funding": [ { "type": "GitHub Sponsors", @@ -15683,6 +16452,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -15691,9 +16461,9 @@ } }, "node_modules/micromark-factory-whitespace/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -15704,15 +16474,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15723,15 +16494,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-whitespace/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15741,7 +16513,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-character": { "version": "1.2.0", @@ -15757,6 +16530,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -15775,12 +16549,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-chunked": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", - "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", "funding": [ { "type": "GitHub Sponsors", @@ -15791,14 +16566,15 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15808,12 +16584,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-classify-character": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", - "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15824,6 +16601,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -15831,9 +16609,9 @@ } }, "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15844,15 +16622,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-classify-character/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15862,12 +16641,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-combine-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", - "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", "funding": [ { "type": "GitHub Sponsors", @@ -15878,15 +16658,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", - "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", "funding": [ { "type": "GitHub Sponsors", @@ -15897,14 +16678,15 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15914,12 +16696,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-decode-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", "funding": [ { "type": "GitHub Sponsors", @@ -15930,6 +16713,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -15938,9 +16722,9 @@ } }, "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15951,15 +16735,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-decode-string/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -15969,12 +16754,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", "funding": [ { "type": "GitHub Sponsors", @@ -15984,12 +16770,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", - "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", "funding": [ { "type": "GitHub Sponsors", @@ -16000,8 +16787,8 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { - "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", @@ -16012,9 +16799,9 @@ } }, "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -16024,12 +16811,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-html-tag-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", - "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", "funding": [ { "type": "GitHub Sponsors", @@ -16039,12 +16827,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", - "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", "funding": [ { "type": "GitHub Sponsors", @@ -16055,14 +16844,15 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -16072,12 +16862,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-resolve-all": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", - "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", "funding": [ { "type": "GitHub Sponsors", @@ -16088,14 +16879,15 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "funding": [ { "type": "GitHub Sponsors", @@ -16106,6 +16898,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", @@ -16113,9 +16906,9 @@ } }, "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -16126,15 +16919,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -16144,12 +16938,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-subtokenize": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", - "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", "funding": [ { "type": "GitHub Sponsors", @@ -16160,6 +16955,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -16168,9 +16964,9 @@ } }, "node_modules/micromark-util-subtokenize/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -16180,7 +16976,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-symbol": { "version": "1.1.0", @@ -16195,12 +16992,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", "funding": [ { "type": "GitHub Sponsors", @@ -16210,12 +17008,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -16226,15 +17025,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -16245,15 +17045,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -16263,12 +17064,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -16281,6 +17084,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -16289,9 +17093,10 @@ } }, "node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -16306,11 +17111,12 @@ } }, "node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { - "mime-db": "~1.33.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -16320,16 +17126,18 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16339,6 +17147,7 @@ "version": "2.9.2", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "license": "MIT", "dependencies": { "schema-utils": "^4.0.0", "tapable": "^2.2.1" @@ -16357,12 +17166,14 @@ "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" }, "node_modules/minimatch": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -16377,6 +17188,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -16395,6 +17207,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==", "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "license": "MIT/X11", "engines": { "node": "*" } @@ -16402,7 +17215,8 @@ "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT" }, "node_modules/mlly": { "version": "1.7.4", @@ -16416,6 +17230,23 @@ "ufo": "^1.5.4" } }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -16426,9 +17257,10 @@ } }, "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", "engines": { "node": ">=10" } @@ -16443,6 +17275,7 @@ "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -16456,7 +17289,6 @@ "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", "license": "MIT", - "peer": true, "bin": { "mustache": "bin/mustache" } @@ -16473,15 +17305,16 @@ } }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -16490,14 +17323,16 @@ } }, "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "license": "MIT" }, "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -16505,14 +17340,14 @@ "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" }, "node_modules/neotraverse": { "version": "0.6.15", "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.15.tgz", "integrity": "sha512-HZpdkco+JeXq0G+WWpMJ4NsX3pqb5O7eR9uGz3FfoFt+LYzU8iRWp49nJtud6hsDoywM8tIrDo3gjgmOqJA8LA==", "license": "MIT", - "peer": true, "engines": { "node": ">= 10" } @@ -16521,15 +17356,17 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, "node_modules/node-abi": { - "version": "3.71.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", - "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", + "version": "3.75.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz", + "integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==", + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -16538,14 +17375,17 @@ } }, "node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT", + "optional": true }, "node_modules/node-emoji": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", - "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", + "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", + "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.6.0", "char-regex": "^1.0.2", @@ -16561,7 +17401,6 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "license": "MIT", - "peer": true, "dependencies": { "whatwg-url": "^5.0.0" }, @@ -16582,7 +17421,6 @@ "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", "license": "MIT", - "peer": true, "dependencies": { "http2-client": "^1.2.5" }, @@ -16594,6 +17432,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } @@ -16603,20 +17442,21 @@ "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", "integrity": "sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==", "license": "MIT", - "peer": true, "dependencies": { "es6-promise": "^3.2.1" } }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" }, "node_modules/nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "license": "MIT", "dependencies": { "abbrev": "1" }, @@ -16631,6 +17471,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16639,14 +17480,16 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.2.tgz", + "integrity": "sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -16663,6 +17506,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -16673,12 +17517,14 @@ "node_modules/nprogress": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", + "license": "MIT" }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -16690,6 +17536,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -16709,6 +17556,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -16724,6 +17572,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -16731,12 +17580,14 @@ "node_modules/null-loader/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/null-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -16755,7 +17606,6 @@ "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", "license": "BSD-3-Clause", - "peer": true, "dependencies": { "fast-safe-stringify": "^2.0.7" } @@ -16765,7 +17615,6 @@ "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", "license": "BSD-3-Clause", - "peer": true, "dependencies": { "@exodus/schemasafe": "^1.0.0-rc.2", "should": "^13.2.1", @@ -16780,7 +17629,6 @@ "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", "license": "BSD-3-Clause", - "peer": true, "dependencies": { "node-fetch-h2": "^2.3.0", "oas-kit-common": "^1.0.8", @@ -16800,7 +17648,6 @@ "resolved": "https://registry.npmjs.org/oas-resolver-browser/-/oas-resolver-browser-2.5.6.tgz", "integrity": "sha512-Jw5elT/kwUJrnGaVuRWe1D7hmnYWB8rfDDjBnpQ+RYY/dzAewGXeTexXzt4fGEo6PUE4eqKqPWF79MZxxvMppA==", "license": "BSD-3-Clause", - "peer": true, "dependencies": { "node-fetch-h2": "^2.3.0", "oas-kit-common": "^1.0.8", @@ -16821,7 +17668,6 @@ "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==", "license": "BSD-3-Clause", - "peer": true, "funding": { "url": "https://github.com/Mermade/oas-kit?sponsor=1" } @@ -16831,7 +17677,6 @@ "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz", "integrity": "sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==", "license": "BSD-3-Clause", - "peer": true, "dependencies": { "call-me-maybe": "^1.0.1", "oas-kit-common": "^1.0.8", @@ -16850,6 +17695,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16859,15 +17705,15 @@ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "license": "MIT", - "peer": true, "engines": { "node": ">= 6" } }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -16879,18 +17725,22 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -16903,23 +17753,26 @@ "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" }, "node_modules/octokit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/octokit/-/octokit-4.0.2.tgz", - "integrity": "sha512-wbqF4uc1YbcldtiBFfkSnquHtECEIpYD78YUXI6ri1Im5OO2NLo6ZVpRdbJpdnpZ05zMrVPssNiEo6JQtea+Qg==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/octokit/-/octokit-4.1.4.tgz", + "integrity": "sha512-cRvxRte6FU3vAHRC9+PMSY3D+mRAs2Rd9emMoqp70UGRvJRM3sbAoim2IXRZNNsf8wVfn4sGxVBHRAP+JBVX/g==", + "license": "MIT", "dependencies": { - "@octokit/app": "^15.0.0", - "@octokit/core": "^6.0.0", - "@octokit/oauth-app": "^7.0.0", - "@octokit/plugin-paginate-graphql": "^5.0.0", - "@octokit/plugin-paginate-rest": "^11.0.0", - "@octokit/plugin-rest-endpoint-methods": "^13.0.0", - "@octokit/plugin-retry": "^7.0.0", - "@octokit/plugin-throttling": "^9.0.0", - "@octokit/request-error": "^6.0.0", - "@octokit/types": "^13.0.0" + "@octokit/app": "^15.1.6", + "@octokit/core": "^6.1.5", + "@octokit/oauth-app": "^7.1.6", + "@octokit/plugin-paginate-graphql": "^5.2.4", + "@octokit/plugin-paginate-rest": "^12.0.0", + "@octokit/plugin-rest-endpoint-methods": "^14.0.0", + "@octokit/plugin-retry": "^7.2.1", + "@octokit/plugin-throttling": "^10.0.0", + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0", + "@octokit/webhooks": "^13.8.3" }, "engines": { "node": ">= 18" @@ -16929,6 +17782,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -16940,6 +17794,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -16948,6 +17803,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -16956,6 +17812,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -16970,6 +17827,7 @@ "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -16987,7 +17845,6 @@ "resolved": "https://registry.npmjs.org/openapi-to-postmanv2/-/openapi-to-postmanv2-4.25.0.tgz", "integrity": "sha512-sIymbkQby0gzxt2Yez8YKB6hoISEel05XwGwNrAhr6+vxJWXNxkmssQc/8UEtVkuJ9ZfUXLkip9PYACIpfPDWg==", "license": "Apache-2.0", - "peer": true, "dependencies": { "ajv": "8.11.0", "ajv-draft-04": "1.0.0", @@ -17008,40 +17865,23 @@ "yaml": "1.10.2" }, "bin": { - "openapi2postmanv2": "bin/openapi2postmanv2.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/openapi-to-postmanv2/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "openapi2postmanv2": "bin/openapi2postmanv2.js" + }, + "engines": { + "node": ">=8" } }, "node_modules/openapi-to-postmanv2/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "license": "(WTFPL OR MIT)", "bin": { "opener": "bin/opener-bin.js" } @@ -17050,14 +17890,25 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "license": "MIT", "engines": { "node": ">=12.20" } }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -17072,6 +17923,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -17086,6 +17938,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -17096,10 +17949,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", "dependencies": { "@types/retry": "0.12.0", "retry": "^0.13.1" @@ -17108,18 +17978,23 @@ "node": ">=8" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/package-json": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "license": "MIT", "dependencies": { "got": "^12.1.0", "registry-auth-token": "^5.0.1", @@ -17140,9 +18015,9 @@ "license": "BlueOak-1.0.0" }, "node_modules/package-manager-detector": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.9.tgz", - "integrity": "sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz", + "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==", "license": "MIT" }, "node_modules/pako": { @@ -17155,6 +18030,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -17164,6 +18040,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -17172,12 +18049,12 @@ } }, "node_modules/parse-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", - "character-entities": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", @@ -17191,14 +18068,16 @@ } }, "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -17216,6 +18095,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -17223,14 +18103,16 @@ "node_modules/parse-numeric-range": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", + "license": "ISC" }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^6.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -17240,6 +18122,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "license": "MIT", "dependencies": { "domhandler": "^5.0.3", "parse5": "^7.0.0" @@ -17248,10 +18131,23 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -17260,6 +18156,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -17279,8 +18176,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/path-data-parser": { "version": "0.1.0", @@ -17292,6 +18188,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } @@ -17300,6 +18197,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17307,12 +18205,14 @@ "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "license": "(WTFPL OR MIT)" }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -17320,7 +18220,8 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.11.1", @@ -17339,17 +18240,16 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/path-to-regexp": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "license": "MIT", "dependencies": { "isarray": "0.0.1" } @@ -17358,6 +18258,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -17368,25 +18269,17 @@ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", "license": "MIT" }, - "node_modules/periscopic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", - "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^3.0.0", - "is-reference": "^3.0.0" - } - }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -17407,6 +18300,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "license": "MIT", "dependencies": { "find-up": "^6.3.0" }, @@ -17418,87 +18312,21 @@ } }, "node_modules/pkg-types": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", - "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz", + "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==", "license": "MIT", "dependencies": { - "confbox": "^0.1.8", - "mlly": "^1.7.4", - "pathe": "^2.0.1" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "engines": { - "node": ">=4" + "confbox": "^0.2.1", + "exsolve": "^1.0.1", + "pathe": "^2.0.3" } }, "node_modules/plugin-image-zoom": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/plugin-image-zoom/-/plugin-image-zoom-1.2.0.tgz", "integrity": "sha512-uVCjp4bXuli39gmBs+JQvXMtpfLL+5yWfRIKZyM41d3D9oxGBEHmRzDu9EgusIwmBrKJvF9QuOZENw/9s6G+Jw==", + "license": "MIT", "dependencies": { "medium-zoom": "^1.0.4" } @@ -17508,7 +18336,6 @@ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "license": "MIT", - "peer": true, "engines": { "node": ">=4" } @@ -17530,9 +18357,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz", + "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==", "funding": [ { "type": "opencollective", @@ -17547,10 +18374,11 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -17570,6 +18398,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -17581,9 +18410,10 @@ } }, "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -17596,6 +18426,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" @@ -17611,6 +18442,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -17622,9 +18454,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.6.tgz", - "integrity": "sha512-wLXvm8RmLs14Z2nVpB4CWlnvaWPRcOZFltJSlcbYwSJ1EDZKsKDhPKIMecCnuU054KSmlmubkqczmm6qBPCBhA==", + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.10.tgz", + "integrity": "sha512-k9qX+aXHBiLTRrWoCJuUFI6F1iF6QJQUXNVWJVSbqZgj57jDhBlOvD8gNUGl35tgqDivbGLhZeW3Ongz4feuKA==", "funding": [ { "type": "github", @@ -17635,11 +18467,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -17663,6 +18496,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -17688,6 +18522,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -17703,6 +18538,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -17720,6 +18556,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -17732,9 +18569,9 @@ } }, "node_modules/postcss-custom-media": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz", - "integrity": "sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==", + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz", + "integrity": "sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==", "funding": [ { "type": "github", @@ -17745,11 +18582,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" }, "engines": { "node": ">=18" @@ -17759,9 +18597,9 @@ } }, "node_modules/postcss-custom-properties": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz", - "integrity": "sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==", + "version": "14.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz", + "integrity": "sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==", "funding": [ { "type": "github", @@ -17772,10 +18610,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -17787,9 +18626,9 @@ } }, "node_modules/postcss-custom-selectors": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz", - "integrity": "sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz", + "integrity": "sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==", "funding": [ { "type": "github", @@ -17800,10 +18639,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", "postcss-selector-parser": "^7.0.0" }, "engines": { @@ -17814,9 +18654,10 @@ } }, "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -17839,6 +18680,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -17850,9 +18692,10 @@ } }, "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -17865,6 +18708,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -17876,6 +18720,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -17887,6 +18732,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -17898,6 +18744,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -17909,6 +18756,7 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -17920,9 +18768,9 @@ } }, "node_modules/postcss-double-position-gradients": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz", - "integrity": "sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.2.tgz", + "integrity": "sha512-7qTqnL7nfLRyJK/AHSVrrXOuvDDzettC+wGoienURV8v2svNbu6zJC52ruZtHaO6mfcagFmuTGFdzRsJKB3k5Q==", "funding": [ { "type": "github", @@ -17933,8 +18781,9 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -17959,6 +18808,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -17970,9 +18820,10 @@ } }, "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -17995,6 +18846,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -18006,9 +18858,10 @@ } }, "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -18021,6 +18874,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "license": "MIT", "peerDependencies": { "postcss": "^8.1.0" } @@ -18039,6 +18893,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -18060,6 +18915,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -18072,9 +18928,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.6.tgz", - "integrity": "sha512-HPwvsoK7C949vBZ+eMyvH2cQeMr3UREoHvbtra76/UhDuiViZH6pir+z71UaJQohd7VDSVUdR6TkWYKExEc9aQ==", + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.10.tgz", + "integrity": "sha512-tqs6TCEv9tC1Riq6fOzHuHcZyhg4k3gIAMB8GGY/zA1ssGdm6puHMVE7t75aOSoFg7UD2wyrFFhbldiCMyyFTQ==", "funding": [ { "type": "github", @@ -18085,11 +18941,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.6", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.0.10", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -18103,6 +18960,7 @@ "version": "7.3.4", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "license": "MIT", "dependencies": { "cosmiconfig": "^8.3.5", "jiti": "^1.20.0", @@ -18121,9 +18979,9 @@ } }, "node_modules/postcss-logical": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.0.0.tgz", - "integrity": "sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.1.0.tgz", + "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==", "funding": [ { "type": "github", @@ -18134,6 +18992,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18148,6 +19007,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", + "license": "MIT", "dependencies": { "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" @@ -18163,6 +19023,7 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^6.1.1" @@ -18178,6 +19039,7 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -18195,6 +19057,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18209,6 +19072,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "license": "MIT", "dependencies": { "colord": "^2.9.3", "cssnano-utils": "^4.0.2", @@ -18225,6 +19089,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "cssnano-utils": "^4.0.2", @@ -18241,6 +19106,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -18255,6 +19121,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -18263,9 +19130,10 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz", - "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^7.0.0", @@ -18279,9 +19147,10 @@ } }, "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -18294,6 +19163,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -18305,9 +19175,10 @@ } }, "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -18320,6 +19191,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -18344,6 +19216,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/selector-resolve-nested": "^3.0.0", "@csstools/selector-specificity": "^5.0.0", @@ -18357,9 +19230,9 @@ } }, "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz", - "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz", + "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==", "funding": [ { "type": "github", @@ -18370,6 +19243,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -18391,6 +19265,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -18399,9 +19274,10 @@ } }, "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -18414,6 +19290,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -18425,6 +19302,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18439,6 +19317,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18453,6 +19332,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18467,6 +19347,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18481,6 +19362,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18495,6 +19377,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -18510,6 +19393,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18524,6 +19408,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18548,6 +19433,7 @@ "url": "https://liberapay.com/mrcgrtz" } ], + "license": "MIT", "engines": { "node": ">=18" }, @@ -18559,6 +19445,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "license": "MIT", "dependencies": { "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" @@ -18584,6 +19471,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18598,6 +19486,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "license": "MIT", "peerDependencies": { "postcss": "^8" } @@ -18616,6 +19505,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18627,9 +19517,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.1.tgz", - "integrity": "sha512-wqqsnBFD6VIwcHHRbhjTOcOi4qRVlB26RwSr0ordPj7OubRRxdWebv/aLjKLRR8zkZrbxZyuus03nOIgC5elMQ==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.2.1.tgz", + "integrity": "sha512-mDInnlm4mYhmR0S79hNLzseW9nx4Ihd8s15K99iu6u6QhoSQgqWX9Oj6nTd/8Dz3b0T7v2JSrfnXsDfv9TFvDg==", "funding": [ { "type": "github", @@ -18640,62 +19530,64 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/postcss-cascade-layers": "^5.0.1", - "@csstools/postcss-color-function": "^4.0.6", - "@csstools/postcss-color-mix-function": "^3.0.6", - "@csstools/postcss-content-alt-text": "^2.0.4", - "@csstools/postcss-exponential-functions": "^2.0.5", + "@csstools/postcss-color-function": "^4.0.10", + "@csstools/postcss-color-mix-function": "^3.0.10", + "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.0", + "@csstools/postcss-content-alt-text": "^2.0.6", + "@csstools/postcss-exponential-functions": "^2.0.9", "@csstools/postcss-font-format-keywords": "^4.0.0", - "@csstools/postcss-gamut-mapping": "^2.0.6", - "@csstools/postcss-gradients-interpolation-method": "^5.0.6", - "@csstools/postcss-hwb-function": "^4.0.6", - "@csstools/postcss-ic-unit": "^4.0.0", - "@csstools/postcss-initial": "^2.0.0", + "@csstools/postcss-gamut-mapping": "^2.0.10", + "@csstools/postcss-gradients-interpolation-method": "^5.0.10", + "@csstools/postcss-hwb-function": "^4.0.10", + "@csstools/postcss-ic-unit": "^4.0.2", + "@csstools/postcss-initial": "^2.0.1", "@csstools/postcss-is-pseudo-class": "^5.0.1", - "@csstools/postcss-light-dark-function": "^2.0.7", + "@csstools/postcss-light-dark-function": "^2.0.9", "@csstools/postcss-logical-float-and-clear": "^3.0.0", "@csstools/postcss-logical-overflow": "^2.0.0", "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", "@csstools/postcss-logical-resize": "^3.0.0", - "@csstools/postcss-logical-viewport-units": "^3.0.3", - "@csstools/postcss-media-minmax": "^2.0.5", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", + "@csstools/postcss-logical-viewport-units": "^3.0.4", + "@csstools/postcss-media-minmax": "^2.0.9", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5", "@csstools/postcss-nested-calc": "^4.0.0", "@csstools/postcss-normalize-display-values": "^4.0.0", - "@csstools/postcss-oklab-function": "^4.0.6", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/postcss-random-function": "^1.0.1", - "@csstools/postcss-relative-color-syntax": "^3.0.6", + "@csstools/postcss-oklab-function": "^4.0.10", + "@csstools/postcss-progressive-custom-properties": "^4.1.0", + "@csstools/postcss-random-function": "^2.0.1", + "@csstools/postcss-relative-color-syntax": "^3.0.10", "@csstools/postcss-scope-pseudo-class": "^4.0.1", - "@csstools/postcss-sign-functions": "^1.1.0", - "@csstools/postcss-stepped-value-functions": "^4.0.5", - "@csstools/postcss-text-decoration-shorthand": "^4.0.1", - "@csstools/postcss-trigonometric-functions": "^4.0.5", + "@csstools/postcss-sign-functions": "^1.1.4", + "@csstools/postcss-stepped-value-functions": "^4.0.9", + "@csstools/postcss-text-decoration-shorthand": "^4.0.2", + "@csstools/postcss-trigonometric-functions": "^4.0.9", "@csstools/postcss-unset-value": "^4.0.0", - "autoprefixer": "^10.4.19", - "browserslist": "^4.23.1", + "autoprefixer": "^10.4.21", + "browserslist": "^4.25.0", "css-blank-pseudo": "^7.0.1", - "css-has-pseudo": "^7.0.1", + "css-has-pseudo": "^7.0.2", "css-prefers-color-scheme": "^10.0.0", - "cssdb": "^8.2.1", + "cssdb": "^8.3.0", "postcss-attribute-case-insensitive": "^7.0.1", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^7.0.6", + "postcss-color-functional-notation": "^7.0.10", "postcss-color-hex-alpha": "^10.0.0", "postcss-color-rebeccapurple": "^10.0.0", - "postcss-custom-media": "^11.0.5", - "postcss-custom-properties": "^14.0.4", - "postcss-custom-selectors": "^8.0.4", + "postcss-custom-media": "^11.0.6", + "postcss-custom-properties": "^14.0.6", + "postcss-custom-selectors": "^8.0.5", "postcss-dir-pseudo-class": "^9.0.1", - "postcss-double-position-gradients": "^6.0.0", + "postcss-double-position-gradients": "^6.0.2", "postcss-focus-visible": "^10.0.1", "postcss-focus-within": "^9.0.1", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^6.0.0", "postcss-image-set-function": "^7.0.0", - "postcss-lab-function": "^7.0.6", - "postcss-logical": "^8.0.0", + "postcss-lab-function": "^7.0.10", + "postcss-logical": "^8.1.0", "postcss-nesting": "^13.0.1", "postcss-opacity-percentage": "^3.0.0", "postcss-overflow-shorthand": "^6.0.0", @@ -18726,6 +19618,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -18737,9 +19630,10 @@ } }, "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -18752,6 +19646,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18766,6 +19661,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" @@ -18781,6 +19677,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -18795,6 +19692,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "license": "MIT", "peerDependencies": { "postcss": "^8.0.3" } @@ -18813,6 +19711,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -18824,9 +19723,10 @@ } }, "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -18839,6 +19739,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -18851,6 +19752,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", + "license": "MIT", "dependencies": { "sort-css-media-queries": "2.2.0" }, @@ -18865,6 +19767,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^3.2.0" @@ -18880,6 +19783,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -18893,12 +19797,14 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" }, "node_modules/postcss-zindex": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -18952,37 +19858,25 @@ "node": ">=10" } }, - "node_modules/postman-collection/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "node_modules/postman-collection/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postman-collection/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "node": ">=10" } }, - "node_modules/postman-collection/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/postman-collection/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" + "bin": { + "uuid": "dist/bin/uuid" } }, "node_modules/postman-url-encoder": { @@ -18998,16 +19892,17 @@ } }, "node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "license": "MIT", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", + "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", @@ -19022,6 +19917,15 @@ "node": ">=10" } }, + "node_modules/prebuild-install/node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/prebuild-install/node_modules/tar-fs": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz", @@ -19038,6 +19942,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -19053,6 +19958,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", "dependencies": { "lodash": "^4.17.20", "renderkid": "^3.0.0" @@ -19062,6 +19968,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "license": "MIT", "dependencies": { "parse-ms": "^2.1.0" }, @@ -19076,14 +19983,16 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/prism-react-renderer": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.0.tgz", - "integrity": "sha512-327BsVCD/unU4CNLZTWVHyUHKnsqcvj2qbPlQ8MiBE2eq2rgctjigPA1Gp9HLF83kZ20zNN6jgizHJeEsyFYOw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", + "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", + "license": "MIT", "dependencies": { "@types/prismjs": "^1.26.0", "clsx": "^2.0.0" @@ -19113,12 +20022,14 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -19131,6 +20042,7 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -19138,9 +20050,13 @@ } }, "node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -19149,12 +20065,14 @@ "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -19167,6 +20085,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -19174,12 +20093,14 @@ "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" }, "node_modules/pump": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -19198,6 +20119,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", + "license": "MIT", "dependencies": { "escape-goat": "^4.0.0" }, @@ -19209,11 +20131,12 @@ } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -19222,13 +20145,21 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dependencies": { - "inherits": "~2.0.3" - } + "node_modules/quansync": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", + "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -19247,17 +20178,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" + ], + "license": "MIT" }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -19269,6 +20197,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -19277,6 +20206,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -19285,6 +20215,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -19299,14 +20230,28 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -19321,6 +20266,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -19329,6 +20275,7 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -19336,128 +20283,11 @@ "node": ">=0.10.0" } }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -19470,6 +20300,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.1.2.tgz", "integrity": "sha512-GQDxZ5Jd+Aq/qUxbCm1UtzmL/s++V7zKgE8yMktJiCQXCCFZnMZh9ng+6/Ne6PjNSXH0L9CjeOEREfRnq6Duag==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5" }, @@ -19477,20 +20308,18 @@ "react": ">=16.13.1" } }, - "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" - }, "node_modules/react-fast-compare": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" }, "node_modules/react-helmet-async": { + "name": "@slorber/react-helmet-async", "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "resolved": "https://registry.npmjs.org/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.12.5", "invariant": "^2.2.4", @@ -19499,8 +20328,8 @@ "shallowequal": "^1.1.0" }, "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + "react": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/react-hook-form": { @@ -19522,17 +20351,19 @@ "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, "node_modules/react-json-view-lite": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.5.0.tgz", - "integrity": "sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-2.4.1.tgz", + "integrity": "sha512-fwFYknRIBxjbFm0kBDrzgBy1xa5tDg2LyXXBepC5f1b+MY3BUClMCsvanMPn089JbV1Eg3nZcrp0VCuH43aXnA==", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=18" }, "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + "react": "^18.0.0 || ^19.0.0" } }, "node_modules/react-lifecycles-compat": { @@ -19565,6 +20396,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "license": "MIT", "dependencies": { "@types/react": "*" }, @@ -19576,6 +20408,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.10.3" }, @@ -19594,11 +20427,13 @@ "license": "MIT" }, "node_modules/react-markdown": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", - "integrity": "sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.1.0.tgz", + "integrity": "sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "html-url-attributes": "^3.0.0", @@ -19669,6 +20504,7 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -19688,6 +20524,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2" }, @@ -19700,6 +20537,7 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -19713,29 +20551,11 @@ "react": ">=15" } }, - "node_modules/react-waypoint": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/react-waypoint/-/react-waypoint-10.3.0.tgz", - "integrity": "sha512-iF1y2c1BsoXuEGz08NoahaLFIGI9gTUAAOKip96HUmylRT6DUtpgoBPjk/Y8dfcFVmfVDvUzWjNXpZyKTOV0SQ==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "consolidated-events": "^1.1.0 || ^2.0.0", - "prop-types": "^15.0.0", - "react-is": "^17.0.1 || ^18.0.0" - }, - "peerDependencies": { - "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-waypoint/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -19749,6 +20569,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -19756,11 +20577,6 @@ "node": ">=8.10.0" } }, - "node_modules/reading-time": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", - "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" - }, "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -19772,35 +20588,68 @@ "node": ">= 0.10" } }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", "dependencies": { - "minimatch": "^3.0.5" + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" }, - "engines": { - "node": ">=6.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/recursive-readdir/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/recma-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", + "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/recursive-readdir/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" }, - "engines": { - "node": "*" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/redux": { @@ -19826,7 +20675,6 @@ "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==", "license": "BSD-3-Clause", - "peer": true, "funding": { "url": "https://github.com/Mermade/oas-kit?sponsor=1" } @@ -19834,12 +20682,14 @@ "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -19847,28 +20697,16 @@ "node": ">=4" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regexpu-core": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", - "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "license": "MIT", "dependencies": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.2.0", "regjsgen": "^0.8.0", - "regjsparser": "^0.11.0", + "regjsparser": "^0.12.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -19877,9 +20715,10 @@ } }, "node_modules/registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", + "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", + "license": "MIT", "dependencies": { "@pnpm/npm-conf": "^2.1.0" }, @@ -19891,6 +20730,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "license": "MIT", "dependencies": { "rc": "1.2.8" }, @@ -19904,12 +20744,14 @@ "node_modules/regjsgen": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==" + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.2.tgz", - "integrity": "sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "license": "BSD-2-Clause", "dependencies": { "jsesc": "~3.0.2" }, @@ -19917,10 +20759,23 @@ "regjsparser": "bin/parser" } }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/rehype-parse": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz", "integrity": "sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==", + "license": "MIT", "dependencies": { "hast-util-from-parse5": "^6.0.0", "parse5": "^6.0.0" @@ -19930,162 +20785,36 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-parse/node_modules/@types/hast": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/rehype-parse/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" - }, - "node_modules/rehype-parse/node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype-parse/node_modules/hast-util-from-parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", - "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", - "dependencies": { - "@types/parse5": "^5.0.0", - "hastscript": "^6.0.0", - "property-information": "^5.0.0", - "vfile": "^4.0.0", - "vfile-location": "^3.2.0", - "web-namespaces": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-parse/node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-parse/node_modules/hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/rehype-parse/node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/rehype-parse/node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "dependencies": { - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype-parse/node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype-parse/node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-parse/node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-parse/node_modules/vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "license": "MIT" }, - "node_modules/rehype-parse/node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-parse/node_modules/web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/rehype-raw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", "dependencies": { + "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", - "hast-util-raw": "^9.0.0", - "vfile": "^6.0.0" + "hast-util-to-estree": "^3.0.0" }, "funding": { "type": "opencollective", @@ -20096,14 +20825,16 @@ "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/remark-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz", - "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.1.tgz", + "integrity": "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-directive": "^3.0.0", @@ -20119,6 +20850,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.2", "emoticon": "^4.0.1", @@ -20134,6 +20866,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-frontmatter": "^2.0.0", @@ -20146,9 +20879,10 @@ } }, "node_modules/remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", @@ -20163,9 +20897,10 @@ } }, "node_modules/remark-mdx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", - "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", + "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", + "license": "MIT", "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" @@ -20179,6 +20914,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -20191,9 +20927,10 @@ } }, "node_modules/remark-rehype": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", - "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -20210,6 +20947,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", @@ -20224,6 +20962,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", @@ -20236,6 +20975,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", @@ -20251,6 +20991,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -20264,6 +21005,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -20278,6 +21020,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -20291,6 +21034,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -20306,6 +21050,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", @@ -20317,6 +21062,7 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "license": "MIT", "engines": { "node": ">=0.10" } @@ -20326,7 +21072,6 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -20335,6 +21080,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -20350,7 +21096,8 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" }, "node_modules/reselect": { "version": "4.1.8", @@ -20359,17 +21106,21 @@ "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -20377,12 +21128,14 @@ "node_modules/resolve-alpn": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", "engines": { "node": ">=4" } @@ -20390,12 +21143,14 @@ "node_modules/resolve-pathname": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "license": "MIT" }, "node_modules/responselike": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", "dependencies": { "lowercase-keys": "^3.0.0" }, @@ -20410,28 +21165,31 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "license": "ISC", "dependencies": { - "glob": "^7.1.3" + "glob": "^10.3.7" }, "bin": { - "rimraf": "bin.js" + "rimraf": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -20455,15 +21213,11 @@ "points-on-path": "^0.2.1" } }, - "node_modules/rtl-detect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz", - "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==" - }, "node_modules/rtlcss": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0", @@ -20495,6 +21249,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -20534,12 +21289,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/sass": { "version": "1.89.1", @@ -20632,20 +21389,29 @@ "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } }, + "node_modules/schema-dts": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-1.1.5.tgz", + "integrity": "sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==", + "license": "Apache-2.0" + }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -20653,7 +21419,7 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", @@ -20664,12 +21430,14 @@ "version": "2.17.3", "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "license": "MIT", "peer": true }, "node_modules/section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "kind-of": "^6.0.0" @@ -20681,12 +21449,14 @@ "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" }, "node_modules/selfsigned": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" @@ -20696,9 +21466,9 @@ } }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -20711,6 +21481,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -20725,6 +21496,7 @@ "version": "0.19.0", "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -20748,6 +21520,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -20755,12 +21528,14 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/send/node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -20769,6 +21544,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -20777,6 +21553,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -20785,6 +21562,7 @@ "version": "6.1.6", "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", + "license": "MIT", "dependencies": { "bytes": "3.0.0", "content-disposition": "0.5.2", @@ -20799,15 +21577,38 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "license": "MIT", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-handler/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -20818,12 +21619,14 @@ "node_modules/serve-handler/node_modules/path-to-regexp": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", - "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==" + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", + "license": "MIT" }, "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "license": "MIT", "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -20841,6 +21644,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -20849,6 +21653,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -20857,6 +21662,7 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -20867,25 +21673,23 @@ "node": ">= 0.6" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "license": "ISC" }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -20894,6 +21698,7 @@ "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", @@ -20908,6 +21713,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -20923,12 +21729,14 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -20939,13 +21747,15 @@ "node_modules/shallowequal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" }, "node_modules/sharp": { "version": "0.32.6", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.2", @@ -20963,10 +21773,26 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/sharp/node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/sharp/node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "license": "MIT" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -20978,14 +21804,19 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -20994,6 +21825,7 @@ "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "license": "BSD-3-Clause", "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -21006,12 +21838,54 @@ "node": ">=4" } }, + "node_modules/shelljs/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/shelljs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/shelljs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/should": { "version": "13.2.3", "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", "license": "MIT", - "peer": true, "dependencies": { "should-equal": "^2.0.0", "should-format": "^3.0.3", @@ -21025,7 +21899,6 @@ "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", "license": "MIT", - "peer": true, "dependencies": { "should-type": "^1.4.0" } @@ -21035,7 +21908,6 @@ "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", "license": "MIT", - "peer": true, "dependencies": { "should-type": "^1.3.0", "should-type-adaptors": "^1.0.1" @@ -21045,15 +21917,13 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/should-type-adaptors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", "license": "MIT", - "peer": true, "dependencies": { "should-type": "^1.3.0", "should-util": "^1.0.0" @@ -21063,18 +21933,72 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -21086,7 +22010,8 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, "node_modules/simple-concat": { "version": "1.0.1", @@ -21105,7 +22030,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/simple-get": { "version": "4.0.1", @@ -21125,6 +22051,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", @@ -21135,6 +22062,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" } @@ -21142,12 +22070,14 @@ "node_modules/simple-swizzle/node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" }, "node_modules/sirv": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -21160,12 +22090,14 @@ "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" }, "node_modules/sitemap": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", + "license": "MIT", "dependencies": { "@types/node": "^17.0.5", "@types/sax": "^1.2.1", @@ -21183,12 +22115,14 @@ "node_modules/sitemap/node_modules/@types/node": { "version": "17.0.45", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "license": "MIT" }, "node_modules/skin-tone": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "license": "MIT", "dependencies": { "unicode-emoji-modifier-base": "^1.0.0" }, @@ -21200,6 +22134,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -21209,7 +22144,6 @@ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", "license": "MIT", - "peer": true, "engines": { "node": ">=8.0.0" } @@ -21218,6 +22152,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -21227,16 +22162,27 @@ "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/sort-css-media-queries": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", + "license": "MIT", "engines": { "node": ">= 6.3.0" } @@ -21245,14 +22191,16 @@ "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -21261,6 +22209,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -21270,14 +22219,16 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -21287,6 +22238,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -21302,6 +22254,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -21314,12 +22267,14 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" }, "node_modules/srcset": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -21331,22 +22286,24 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/std-env": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==" + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", + "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", + "license": "MIT" }, "node_modules/streamx": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.0.tgz", - "integrity": "sha512-Qz6MsDZXJ6ur9u+b+4xCG18TluU7PGlRfXVAAjNiGsFrBUt/ioyLkxbFaKJygoPs+/kW4VyBj0bSj89Qu0IGyg==", + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz", + "integrity": "sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==", + "license": "MIT", "dependencies": { "fast-fifo": "^1.3.2", - "queue-tick": "^1.0.1", "text-decoder": "^1.1.0" }, "optionalDependencies": { @@ -21357,6 +22314,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } @@ -21365,6 +22323,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -21382,6 +22341,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -21394,12 +22354,14 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -21411,6 +22373,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -21425,6 +22388,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" @@ -21438,6 +22402,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", @@ -21451,6 +22416,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -21463,6 +22429,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -21474,6 +22441,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -21482,6 +22450,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -21490,6 +22459,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -21497,18 +22467,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-to-js": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", + "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.8" + } + }, "node_modules/style-to-object": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", - "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", + "license": "MIT", "dependencies": { - "inline-style-parser": "0.1.1" + "inline-style-parser": "0.2.4" } }, "node_modules/stylehacks": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-selector-parser": "^6.0.16" @@ -21521,9 +22502,10 @@ } }, "node_modules/stylis": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", - "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" }, "node_modules/sucrase": { "version": "3.35.0", @@ -21539,77 +22521,28 @@ "pirates": "^4.0.1", "ts-interface-checker": "^0.1.9" }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/sucrase/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" }, "engines": { "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" } }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -21621,6 +22554,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -21631,12 +22565,14 @@ "node_modules/svg-parser": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" }, "node_modules/svgo": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", - "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "license": "MIT", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", @@ -21661,6 +22597,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -21670,7 +22607,6 @@ "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz", "integrity": "sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==", "license": "BSD-3-Clause", - "peer": true, "dependencies": { "call-me-maybe": "^1.0.1", "node-fetch": "^2.6.1", @@ -21694,9 +22630,10 @@ } }, "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -21719,6 +22656,7 @@ "version": "3.1.7", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", @@ -21726,12 +22664,13 @@ } }, "node_modules/terser": { - "version": "5.31.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz", - "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==", + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.42.0.tgz", + "integrity": "sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==", + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.14.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -21743,15 +22682,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -21775,33 +22715,11 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -21811,32 +22729,11 @@ "node": ">= 10.13.0" } }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -21850,17 +22747,17 @@ "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/text-decoder": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", - "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } }, "node_modules/thenify": { "version": "3.3.1", @@ -21886,28 +22783,41 @@ "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" }, "node_modules/tiny-invariant": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" }, "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", + "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==", "license": "MIT" }, + "node_modules/tinypool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.0.tgz", + "integrity": "sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==", + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -21919,6 +22829,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-6.1.0.tgz", "integrity": "sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==", + "license": "MIT", "dependencies": { "is-buffer": "^2.0.0", "vfile": "^4.0.0" @@ -21931,12 +22842,14 @@ "node_modules/to-vfile/node_modules/@types/unist": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" }, "node_modules/to-vfile/node_modules/unist-util-stringify-position": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.2" }, @@ -21949,6 +22862,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -21964,6 +22878,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^2.0.0" @@ -21973,10 +22888,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/toad-cache": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz", + "integrity": "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } @@ -21985,6 +22910,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -21993,13 +22919,13 @@ "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -22009,6 +22935,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -22018,6 +22945,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "license": "MIT", "engines": { "node": ">=6.10" } @@ -22029,14 +22957,16 @@ "license": "Apache-2.0" }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -22048,6 +22978,7 @@ "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -22059,6 +22990,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -22067,37 +22999,21 @@ "node": ">= 0.6" } }, - "node_modules/type-is/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "devOptional": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -22107,20 +23023,22 @@ } }, "node_modules/ufo": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", - "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", + "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", "license": "MIT" }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -22129,6 +23047,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "license": "MIT", "engines": { "node": ">=4" } @@ -22137,6 +23056,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -22149,6 +23069,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -22157,14 +23078,16 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", @@ -22183,6 +23106,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "license": "MIT", "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -22197,6 +23121,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz", "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==", + "license": "MIT", "dependencies": { "unist-util-is": "^4.0.0" }, @@ -22205,15 +23130,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-find-after/node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unist-util-generated": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", @@ -22225,12 +23141,10 @@ } }, "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dependencies": { - "@types/unist": "^3.0.0" - }, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -22240,6 +23154,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -22252,6 +23167,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -22260,23 +23176,11 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-remove-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", - "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unist-util-stringify-position": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -22289,6 +23193,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", @@ -22303,6 +23208,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" @@ -22312,20 +23218,49 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-visit-parents/node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit/node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/universal-github-app-jwt": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-2.2.0.tgz", - "integrity": "sha512-G5o6f95b5BggDGuUfKDApKaCgNYy2x7OdHY0zSMF081O0EJobw+1130VONhrA7ezGSV2FNOGyM+KQpQZAr9bIQ==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-2.2.2.tgz", + "integrity": "sha512-dcmbeSrOdTnsjGjUfAlqNDJrhxXizjAz94ija9Qw8YkZ1uu0d+GoZzyH+Jb9tIIqvGsadUfwg+22k5aDqqwzbw==", + "license": "MIT" }, "node_modules/universal-user-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz", - "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==" + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz", + "integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==", + "license": "ISC" }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -22334,14 +23269,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "funding": [ { "type": "opencollective", @@ -22356,9 +23292,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -22371,6 +23308,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "license": "BSD-2-Clause", "dependencies": { "boxen": "^7.0.0", "chalk": "^5.0.1", @@ -22398,6 +23336,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^7.0.1", @@ -22419,6 +23358,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -22427,9 +23367,10 @@ } }, "node_modules/update-notifier/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -22441,6 +23382,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -22449,8 +23391,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/uri-js-replace/-/uri-js-replace-1.0.1.tgz", "integrity": "sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/url": { "version": "0.11.4", @@ -22469,6 +23410,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "mime-types": "^2.1.27", @@ -22495,6 +23437,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -22510,6 +23453,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -22517,31 +23461,14 @@ "node_modules/url-loader/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/url-loader/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/url-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -22582,23 +23509,20 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" }, "node_modules/utility-types": { "version": "3.11.0", "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "license": "MIT", "engines": { "node": ">= 4" } @@ -22607,16 +23531,22 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/uvu": { @@ -22650,20 +23580,17 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/validate.io-function": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz", - "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==", - "peer": true + "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==" }, "node_modules/validate.io-integer": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==", - "peer": true, "dependencies": { "validate.io-number": "^1.0.3" } @@ -22672,7 +23599,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz", "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==", - "peer": true, "dependencies": { "validate.io-array": "^1.0.3", "validate.io-integer": "^1.0.4" @@ -22681,29 +23607,30 @@ "node_modules/validate.io-number": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", - "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==", - "peer": true + "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==" }, "node_modules/value-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "license": "MIT" }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" }, "funding": { @@ -22712,13 +23639,10 @@ } }, "node_modules/vfile-location": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", - "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile": "^6.0.0" - }, + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", + "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -22728,6 +23652,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" @@ -22796,9 +23721,10 @@ } }, "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -22811,14 +23737,16 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", "dependencies": { "minimalistic-assert": "^1.0.0" } }, "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -22828,21 +23756,22 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause", - "peer": true + "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.95.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", - "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", - "dependencies": { - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "version": "5.99.9", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.9.tgz", + "integrity": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", @@ -22854,9 +23783,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", + "schema-utils": "^4.3.2", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", + "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, @@ -22880,6 +23809,7 @@ "version": "4.10.2", "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", @@ -22905,6 +23835,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -22913,6 +23844,7 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "license": "MIT", "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.3", @@ -22931,29 +23863,17 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/webpack-dev-middleware/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } + "node_modules/webpack-dev-middleware/node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" }, "node_modules/webpack-dev-middleware/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -22962,6 +23882,7 @@ "version": "4.15.2", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "license": "MIT", "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", @@ -23016,10 +23937,76 @@ } } }, + "node_modules/webpack-dev-server/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/webpack-dev-server/node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/webpack-dev-server/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -23037,94 +24024,33 @@ } }, "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", - "wildcard": "^2.0.0" + "wildcard": "^2.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.2.tgz", + "integrity": "sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA==", + "license": "MIT", "engines": { "node": ">=10.13.0" } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/webpack/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/webpackbar": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz", "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==", + "license": "MIT", "dependencies": { "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", @@ -23145,12 +24071,14 @@ "node_modules/webpackbar/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/webpackbar/node_modules/markdown-table": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "license": "MIT", "dependencies": { "repeat-string": "^1.0.0" }, @@ -23163,6 +24091,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -23176,6 +24105,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -23192,6 +24122,7 @@ "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -23205,6 +24136,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", "engines": { "node": ">=0.8.0" } @@ -23214,7 +24146,6 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "license": "MIT", - "peer": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -23224,6 +24155,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -23238,6 +24170,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } @@ -23245,12 +24178,14 @@ "node_modules/wide-align/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/wide-align/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -23264,6 +24199,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "license": "MIT", "dependencies": { "string-width": "^5.0.1" }, @@ -23277,12 +24213,14 @@ "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "license": "MIT" }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -23300,6 +24238,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -23315,12 +24254,14 @@ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -23331,9 +24272,10 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -23345,6 +24287,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -23356,6 +24299,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -23369,12 +24313,14 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -23386,6 +24332,7 @@ "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -23406,6 +24353,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -23429,6 +24377,7 @@ "version": "1.6.11", "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "license": "MIT", "dependencies": { "sax": "^1.2.4" }, @@ -23449,6 +24398,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", "engines": { "node": ">=0.4" } @@ -23458,7 +24408,6 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "license": "ISC", - "peer": true, "engines": { "node": ">=10" } @@ -23466,12 +24415,14 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" }, "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", "engines": { "node": ">= 6" } @@ -23480,15 +24431,13 @@ "version": "0.0.43", "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "license": "MIT", - "peer": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -23507,7 +24456,6 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "license": "ISC", - "peer": true, "engines": { "node": ">=12" } @@ -23516,15 +24464,13 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "license": "MIT", - "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -23535,9 +24481,10 @@ } }, "node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -23546,9 +24493,10 @@ } }, "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" diff --git a/package.json b/package.json index 26d8cc4..df1512a 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "serve": "docusaurus serve", "write-translations": "docusaurus write-translations", "write-heading-ids": "docusaurus write-heading-ids", - "gen-api-docs-all": "docusaurus gen-api-docs all", + "gen-api-docs-all": "docusaurus gen-api-docs all --all-versions", "gen-api-docs-clean": "docusaurus clean-api-docs all" }, "dependencies": { @@ -27,6 +27,7 @@ "docusaurus-lunr-search": "^3.6.0", "docusaurus-plugin-remote-content": "^4.0.0", "docusaurus-theme-github-codeblock": "^2.0.2", + "docusaurus-plugin-openapi-docs": "^4.4.0", "docusaurus-theme-openapi-docs": "^4.4.0", "gray-matter": "^4.0.3", "minimatch": "^10.0.1", From 648fb1628b8a1abd9c4735798eb6ede3116aba59 Mon Sep 17 00:00:00 2001 From: b-long Date: Mon, 9 Jun 2025 13:56:51 -0400 Subject: [PATCH 16/37] Add a preprocessing to fill OpenTDF openapi gaps --- docusaurus.config.ts | 53 +++------------ preprocessing.ts | 159 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+), 43 deletions(-) create mode 100644 preprocessing.ts diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 3e684a4..d160a8a 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -10,19 +10,18 @@ import type * as Preset from "@docusaurus/preset-classic"; import matter from "gray-matter"; import listRemote from "./docusaurus-lib-list-remote"; import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs"; +import { openApiSpecs, preprocessOpenApiSpecs } from "./preprocessing" // --- OpenAPI Config Helper --- // Global toggle to enable or disable sidebarOptions for all OpenAPI configurations -const APPLY_OPENAPI_SIDEBAR_OPTIONS_GLOBALLY = true; +const APPLY_OPENAPI_SIDEBAR_OPTIONS_GLOBALLY = false; const DEFAULT_OPENAPI_OUTPUT_DIR = "docs/openapi/"; -const DEFAULT_OPENAPI_SIDEBAR_OPTIONS = { groupPathsBy: "tag" }; +const DEFAULT_OPENAPI_SIDEBAR_OPTIONS = { + // groupPathsBy: "tagGroup" + groupPathsBy: 'tag', + categoryLinkSource: 'tag' +}; -interface ApiSpecDefinition { - id: string; // Unique key for the API spec, e.g., "authorization" - specPath: string; - outputDir?: string; // Optional: overrides DEFAULT_OPENAPI_OUTPUT_DIR - sidebarOptions?: { groupPathsBy: string }; // Optional: overrides DEFAULT_OPENAPI_SIDEBAR_OPTIONS -} function createOpenApiConfig( specPath: string, @@ -40,45 +39,13 @@ function createOpenApiConfig( return apiConfig; } -// Define all your OpenAPI specifications here -const openApiSpecs: ApiSpecDefinition[] = [ - { - id: "authorization", - specPath: "./specs/authorization/authorization.swagger.json", - // outputDir: "docs/openapi/auth", // Example of overriding outputDir - // sidebarOptions: { groupPathsBy: "summary" }, // Example of overriding sidebarOptions - }, - { - id: "authorization_v2", - specPath: "./specs/authorization/v2/authorization.swagger.json", - }, - { - id: "common", - specPath: "./specs/common/common.swagger.json", - }, - { - id: "entity", - specPath: "./specs/entity/entity.swagger.json", - }, - { - id: "entityresolution", - specPath: "./specs/entityresolution/entity_resolution.swagger.json", - }, - { - id: "kas", - specPath: "./specs/kas/kas.swagger.json", - }, - { - id: "wellknownconfiguration", - specPath: "./specs/wellknownconfiguration/wellknown_configuration.swagger.json", - }, - // Add more entries here for other OpenAPI specs -]; +// Run the preprocessor before generating the config +preprocessOpenApiSpecs(); // Dynamically build the OpenAPI plugin configuration const openApiDocsConfig = openApiSpecs.reduce((acc, spec) => { acc[spec.id] = createOpenApiConfig( - spec.specPath, + spec.specPathModified || spec.specPath, // Use the modified path if available spec.outputDir || DEFAULT_OPENAPI_OUTPUT_DIR, spec.sidebarOptions || DEFAULT_OPENAPI_SIDEBAR_OPTIONS ); diff --git a/preprocessing.ts b/preprocessing.ts new file mode 100644 index 0000000..b4f329c --- /dev/null +++ b/preprocessing.ts @@ -0,0 +1,159 @@ +import * as fs from 'fs'; +import * as path from 'path'; +import * as yaml from 'js-yaml'; + + +interface ApiSpecDefinition { + id: string; // Unique key for the API spec, e.g., "authorization" + specPath: string; + specPathModified?: string; // New field for the preprocessed spec location + outputDir?: string; // Optional: overrides DEFAULT_OPENAPI_OUTPUT_DIR + sidebarOptions?: { groupPathsBy: string }; // Optional: overrides DEFAULT_OPENAPI_SIDEBAR_OPTIONS +} + +// Define all your OpenAPI specifications here +const openApiSpecs: ApiSpecDefinition[] = [ + { + id: "authorization", + specPath: "./specs/authorization/authorization.openapi.yaml", + // specPathModified is auto-generated if not specified + }, + { + id: "authorization_v2", + specPath: "./specs/authorization/v2/authorization.openapi.yaml", + // Example of custom modified path: + specPathModified: "./specs-processed/authorization/v2/authorization.openapi.yaml", + }, + { + id: "common", + specPath: "./specs/common/common.openapi.yaml", + }, + { + id: "entity", + specPath: "./specs/entity/entity.openapi.yaml", + }, + { + id: "entityresolution", + specPath: "./specs/entityresolution/entity_resolution.openapi.yaml", + }, + { + id: "kas", + specPath: "./specs/kas/kas.openapi.yaml", + }, + { + id: "wellknownconfiguration", + specPath: "./specs/wellknownconfiguration/wellknown_configuration.openapi.yaml", + }, + // Add more entries here for other OpenAPI specs +]; + + +/** + * Preprocesses OpenAPI YAML files before they're consumed by docusaurus-plugin-openapi-docs + */ +async function preprocessOpenApiSpecs() { + console.log('🔄 Preprocessing OpenAPI specification files...'); + + // Process each spec + for (const spec of openApiSpecs) { + const sourcePath = path.resolve(__dirname, spec.specPath); + + // Generate modified path if not specified + if (!spec.specPathModified) { + const parsedPath = path.parse(spec.specPath); + // Store processed files in a 'specs-processed' directory by default + spec.specPathModified = path.join( + parsedPath.dir.replace(/^\.\/specs/, './specs-processed'), + parsedPath.base + ); + } + + const targetPath = path.resolve(__dirname, spec.specPathModified); + + console.log(`Processing: ${sourcePath} → ${targetPath}`); + + try { + // Ensure target directory exists + fs.mkdirSync(path.dirname(targetPath), { recursive: true }); + + // Read the YAML file + const fileContents = fs.readFileSync(sourcePath, 'utf8'); + + // Parse YAML to object + const apiSpec = yaml.load(fileContents); + + // Apply your preprocessing modifications here + if (apiSpec.info) { + apiSpec.info.description = apiSpec.info.description || ''; + apiSpec.info.description = `[Preprocessed on ${new Date().toISOString()}] ${apiSpec.info.description}`; + } + + // First check if apiSpec.info exists, else initialize it + apiSpec.info ??= {}; + + // Check for 'info.version' and set a default if missing + if (!apiSpec.info?.version) { + apiSpec.info = apiSpec.info ?? {}; + apiSpec.info.version = 'v1'; // Default version + } + + // First check if apiSpec.servers exists, else initialize it + apiSpec.servers ??= []; + + // Check for 'servers.url' and set a default if missing + if (apiSpec.servers.length === 0 || !apiSpec.servers.some(server => server.url)) { + apiSpec.servers.push({ + url: 'https://example.com', // Default server URL + description: 'Example OpenTDF platform URL' + }); + } + + + // Add standard headers to all operations + // if (apiSpec.paths) { + // Object.keys(apiSpec.paths).forEach(path => { + // const pathObj = apiSpec.paths[path]; + // Object.keys(pathObj).forEach(method => { + // if (typeof pathObj[method] === 'object') { + // // Example preprocessor logic: add standard parameters to all operations + // if (!pathObj[method].parameters) { + // pathObj[method].parameters = []; + // } + + // // Add a trace ID parameter to all operations as an example + // const hasTraceId = pathObj[method].parameters.some( + // p => p.name === 'X-Trace-Id' + // ); + + // if (!hasTraceId) { + // pathObj[method].parameters.push({ + // name: 'X-Trace-Id', + // in: 'header', + // schema: { type: 'string' }, + // required: false, + // description: 'Trace ID for request tracking (added by preprocessor)' + // }); + // } + // } + // }); + // }); + // } + + // Write the modified YAML to the target file + fs.writeFileSync(targetPath, yaml.dump(apiSpec), 'utf8'); + console.log(`✅ Updated: ${targetPath}`); + } catch (error) { + console.error(`❌ Error processing ${sourcePath}:`, error); + } + } + + console.log('✨ OpenAPI preprocessing complete'); +} + +// Execute the preprocessing function +preprocessOpenApiSpecs().catch(error => { + console.error('Failed to preprocess OpenAPI specs:', error); + process.exit(1); +}); + +export { openApiSpecs, preprocessOpenApiSpecs, ApiSpecDefinition }; \ No newline at end of file From 91e02cc0c2b8852400158387d12577e27348a95b Mon Sep 17 00:00:00 2001 From: b-long Date: Tue, 10 Jun 2025 11:06:44 -0400 Subject: [PATCH 17/37] Add 'launch.json' file for debugging build pipeline --- .vscode/launch.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..8ce0acf --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Debug gen-api-docs-all", + "runtimeExecutable": "npm", + "runtimeArgs": ["run", "gen-api-docs-all"], + "cwd": "${workspaceFolder}", + "skipFiles": [ + "/**" + ], + "outFiles": [ + "${workspaceFolder}/**/*.js" + ], + "console": "integratedTerminal" + } + ] +} \ No newline at end of file From 43329486955940e7c0c1a01ae7aba096797cfd04 Mon Sep 17 00:00:00 2001 From: b-long Date: Tue, 10 Jun 2025 11:37:31 -0400 Subject: [PATCH 18/37] Remove commented code --- preprocessing.ts | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/preprocessing.ts b/preprocessing.ts index b4f329c..59c58a8 100644 --- a/preprocessing.ts +++ b/preprocessing.ts @@ -108,37 +108,6 @@ async function preprocessOpenApiSpecs() { }); } - - // Add standard headers to all operations - // if (apiSpec.paths) { - // Object.keys(apiSpec.paths).forEach(path => { - // const pathObj = apiSpec.paths[path]; - // Object.keys(pathObj).forEach(method => { - // if (typeof pathObj[method] === 'object') { - // // Example preprocessor logic: add standard parameters to all operations - // if (!pathObj[method].parameters) { - // pathObj[method].parameters = []; - // } - - // // Add a trace ID parameter to all operations as an example - // const hasTraceId = pathObj[method].parameters.some( - // p => p.name === 'X-Trace-Id' - // ); - - // if (!hasTraceId) { - // pathObj[method].parameters.push({ - // name: 'X-Trace-Id', - // in: 'header', - // schema: { type: 'string' }, - // required: false, - // description: 'Trace ID for request tracking (added by preprocessor)' - // }); - // } - // } - // }); - // }); - // } - // Write the modified YAML to the target file fs.writeFileSync(targetPath, yaml.dump(apiSpec), 'utf8'); console.log(`✅ Updated: ${targetPath}`); From 0b7e7016ecbc004ea6a167d2af2ef6828d661348 Mon Sep 17 00:00:00 2001 From: b-long Date: Tue, 10 Jun 2025 11:39:26 -0400 Subject: [PATCH 19/37] Add openapi.json --- openapi.json | 672 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 672 insertions(+) create mode 100644 openapi.json diff --git a/openapi.json b/openapi.json new file mode 100644 index 0000000..e123bbd --- /dev/null +++ b/openapi.json @@ -0,0 +1,672 @@ +{ + "openapi" : "3.1.0", + "info" : { + "title" : "authorization", + "version" : "v1" + }, + "servers" : [ { + "url" : "https://example.com" + } ], + "tags" : [ { + "name" : "authorization.AuthorizationService" + } ], + "paths" : { + "/v1/authorization" : { + "post" : { + "tags" : [ "authorization.AuthorizationService" ], + "summary" : "GetDecisions", + "operationId" : "authorization.AuthorizationService.GetDecisions", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/authorization.GetDecisionsRequest" + } + } + }, + "required" : true + }, + "responses" : { + "default" : { + "description" : "Error", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/connect.error" + } + } + } + }, + "200" : { + "description" : "Success", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/authorization.GetDecisionsResponse" + } + } + } + } + } + } + }, + "/v1/token/authorization" : { + "post" : { + "tags" : [ "authorization.AuthorizationService" ], + "summary" : "GetDecisionsByToken", + "operationId" : "authorization.AuthorizationService.GetDecisionsByToken", + "parameters" : [ { + "name" : "decisionRequests.actions.id", + "in" : "query", + "description" : "Generated uuid in database", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "title" : "id", + "description" : "Generated uuid in database" + } + }, { + "name" : "decisionRequests.actions.standard", + "in" : "query", + "description" : "Deprecated", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "$ref" : "#/components/schemas/policy.Action.StandardAction" + } + }, { + "name" : "decisionRequests.actions.custom", + "in" : "query", + "description" : "Deprecated", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "title" : "custom", + "description" : "Deprecated" + } + }, { + "name" : "decisionRequests.actions.name", + "in" : "query", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "title" : "name" + } + }, { + "name" : "decisionRequests.actions.metadata.createdAt.seconds", + "in" : "query", + "description" : "Represents seconds of UTC time since Unix epoch\n 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n 9999-12-31T23:59:59Z inclusive.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "title" : "seconds", + "description" : "Represents seconds of UTC time since Unix epoch\n 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n 9999-12-31T23:59:59Z inclusive.", + "format" : "int64" + } + }, { + "name" : "decisionRequests.actions.metadata.createdAt.nanos", + "in" : "query", + "description" : "Non-negative fractions of a second at nanosecond resolution. Negative\n second values with fractions must still have non-negative nanos values\n that count forward in time. Must be from 0 to 999,999,999\n inclusive.", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "title" : "nanos", + "description" : "Non-negative fractions of a second at nanosecond resolution. Negative\n second values with fractions must still have non-negative nanos values\n that count forward in time. Must be from 0 to 999,999,999\n inclusive.", + "format" : "int32" + } + }, { + "name" : "decisionRequests.actions.metadata.labels.key", + "in" : "query", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "title" : "key" + } + }, { + "name" : "decisionRequests.actions.metadata.labels.value", + "in" : "query", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "title" : "value" + } + }, { + "name" : "decisionRequests.tokens.id", + "in" : "query", + "description" : "ephemeral id for tracking between request and response", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "title" : "id", + "description" : "ephemeral id for tracking between request and response" + } + }, { + "name" : "decisionRequests.tokens.jwt", + "in" : "query", + "description" : "the token", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "title" : "jwt", + "description" : "the token" + } + }, { + "name" : "decisionRequests.resourceAttributes.resourceAttributesId", + "in" : "query", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "title" : "resource_attributes_id" + } + }, { + "name" : "decisionRequests.resourceAttributes.attributeValueFqns", + "in" : "query", + "required" : false, + "style" : "form", + "explode" : true, + "schema" : { + "title" : "attribute_value_fqns", + "items" : { } + } + } ], + "responses" : { + "default" : { + "description" : "Error", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/connect.error" + } + } + } + }, + "200" : { + "description" : "Success", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/authorization.GetDecisionsByTokenResponse" + } + } + } + } + } + } + }, + "/v1/entitlements" : { + "post" : { + "tags" : [ "authorization.AuthorizationService" ], + "summary" : "GetEntitlements", + "operationId" : "authorization.AuthorizationService.GetEntitlements", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/authorization.GetEntitlementsRequest" + } + } + }, + "required" : true + }, + "responses" : { + "default" : { + "description" : "Error", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/connect.error" + } + } + } + }, + "200" : { + "description" : "Success", + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/authorization.GetEntitlementsResponse" + } + } + } + } + } + } + } + }, + "components" : { + "schemas" : { + "authorization.DecisionResponse.Decision" : { + "title" : "Decision", + "enum" : [ "DECISION_UNSPECIFIED", "DECISION_DENY", "DECISION_PERMIT" ] + }, + "authorization.Entity.Category" : { + "title" : "Category", + "enum" : [ "CATEGORY_UNSPECIFIED", "CATEGORY_SUBJECT", "CATEGORY_ENVIRONMENT" ] + }, + "policy.Action.StandardAction" : { + "title" : "StandardAction", + "enum" : [ "STANDARD_ACTION_UNSPECIFIED", "STANDARD_ACTION_DECRYPT", "STANDARD_ACTION_TRANSMIT" ] + }, + "authorization.DecisionRequest" : { + "title" : "DecisionRequest", + "properties" : { + "actions" : { + "title" : "actions", + "items" : { + "$ref" : "#/components/schemas/policy.Action" + } + }, + "entityChains" : { + "title" : "entity_chains", + "items" : { + "$ref" : "#/components/schemas/authorization.EntityChain" + } + }, + "resourceAttributes" : { + "title" : "resource_attributes", + "items" : { + "$ref" : "#/components/schemas/authorization.ResourceAttribute" + } + } + }, + "additionalProperties" : false, + "description" : "Example Request Get Decisions to answer the question - Do Bob (represented by entity chain ec1)\nand Alice (represented by entity chain ec2) have TRANSMIT authorization for\n2 resources; resource1 (attr-set-1) defined by attributes foo:bar resource2 (attr-set-2) defined by attribute foo:bar, color:red ?\n\n{\n\"actions\": [\n{\n\"standard\": \"STANDARD_ACTION_TRANSMIT\"\n}\n],\n\"entityChains\": [\n{\n\"id\": \"ec1\",\n\"entities\": [\n{\n\"emailAddress\": \"bob@example.org\"\n}\n]\n},\n{\n\"id\": \"ec2\",\n\"entities\": [\n{\n\"userName\": \"alice@example.org\"\n}\n]\n}\n],\n\"resourceAttributes\": [\n{\n\"resourceAttributeId\": \"attr-set-1\",\n\"attributeFqns\": [\n\"https://www.example.org/attr/foo/value/value1\"\n]\n},\n{\n\"resourceAttributeId\": \"attr-set-2\",\n\"attributeFqns\": [\n\"https://example.net/attr/attr1/value/value1\",\n\"https://example.net/attr/attr1/value/value2\"\n]\n}\n]\n}" + }, + "authorization.DecisionResponse" : { + "title" : "DecisionResponse", + "properties" : { + "entityChainId" : { + "title" : "entity_chain_id", + "description" : "ephemeral entity chain id from the request" + }, + "resourceAttributesId" : { + "title" : "resource_attributes_id", + "description" : "ephemeral resource attributes id from the request" + }, + "action" : { + "$ref" : "#/components/schemas/policy.Action" + }, + "decision" : { + "$ref" : "#/components/schemas/authorization.DecisionResponse.Decision" + }, + "obligations" : { + "title" : "obligations", + "description" : "optional list of obligations represented in URI format", + "items" : { } + } + }, + "additionalProperties" : false, + "description" : "Example response for a Decision Request - Do Bob (represented by entity chain ec1)\nand Alice (represented by entity chain ec2) have TRANSMIT authorization for\n2 resources; resource1 (attr-set-1) defined by attributes foo:bar resource2 (attr-set-2) defined by attribute foo:bar, color:red ?\n\nResults:\n- bob has permitted authorization to transmit for a resource defined by attr-set-1 attributes and has a watermark obligation\n- bob has denied authorization to transmit a for a resource defined by attr-set-2 attributes\n- alice has permitted authorization to transmit for a resource defined by attr-set-1 attributes\n- alice has denied authorization to transmit a for a resource defined by attr-set-2 attributes\n\n{\n\"entityChainId\": \"ec1\",\n\"resourceAttributesId\": \"attr-set-1\",\n\"decision\": \"DECISION_PERMIT\",\n\"obligations\": [\n\"http://www.example.org/obligation/watermark\"\n]\n},\n{\n\"entityChainId\": \"ec1\",\n\"resourceAttributesId\": \"attr-set-2\",\n\"decision\": \"DECISION_PERMIT\"\n},\n{\n\"entityChainId\": \"ec2\",\n\"resourceAttributesId\": \"attr-set-1\",\n\"decision\": \"DECISION_PERMIT\"\n},\n{\n\"entityChainId\": \"ec2\",\n\"resourceAttributesId\": \"attr-set-2\",\n\"decision\": \"DECISION_DENY\"\n}" + }, + "authorization.Entity" : { + "title" : "Entity", + "properties" : { + "id" : { + "title" : "id", + "description" : "ephemeral id for tracking between request and response" + }, + "category" : { + "$ref" : "#/components/schemas/authorization.Entity.Category" + } + }, + "additionalProperties" : false, + "description" : "PE (Person Entity) or NPE (Non-Person Entity)", + "oneOf" : [ { + "title" : "claims", + "required" : [ "claims" ], + "properties" : { + "claims" : { + "$ref" : "#/components/schemas/google.protobuf.Any" + } + } + }, { + "title" : "client_id", + "required" : [ "clientId" ], + "properties" : { + "clientId" : { + "title" : "client_id" + } + } + }, { + "title" : "custom", + "required" : [ "custom" ], + "properties" : { + "custom" : { + "$ref" : "#/components/schemas/authorization.EntityCustom" + } + } + }, { + "title" : "email_address", + "required" : [ "emailAddress" ], + "properties" : { + "emailAddress" : { + "title" : "email_address", + "description" : "one of the entity options must be set" + } + } + }, { + "title" : "remote_claims_url", + "required" : [ "remoteClaimsUrl" ], + "properties" : { + "remoteClaimsUrl" : { + "title" : "remote_claims_url" + } + } + }, { + "title" : "user_name", + "required" : [ "userName" ], + "properties" : { + "userName" : { + "title" : "user_name" + } + } + }, { + "title" : "uuid", + "required" : [ "uuid" ], + "properties" : { + "uuid" : { + "title" : "uuid" + } + } + } ] + }, + "authorization.EntityChain" : { + "title" : "EntityChain", + "properties" : { + "id" : { + "title" : "id", + "description" : "ephemeral id for tracking between request and response" + }, + "entities" : { + "title" : "entities", + "items" : { + "$ref" : "#/components/schemas/authorization.Entity" + } + } + }, + "additionalProperties" : false, + "description" : "A set of related PE and NPE" + }, + "authorization.EntityCustom" : { + "title" : "EntityCustom", + "properties" : { + "extension" : { + "$ref" : "#/components/schemas/google.protobuf.Any" + } + }, + "additionalProperties" : false, + "description" : "Entity type for custom entities beyond the standard types" + }, + "authorization.EntityEntitlements" : { + "title" : "EntityEntitlements", + "properties" : { + "entityId" : { + "title" : "entity_id" + }, + "attributeValueFqns" : { + "title" : "attribute_value_fqns", + "items" : { } + } + }, + "additionalProperties" : false + }, + "authorization.GetDecisionsByTokenRequest" : { + "title" : "GetDecisionsByTokenRequest", + "properties" : { + "decisionRequests" : { + "title" : "decision_requests", + "items" : { + "$ref" : "#/components/schemas/authorization.TokenDecisionRequest" + } + } + }, + "additionalProperties" : { } + }, + "authorization.GetDecisionsByTokenResponse" : { + "title" : "GetDecisionsByTokenResponse", + "properties" : { + "decisionResponses" : { + "title" : "decision_responses", + "items" : { + "$ref" : "#/components/schemas/authorization.DecisionResponse" + } + } + }, + "additionalProperties" : false + }, + "authorization.GetDecisionsRequest" : { + "title" : "GetDecisionsRequest", + "properties" : { + "decisionRequests" : { + "title" : "decision_requests", + "items" : { + "$ref" : "#/components/schemas/authorization.DecisionRequest" + } + } + }, + "additionalProperties" : false + }, + "authorization.GetDecisionsResponse" : { + "title" : "GetDecisionsResponse", + "properties" : { + "decisionResponses" : { + "title" : "decision_responses", + "items" : { + "$ref" : "#/components/schemas/authorization.DecisionResponse" + } + } + }, + "additionalProperties" : false + }, + "authorization.GetEntitlementsRequest" : { + "title" : "GetEntitlementsRequest", + "properties" : { + "entities" : { + "title" : "entities", + "description" : "list of requested entities", + "items" : { + "$ref" : "#/components/schemas/authorization.Entity" + } + }, + "scope" : { + "$ref" : "#/components/schemas/authorization.ResourceAttribute" + }, + "withComprehensiveHierarchy" : { + "title" : "with_comprehensive_hierarchy", + "description" : "optional parameter to return a full list of entitlements - returns lower hierarchy attributes", + "nullable" : true + } + }, + "additionalProperties" : false, + "description" : "Request to get entitlements for one or more entities for an optional attribute scope\n\nExample: Get entitlements for bob and alice (both represented using an email address\n\n{\n\"entities\": [\n{\n\"id\": \"e1\",\n\"emailAddress\": \"bob@example.org\"\n},\n{\n\"id\": \"e2\",\n\"emailAddress\": \"alice@example.org\"\n}\n],\n\"scope\": {\n\"attributeFqns\": [\n\"https://example.net/attr/attr1/value/value1\",\n\"https://example.net/attr/attr1/value/value2\"\n]\n}\n}" + }, + "authorization.GetEntitlementsResponse" : { + "title" : "GetEntitlementsResponse", + "properties" : { + "entitlements" : { + "title" : "entitlements", + "items" : { + "$ref" : "#/components/schemas/authorization.EntityEntitlements" + } + } + }, + "additionalProperties" : false, + "description" : "Example Response for a request of : Get entitlements for bob and alice (both represented using an email address\n\n{\n\"entitlements\": [\n{\n\"entityId\": \"e1\",\n\"attributeValueReferences\": [\n{\n\"attributeFqn\": \"http://www.example.org/attr/foo/value/bar\"\n}\n]\n},\n{\n\"entityId\": \"e2\",\n\"attributeValueReferences\": [\n{\n\"attributeFqn\": \"http://www.example.org/attr/color/value/red\"\n}\n]\n}\n]\n}" + }, + "authorization.ResourceAttribute" : { + "title" : "ResourceAttribute", + "properties" : { + "resourceAttributesId" : { + "title" : "resource_attributes_id" + }, + "attributeValueFqns" : { + "title" : "attribute_value_fqns", + "items" : { } + } + }, + "additionalProperties" : false, + "description" : "A logical bucket of attributes belonging to a \"Resource\"" + }, + "authorization.Token" : { + "title" : "Token", + "properties" : { + "id" : { + "title" : "id", + "description" : "ephemeral id for tracking between request and response" + }, + "jwt" : { + "title" : "jwt", + "description" : "the token" + } + }, + "additionalProperties" : false + }, + "authorization.TokenDecisionRequest" : { + "title" : "TokenDecisionRequest", + "properties" : { + "actions" : { + "title" : "actions", + "items" : { + "$ref" : "#/components/schemas/policy.Action" + } + }, + "tokens" : { + "title" : "tokens", + "items" : { + "$ref" : "#/components/schemas/authorization.Token" + } + }, + "resourceAttributes" : { + "title" : "resource_attributes", + "items" : { + "$ref" : "#/components/schemas/authorization.ResourceAttribute" + } + } + }, + "additionalProperties" : false, + "description" : "Example Request Get Decisions by Token to answer the question - Do Bob and client1 (represented by token tok1)\nand Alice and client2 (represented by token tok2) have TRANSMIT authorization for\n2 resources; resource1 (attr-set-1) defined by attributes foo:bar resource2 (attr-set-2) defined by attribute foo:bar, color:red ?\n\n{\n\"actions\": [\n{\n\"standard\": \"STANDARD_ACTION_TRANSMIT\"\n}\n],\n\"tokens\": [\n{\n\"id\": \"tok1\",\n\"jwt\": ....\n},\n{\n\"id\": \"tok2\",\n\"jwt\": .....\n}\n],\n\"resourceAttributes\": [\n{\n\"attributeFqns\": [\n\"https://www.example.org/attr/foo/value/value1\"\n]\n},\n{\n\"attributeFqns\": [\n\"https://example.net/attr/attr1/value/value1\",\n\"https://example.net/attr/attr1/value/value2\"\n]\n}\n]\n}" + }, + "common.Metadata" : { + "title" : "Metadata", + "properties" : { + "createdAt" : { + "$ref" : "#/components/schemas/google.protobuf.Timestamp" + }, + "updatedAt" : { + "$ref" : "#/components/schemas/google.protobuf.Timestamp" + }, + "labels" : { + "title" : "labels", + "additionalProperties" : { + "title" : "value" + }, + "description" : "optional short description" + } + }, + "additionalProperties" : false, + "description" : "Struct to uniquely identify a resource with optional additional metadata" + }, + "common.Metadata.LabelsEntry" : { + "title" : "LabelsEntry", + "properties" : { + "key" : { + "title" : "key" + }, + "value" : { + "title" : "value" + } + }, + "additionalProperties" : { } + }, + "google.protobuf.Any" : { + "properties" : { + "type" : { }, + "value" : { + "format" : "binary" + }, + "debug" : { + "additionalProperties" : false + } + }, + "additionalProperties" : { }, + "description" : "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message." + }, + "google.protobuf.Timestamp" : { + "description" : "A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(&tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(&ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.", + "format" : "date-time" + }, + "policy.Action" : { + "title" : "Action", + "properties" : { + "id" : { + "title" : "id", + "description" : "Generated uuid in database" + }, + "name" : { + "title" : "name" + }, + "metadata" : { + "$ref" : "#/components/schemas/common.Metadata" + } + }, + "additionalProperties" : false, + "description" : "An action an entity can take", + "oneOf" : [ { + "title" : "custom", + "required" : [ "custom" ], + "properties" : { + "custom" : { + "title" : "custom", + "description" : "Deprecated" + } + } + }, { + "title" : "standard", + "required" : [ "standard" ], + "properties" : { + "standard" : { + "$ref" : "#/components/schemas/policy.Action.StandardAction" + } + } + } ] + }, + "connect-protocol-version" : { + "title" : "Connect-Protocol-Version", + "description" : "Define the version of the Connect protocol", + "enum" : [ 1 ] + }, + "connect-timeout-header" : { + "title" : "Connect-Timeout-Ms", + "description" : "Define the timeout, in ms" + }, + "connect.error" : { + "title" : "Connect Error", + "properties" : { + "code" : { + "description" : "The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].", + "enum" : [ "canceled", "unknown", "invalid_argument", "deadline_exceeded", "not_found", "already_exists", "permission_denied", "resource_exhausted", "failed_precondition", "aborted", "out_of_range", "unimplemented", "internal", "unavailable", "data_loss", "unauthenticated" ] + }, + "message" : { + "description" : "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client." + }, + "detail" : { + "$ref" : "#/components/schemas/google.protobuf.Any" + } + }, + "additionalProperties" : false, + "description" : "Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation" + } + } + } +} \ No newline at end of file From dc07376f9d537553de4e399fb9126c9f433c49eb Mon Sep 17 00:00:00 2001 From: b-long Date: Tue, 10 Jun 2025 11:48:37 -0400 Subject: [PATCH 20/37] Add option to include timestamp in OpenAPI description during preprocessing --- preprocessing.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/preprocessing.ts b/preprocessing.ts index 59c58a8..7d526f4 100644 --- a/preprocessing.ts +++ b/preprocessing.ts @@ -2,6 +2,8 @@ import * as fs from 'fs'; import * as path from 'path'; import * as yaml from 'js-yaml'; +// Boolean to control whether we add '[Preprocessed on' timestamp ']' to the description +const ADD_TIMESTAMP_TO_DESCRIPTION = false; interface ApiSpecDefinition { id: string; // Unique key for the API spec, e.g., "authorization" @@ -84,8 +86,11 @@ async function preprocessOpenApiSpecs() { // Apply your preprocessing modifications here if (apiSpec.info) { - apiSpec.info.description = apiSpec.info.description || ''; - apiSpec.info.description = `[Preprocessed on ${new Date().toISOString()}] ${apiSpec.info.description}`; + apiSpec.info.description = apiSpec.info.description ?? ''; + if (ADD_TIMESTAMP_TO_DESCRIPTION) { + // Add a timestamp to the description if the flag is set + apiSpec.info.description = `[Preprocessed on ${new Date().toISOString()}] ${apiSpec.info.description}`; + } } // First check if apiSpec.info exists, else initialize it From 5895cb1e7594cf52d30fbcc8e8e9fd4f0fee18d5 Mon Sep 17 00:00:00 2001 From: b-long Date: Tue, 10 Jun 2025 11:53:43 -0400 Subject: [PATCH 21/37] Update output & base64-encoded OpenAPI spec --- ...ation-authorization-service-get-decisions-by-token.api.mdx | 2 +- .../authorization-authorization-service-get-decisions.api.mdx | 2 +- ...thorization-authorization-service-get-entitlements.api.mdx | 2 +- ...zation-v-2-authorization-service-get-decision-bulk.api.mdx | 2 +- ...-authorization-service-get-decision-multi-resource.api.mdx | 2 +- ...thorization-v-2-authorization-service-get-decision.api.mdx | 2 +- ...ization-v-2-authorization-service-get-entitlements.api.mdx | 2 +- docs/openapi/authorization-v-2.info.mdx | 4 ++-- docs/openapi/authorization.info.mdx | 4 ++-- docs/openapi/common.info.mdx | 4 ++-- docs/openapi/entity.info.mdx | 4 ++-- ...ty-resolution-service-create-entity-chain-from-jwt.api.mdx | 2 +- ...olution-entity-resolution-service-resolve-entities.api.mdx | 2 +- docs/openapi/entityresolution.info.mdx | 4 ++-- docs/openapi/kas-access-service-legacy-public-key.api.mdx | 2 +- docs/openapi/kas-access-service-public-key.api.mdx | 2 +- docs/openapi/kas-access-service-rewrap.api.mdx | 2 +- docs/openapi/kas.info.mdx | 4 ++-- ...on-well-known-service-get-well-known-configuration.api.mdx | 2 +- docs/openapi/wellknownconfiguration.info.mdx | 4 ++-- specs-processed/authorization/authorization.openapi.yaml | 2 +- specs-processed/authorization/v2/authorization.openapi.yaml | 2 +- specs-processed/common/common.openapi.yaml | 2 +- specs-processed/entity/entity.openapi.yaml | 2 +- .../entityresolution/entity_resolution.openapi.yaml | 2 +- specs-processed/kas/kas.openapi.yaml | 2 +- .../wellknown_configuration.openapi.yaml | 2 +- 27 files changed, 34 insertions(+), 34 deletions(-) diff --git a/docs/openapi/authorization-authorization-service-get-decisions-by-token.api.mdx b/docs/openapi/authorization-authorization-service-get-decisions-by-token.api.mdx index 82e9a43..4953950 100644 --- a/docs/openapi/authorization-authorization-service-get-decisions-by-token.api.mdx +++ b/docs/openapi/authorization-authorization-service-get-decisions-by-token.api.mdx @@ -5,7 +5,7 @@ description: "GetDecisionsByToken" sidebar_label: "GetDecisionsByToken" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: openapi/authorization custom_edit_url: null diff --git a/docs/openapi/authorization-authorization-service-get-decisions.api.mdx b/docs/openapi/authorization-authorization-service-get-decisions.api.mdx index da36914..e963070 100644 --- a/docs/openapi/authorization-authorization-service-get-decisions.api.mdx +++ b/docs/openapi/authorization-authorization-service-get-decisions.api.mdx @@ -5,7 +5,7 @@ description: "GetDecisions" sidebar_label: "GetDecisions" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: openapi/authorization custom_edit_url: null diff --git a/docs/openapi/authorization-authorization-service-get-entitlements.api.mdx b/docs/openapi/authorization-authorization-service-get-entitlements.api.mdx index 6e60c43..9cc0e69 100644 --- a/docs/openapi/authorization-authorization-service-get-entitlements.api.mdx +++ b/docs/openapi/authorization-authorization-service-get-entitlements.api.mdx @@ -5,7 +5,7 @@ description: "GetEntitlements" sidebar_label: "GetEntitlements" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: openapi/authorization custom_edit_url: null diff --git a/docs/openapi/authorization-v-2-authorization-service-get-decision-bulk.api.mdx b/docs/openapi/authorization-v-2-authorization-service-get-decision-bulk.api.mdx index 44620bd..177c728 100644 --- a/docs/openapi/authorization-v-2-authorization-service-get-decision-bulk.api.mdx +++ b/docs/openapi/authorization-v-2-authorization-service-get-decision-bulk.api.mdx @@ -5,7 +5,7 @@ description: "GetDecisionBulk" sidebar_label: "GetDecisionBulk" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: openapi/authorization-v-2 custom_edit_url: null diff --git a/docs/openapi/authorization-v-2-authorization-service-get-decision-multi-resource.api.mdx b/docs/openapi/authorization-v-2-authorization-service-get-decision-multi-resource.api.mdx index d6e7aab..cd6b4ac 100644 --- a/docs/openapi/authorization-v-2-authorization-service-get-decision-multi-resource.api.mdx +++ b/docs/openapi/authorization-v-2-authorization-service-get-decision-multi-resource.api.mdx @@ -5,7 +5,7 @@ description: "GetDecisionMultiResource" sidebar_label: "GetDecisionMultiResource" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: openapi/authorization-v-2 custom_edit_url: null diff --git a/docs/openapi/authorization-v-2-authorization-service-get-decision.api.mdx b/docs/openapi/authorization-v-2-authorization-service-get-decision.api.mdx index 0540d22..8585489 100644 --- a/docs/openapi/authorization-v-2-authorization-service-get-decision.api.mdx +++ b/docs/openapi/authorization-v-2-authorization-service-get-decision.api.mdx @@ -5,7 +5,7 @@ description: "GetDecision" sidebar_label: "GetDecision" hide_title: true hide_table_of_contents: true -api: eJzVGmtvG7nxrxAscLABWXJ8aA5V0YfOVgIfLrYhKylSW1Co5UjLhEuuSa4dxdB/L4bct9aSrkiB1B9sa2Y4M+S8ST1Tx1aWDu8oy1ysjfjGnNCq/3jWH9UBt2AeRQR01qM6BeNhl5wOD1vWfwvuAiJhhVa0R1NmWAIODAp+poolQIf0XCsFkTu5MdrpSMuTD2DyBULRIY2BcTC0Rw08ZMIAp0NnMuhRG8WQMDp8pm6dIieVJQtP6YSTe1iDyhI6vHs161EONjIiRb3pkF7AUiggLgbyGKiJXvqPOTeS5txoj0ZaWUeHrzab3tZ+piIBnbmTd3ZrJ4dr3mDyoqIuUPWIUCSxdLOZhdMC637VfI2CIq0cKIf/sjSVIvJ2Gny2yOt5WyO9+AyRQ6MZNLwTYBELygm3vuT4dynA+BW5zgE3FxWyrTJTJBCRJLOOLICUxJwstSENryI8dx2hVng0LcW0guuld6QuFc9jJlSHdpGHtxXzULSzVkC0IYk2EFQVYO9V8V+pdmr0o+DAh/fq06dP9ypm9sjFwvYLymPy00+kAelb8Q2OjsnfyWm+6F517Kq1lzSGBAyTGHOlbawz+ZEUeyvI5oJv7a1EEhEO2RkWfRFqRRbgngAUyV2FMMWJAZtqZYFuerRQvSaaGcPW6M8OEtvlLi9ZJZJM5CtypXNIW93MAieLNRlPbkkgIYnmsPeoArZ9RpsefWQy68D06FKbhDk6pAuhmFkjLYdFturaFuNcoIJM3tSkYh7abPZhtzZcJbK7AjjDBNI+MQHK7TZ8oEGrNwUV0LasnGOHNEiYkCPODVi709WQbs5ywrrUJqYpucG9Q3pmwVz59PmyZKSZ+xxbl1pBmxJLjjNMhj9SVEXMwUqbdSMWClhvS5u8UNHz0XT89nrycf7+6vZmfH755nJ8QXsV+Pb9r7+Nz6d10Pjqw+Xk+urd+GpKZ/VDG/tc+KJbL5m00N7wzZgc3YCxWpGw/BgT5RWCr7Q6aaJo3S+KLPJypHiBm/aaKlk3XKmW3js8ycBKWAcG+ASszkwEHzD+3zyoXaauVs1Nvmzu88Z8+YAKJEL9DmrlYjp8VUscmRFbjrHMpFyTh4zJUNbQN4sOohJDCjHEiyHWaYQKRVLJHAogqZYiWvfIUwwGiFD3yhcUEjELObecBYucJczmnpYasKAQQqxQKwlFzd0qsAOPkJCAco1iWzfFvqOp22bH4XeYyukv0CjRAbDVNEQRWEs8khz99q/pMZ6JiGIiLPHVwmkSGWAOSNVghIp+FOkkNQLPobO0H9+rwHdvYf/85Kqa/vnJ/R+W889PbpdURLeF+ebSWwVdom5qpJ4dHM+FZescAsyn511cepRFQZvKUXJIW9sQaooENLpHKe/w9jHKrNPJzqIbKLb78dQAJvJWMS6oG5U4ADuCwjqmODO8vt0StkPky4Xjdjq6uhhNLuaj8+nl9VWrfrSxF+PzycebaQdmOhld3b67bJWSmm71DZbgjvIrdjp/h8u/BYWjJ3CSZcInSc4cW7Dg1mpP3xBahh5NwDFcVz/ZErYvckN+4SPXqNoBOGfbgVOhiAWH/awF8wiGHOX56SkukhYnT0JKYiDShocawBRhGReOwCMod9xh3LIEcebgBOc/3GKW8m0tc2CXlhVqh5Y50ffTUrIFyM7hoVA5p3gpMbxs69Drb9r71GlgQmysDZa6CrmnKWlzunUmixxWnEyJhwzkuhhh14RVFflJuJiUUiv+pHS4fc0QhlNgVrdlCTs8nzHnjFhkLpTixgRWokJB357FxLIsiL1yc/32slA8lfYFFJLUrYvq6Yvl8kHVh9+yiHo4k/IIZ8kewd99Yd8bcXR8fHhJRS4HzKfVOFhs3i/8Ay1px2HVE177mH+E1vR/0sb9UNPUHwvesXAxGOyLwWFLXtqM5I58ZLMoxk7axdqGVoJML974SYe93L03Drp25TkJOncOMJf1W7Kynynje3dT1N7YOVN+IqjdpgUpg/LmKnTR/7hX5FXft8J5hjewBAMqAnLEIqfN8b0iZ4EiaHWvyM/hc6HcvQqYvu+39nbONeJaXG+aDaW/K/H795b1jnV2eop/Wgk48xsJd6/f40azmHvqiZFXd9ZN6QUCXaMxgpW5XgrrfUsvpFh5jWw1k4W6+X5ySUKc3qNfp6EJCAHTWPc3cvbXw2eKIlYPDcMyDXzXIeO/O04DNpNuRxN7MT6/vN3uXkvwxfjqY/3zzXhStqoHJvhG4OYb2rN44ze8ZKj7lqeOjdHm+/lphJegHYaFryxJJfi3HKXdfKkzxTF/FEcXMRWB9CNCpr4o/RReVh6ZFHzOzCrD8d+bhnEpFMzhawTA/YKKYY8yaYDx9Ry+CuswAFMwibB4XnMOSgCvJbA5fI1ZZsNksmRCAp/jrKJVOE7kt9Am4HXm5no5N0ytwGspcEeJDxivqwOjmPQo9siEZAuJhNhIzaX22SBTeLWBSS3MQ1vvOtMYb1mYyyzBoyzuEGysM8kxgfm7gyzJL2T0ktyttF5J6Js06p9rDrMtQD/MFdayVadtmhqMCIdHkGjUkyWLMJoAfYTkHLZVEnihtpLCxn0yUmu87eheWlsjdcSk+AbchyZmHWSDyaqu/q0/iT4Hx4S0sx0oshQgeQ9LYMV6sfYcw4VyP8Q9ku934x/zmn6roGrlmFDWzzhmIZxhxg9HIj+A4tyZ1GoV2n1G/onqEBezYsRYgA3vcwjP7wC3mfRr6Tm3g39iXGTL/kitG91F8QZZJJfDt+RXBE0MuMyoYMac4ZDEzqV2OBhEAYCeEOlkwHVkBys98O5mB39CspOyoLF8hsozYXNorz/9JuBije/GqfYNUcqwYaWDg56RB01eYUYNb8iZkfiwmuue50JUfCv6xgFHrlNQ04s31T3r+8nvFLtaC1Fm8Fp8eDfrUUzPk+oJNV/90hNo682x0RLXi1nxnnbXeBBrOXweCfU0Etx945+Zq3ehKnra7zd1TPW2UkJDWSyv1Yorr1o01ofPjgkyTF13xYKZt79QS43I/Nkcx/Gzmmu3Tb1lobsb9CuN7R1w7LDOTs/+fHL6+uT0L9Oz0+HPr4enZ/3Xv7z+94ygiuhJCfMbyF/em27SYF6esoOvbpBKNBRemBifsoI3HvpdiF5D0KxHY/Tp4R19fsY7qfdGbjYIfsjA5N70yIzwRWt4N9v0ii8CoBtwYRHBuzv72rs9PZrk3fIxqRql5na+wHr3tx4K1/KOcbjow+Q1vqvQkFTSIb+TKbKqKLaaomrFKIogdTtpZ7XccnN9ixeXi/wrD/7ZeEgNe8LGhD2FjYROPQzkCHumkqlV5is4DTzx5z9jymsz +api: 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 sidebar_class_name: "post api-method" info_path: openapi/authorization-v-2 custom_edit_url: null diff --git a/docs/openapi/authorization-v-2-authorization-service-get-entitlements.api.mdx b/docs/openapi/authorization-v-2-authorization-service-get-entitlements.api.mdx index 532d37f..cdba2dd 100644 --- a/docs/openapi/authorization-v-2-authorization-service-get-entitlements.api.mdx +++ b/docs/openapi/authorization-v-2-authorization-service-get-entitlements.api.mdx @@ -5,7 +5,7 @@ description: "GetEntitlements" sidebar_label: "GetEntitlements" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: openapi/authorization-v-2 custom_edit_url: null diff --git a/docs/openapi/authorization-v-2.info.mdx b/docs/openapi/authorization-v-2.info.mdx index 9ddec34..49d0c6c 100644 --- a/docs/openapi/authorization-v-2.info.mdx +++ b/docs/openapi/authorization-v-2.info.mdx @@ -1,7 +1,7 @@ --- id: authorization-v-2 title: "authorization.v2" -description: "[Preprocessed on 2025-06-09T20:36:02.676Z]" +description: "" sidebar_label: Introduction sidebar_position: 0 hide_title: true @@ -29,7 +29,7 @@ import Export from "@theme/ApiExplorer/Export"; -[Preprocessed on 2025-06-09T20:36:02.676Z] + \ No newline at end of file diff --git a/docs/openapi/authorization.info.mdx b/docs/openapi/authorization.info.mdx index 269336c..4e0df7d 100644 --- a/docs/openapi/authorization.info.mdx +++ b/docs/openapi/authorization.info.mdx @@ -1,7 +1,7 @@ --- id: authorization title: "authorization" -description: "[Preprocessed on 2025-06-09T20:36:02.674Z]" +description: "" sidebar_label: Introduction sidebar_position: 0 hide_title: true @@ -29,7 +29,7 @@ import Export from "@theme/ApiExplorer/Export"; -[Preprocessed on 2025-06-09T20:36:02.674Z] + \ No newline at end of file diff --git a/docs/openapi/common.info.mdx b/docs/openapi/common.info.mdx index 05a6368..f39cc1b 100644 --- a/docs/openapi/common.info.mdx +++ b/docs/openapi/common.info.mdx @@ -1,7 +1,7 @@ --- id: common title: "common" -description: "[Preprocessed on 2025-06-09T20:36:02.677Z]" +description: "" sidebar_label: Introduction sidebar_position: 0 hide_title: true @@ -29,7 +29,7 @@ import Export from "@theme/ApiExplorer/Export"; -[Preprocessed on 2025-06-09T20:36:02.677Z] + \ No newline at end of file diff --git a/docs/openapi/entity.info.mdx b/docs/openapi/entity.info.mdx index fb8ba0c..ace16d6 100644 --- a/docs/openapi/entity.info.mdx +++ b/docs/openapi/entity.info.mdx @@ -1,7 +1,7 @@ --- id: entity title: "entity" -description: "[Preprocessed on 2025-06-09T20:36:02.678Z]" +description: "" sidebar_label: Introduction sidebar_position: 0 hide_title: true @@ -29,7 +29,7 @@ import Export from "@theme/ApiExplorer/Export"; -[Preprocessed on 2025-06-09T20:36:02.678Z] + \ No newline at end of file diff --git a/docs/openapi/entityresolution-entity-resolution-service-create-entity-chain-from-jwt.api.mdx b/docs/openapi/entityresolution-entity-resolution-service-create-entity-chain-from-jwt.api.mdx index 9c0670b..69ecada 100644 --- a/docs/openapi/entityresolution-entity-resolution-service-create-entity-chain-from-jwt.api.mdx +++ b/docs/openapi/entityresolution-entity-resolution-service-create-entity-chain-from-jwt.api.mdx @@ -5,7 +5,7 @@ description: "Deprecated: use v2 CreateEntityChainsFromTokens instead" sidebar_label: "CreateEntityChainFromJwt" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: openapi/entityresolution custom_edit_url: null diff --git a/docs/openapi/entityresolution-entity-resolution-service-resolve-entities.api.mdx b/docs/openapi/entityresolution-entity-resolution-service-resolve-entities.api.mdx index b1db118..c9f1d62 100644 --- a/docs/openapi/entityresolution-entity-resolution-service-resolve-entities.api.mdx +++ b/docs/openapi/entityresolution-entity-resolution-service-resolve-entities.api.mdx @@ -5,7 +5,7 @@ description: "Deprecated: use v2 ResolveEntities instead" sidebar_label: "ResolveEntities" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztWd9v4zYS/lcI3ksP0NrdPPqpadZbpLhLgvwocIgMdySOJXYpUiUpJ67h//0wpGRLltebFO1b92XlITn8ODOcbzjZcg+F47NnjtpLv7HojGq8NHoyD4L7veAB7VrmyBcJF+hyK2uS8hn/hLXFHDyKGWscsvUFC6vWGFRIdExq5xEET7ip0QItvBZ89uZNJ0cKecIt/t6g8z8aseGzLc+N9qg9fUJdK5mHTaa/OYK45S4vsQL68psa+Yyb7DfMPU94bQlSUDrbRkDtdzsTrIUNT7j0WLlTGozG2xWfPW+PdOUKZLtCekVLWknyDRBxdL+R81bqgu8SvgbVnBhJ+MrYCjyf8UxqsBuaKzBrilNwQQhJtgF119vV2wZ3u3Ojx26/MtqD1I6BZmAz6S3YDXNoJSj5BwpWoXNQIANldMFepC8ZsB8IDvMleBbVZeiYL5EFuVmF77GSCSdwIztSEEiLggK4FS52ydgRErWngBtb7qCS5iylONqokx7v1Wo8tVvjvKkGbo+Sb7kdXz1qJ2PAdmsPwn+i5k9GzWlwK1BuhC6mn6h1ZSyLnmNdVmAZbowWcTcPWoAVYbIbRk3n70HIROGJgMEKpLoUwqJz50I0zFtCO/EYutF7Q8SsykwYcqxqnGcZ2ccPYB7r66MdYDqB2WJlPF6FK/dk1TnYceoyXs9lY9UAxHh0COR4oxNYGof2BqqTId5tQ3OWmib1Nz9Ih5vuNZ7arZFnE0kYH2zSjNJHEC12i+MrfF5zUDN0OtYlVmhBMSlCwHoL+RepC5ahf0HUrKVJBlowi6422iFddOLrwtjNIE91smSEAXVTEfKry8f5T7f3/1s+3Tzcza+uP1/PP/HkIH54+vHn+dVjXzS/+eX6/vbmv/ObR77oGyZetq/mlpMX9G7OvrtD64xmcfm/mbHshsQ3Rn8YDvF+sHfE3kdwVFXcR1u9D9H8Fapa4Yz9hJ5JUTPw3sqs8eiCRzKTBeODkjmy7zLjS2apYnKoPQrWOHIXaBauHGuvY6q3qU73qFM+Y8+tTAr6lXL8mPIkTOrd1TiUmewHjLgmxhYpT/UuOV5+8dXlAepIQaoXqd7xHRnwEMyBAUgQQyuE8cX339N/Qzs9NHke88xfWapt7jtTBiXvqtuG6oYuf5ei09Gy7RWG7QrdKMUppex/VxnavmTP2ntJZoxC0H1RBNQTvIWlR2X7r79QXfDrIRgdAyY2GiqZg1KRBQUL1QN7KWVeshw0EQlKX6JNNaPzJAxYPAd9Rfz01eKmT4t5Y51cE2naJvdRZ0I3F1LNlHSeqCtI3YRdstoa0eRo91ImHcPXGnO6Md4QlbED4TlMNVuDlaA9rc8c6jwMgt50A0xqQaGGofRAa42dpDrV7LFE9vPD7c3BECGUwuXtbCRdnBLATHo5uTCmUDiprfEma1aTMD8WUgNbP4SDHxk7WqOxKJgAD51ZcqOddJ7SglmxlUQlXKpbF1RQkwG+4ic3YdeaOVMhU6CLBgp0Cet2TzWrZFHGYqCpa2PJnNmGPAie/DM0wYR9Npa1eSBhkqzVnkoXhw2Ykl/IhPsTkbn6KQ7I5KlmMUwnweICPUjlogfBHxsfLO4rPfJ4gW3IhYKQipxg8u4YkfvKw6nf4NrOJZ1vW3RnnBtX9FnlcN+Wdcgau4QbKwupQZ1/b3SzlmdZva3kiNytqcIJW0LnYyYdpsLzLHbMjJulPUqkZ3myrSP+PqLs898I25AN62U7a0SMx96h4W3K6Xpcem8/pnwWf4Vb+zHluwFPjhVfvE3xxVDxRVR84M+QHlbQKD+myTklpr+OJHMjTtbF7aUOnR9t/HJlGi2otdMVejnoHBVScDb6izYvFFBSr0FJsQRbNBWho4OAUFLjEl9zRBEWHBQmHJRFEJslvkrnif1rtJV09KJdCtQSY23sTGNzUlJC43wQrkAqFEvqLRkd7U36spC1qO3S+KVZLS3oAgNKSSeqQsoJWD1aDSoMwRqkgkzRREq1S2VCKdJoaHxJbg79q3Fv6zG+9HzjGJkyabOwK02jBOVR4hLdVC1NmRV7brOGrfPJlRG4GAkmlCXaF+op3wwRXDKBa1Tk1A8ryCnzBvLq3rhjSJIK4EJJV07Ypd5QT+700t4aZfL26UxXkK4aqaF804f/ECwxaXP34sxQpK1A8QfV2SZojM2TSWRJmv7tMP6nt3Git/F1orrUm0H+vjJaY+5Zl1zefqSwIiKx6BuroxtbhTNWel+72XSaRwFFQm6qqTC5mxZmGsLNTf9F0z4Ms3hIhOEi+NJQL7g24elVgy/5jE+PW8NTG0mIJ9yhXaN1obKmjsGMdzC6N0se2i8n+Yfd1qgfP31mtQJPUcKe7v/DqTx2VKbSi3T2vEg4Zdr7Q4+5XT3sET8PmrxHEdiGZv9ex/ijY/ebkv2i/9A8HHYD36Gb1AxbSv0NRo2b/uChkzKQho7HXrLYUXJdmUGX8shZI+MTZrTxOHz9ka4j+buCcDwd9xw3+QdKek3+9/3NobWex1c/rRVIekzFwNm24Tb+80fLShRwi4SXFJuzZ77dZuDwyardjsS/N2jbcAmvDCKY2TMZqEQQaEOEfMFNmxtQ+w+PhOXgwBG3k8Hjiss8x9qfnbvoXZ+72wdqu2Tt30OqQPzcwgudBF6iD9qWYOjgkWzLu4KZz3jUSf/+DxltS0E= sidebar_class_name: "post api-method" info_path: openapi/entityresolution custom_edit_url: null diff --git a/docs/openapi/entityresolution.info.mdx b/docs/openapi/entityresolution.info.mdx index d82eddc..46ab1dc 100644 --- a/docs/openapi/entityresolution.info.mdx +++ b/docs/openapi/entityresolution.info.mdx @@ -1,7 +1,7 @@ --- id: entityresolution title: "entityresolution" -description: "[Preprocessed on 2025-06-09T20:36:02.679Z]" +description: "" sidebar_label: Introduction sidebar_position: 0 hide_title: true @@ -29,7 +29,7 @@ import Export from "@theme/ApiExplorer/Export"; -[Preprocessed on 2025-06-09T20:36:02.679Z] + \ No newline at end of file diff --git a/docs/openapi/kas-access-service-legacy-public-key.api.mdx b/docs/openapi/kas-access-service-legacy-public-key.api.mdx index 7ff72b4..fc48589 100644 --- a/docs/openapi/kas-access-service-legacy-public-key.api.mdx +++ b/docs/openapi/kas-access-service-legacy-public-key.api.mdx @@ -5,7 +5,7 @@ description: "buf:lint:ignore RPC_RESPONSE_STANDARD_NAME" sidebar_label: "LegacyPublicKey" hide_title: true hide_table_of_contents: true -api: eJydVm1vIzUQ/iuW+bpNQhEV7CeiNiDg6FVNDyRy0XbWnt311bEXezZtLtr/jsabcEnT6wEfokTzPs88nslWEtRR5gv5AHE0VQpjnGNYG4VymUmNUQXTkvFO5rLsqtwaR7mpnQ8obm8ui9vZ/Obt9XxWzO+m11fT26vievrbTGbStxiAHX/WMj+NPnqDNajNTVdao37FjcxkCwFWSBi4nq10sEKZS7C1D4aalcyk4Sr+6jCweVQNrkDmW0mbli0jBeNqmUkyZI9d+36ZyYCx9S5iZJ/zyYS/jhucd6lEmUnlHaEjNoG2tUalVsYfItttX8l9HPCPAG2LQawwRqhRVD6I+8H2fvTevXfirkHxy/zttQjYBozoKGUaLOfJ8newHd4LEwfDwX100GftfW1x1AZPvuyq0YGb7Pu+56oq6CyddjwLwYf/0a8vP6AiHlrgQZMZUFVe40uo4BOsWouJaM5TUfnOaSYYum7FQgVOoUUtM9m5B+cfXRr3GqzRBYS6W3F13AhoaxwW+KQQdXL4FDCTYAOC3hT4ZCLxIFsMKxOj8a7Q6ExyCBh9FxQHaaCLlIQVGIu6aAMq77RJ+GQSSh8Gve+o8FURwNWYqjTcEZeV1MYRBgc2qWANxkJp2VADQWF9YlXnoKMGHTG+qE9fGLMhElAXBUOZicfGqEbExndWixIFOMGQiTUPV/hKLHbDD60aXXqNyxPBSPaZ3BHwy4ydCo1rtDzUswqUcbVA5siewqclGSdmrrYmNiMxdRvRxc+4HvhYr8Caj6gFOC2Y9RyGGjzqZ56QGGkkMDYuX1GJyqDVmfDhIHS5SRGVNegooTCYf5nGg/Y5VH0mE+wvgVj5sALiHWkchM2QrOzql3KBHugF9uYgK4UO+al+Xvt8VJfeERgXmRQQSkMBwkZEDGYHwB53sN7V4tFQI0D8wOUIaoDEEK7EmHBKcl+l36dBXts3U7eRXPpef+mdQ0Viv1z+fUvJY6gkIHXBDWPcBcxFQ9TGfDxWg4CZoPxqrL2K49qPE93i+Cs2OzteqGkRpodAjeeLVGOaO1Ajczl+gMifok33qHhIByliWO+vUReszOU+/26fcfKTFzQbdOJti+7u6kfRWiCmh3h3+0byHYqoumBoI/PFkhdH5RNLduA9QDwJubjhZjzfJtTCO3E+Of/2bHJxNvn+7nySf3ORT85HF99N/lwKmUmuefBbf81EbH2kFaQ9vrupp7f3KN/20zn4bzd/x3TCJxq3Fozj9Am57Q7pxa6/Z1gvM9n4SKzfbkuI+C7YvmfxcO15AtpEXqla5hXYiJlkx+P/B7vnKRPMawgm7eB8sewz2SBoDCnS4Mh/R1o68Do5fBzlH778NLuTff83lbo5rg== +api: eJydVk1z2zYQ/SsY9MpIaY88VeOonbap7bGc5uBo6CWwJBGDAAssZKsa/vfOglIjWY7T9qCxvN/79mFXO0nQRlneyQeIs4VSGOMKw8YolOtCaowqmIGMd7KUdWpKaxyVpnU+oLi5vqhulqvrq8vVslrdLi7fLW7eVZeL35eykH7AAOz4i5blefTZe2xBba9TbY36DbeykAME6JEwcD076aBHWUqwrQ+Gul4W0nAVfyYMbB5Vhz3IcidpO7BlpGBcKwtJhuyp6ziuCxkwDt5FjOzzw9u3/Oe0wVXKJcpCKu8IHbEJDIM1Krcy/xzZbvdK7tOAHwMMAwbRY4zQomh8EPeT7f3sk/vkxG2H4tfV1aUIOASM6ChnmixX2fIPsAnvhYmT4eQ+O+qz9b61OBuCJ1+nZnbkJsdxHLmqBpKl846XIfjwP/r19WdUxEMLPGgyE6rKa3wJFXyCfrCYieY8VY1PTjPB0KWehQqcQotaFjK5B+cfXR73BqzRFYQ29VwdNwLaGocVPilEnR2+BCwk2ICgtxU+mUg8yAFDb2I03lUanckOAaNPQXGQDlKkLGzAWNTVEFB5p03Gp5BQ+zDpfaLKN1UA12Ku0nBHXFZWG0cYHNisgg0YC7VlQw0ElfWZVclBog4dMb6oz18YsyESUIqCoSzEY2dUJ2Lnk9WiRgFOMGRiw8MVvhF3++GHQc0uvMb1mWAmx0LuCfhtxi6Exg1aHuqbBpRxrUDmyIHC5yUZJ5autSZ2M7FwW5HiV1yPfKxXYM1fqAU4LZj1HIY6POlnlZGYaSQwNq5fUYnGoNWF8OEodL3NEZU16CijMJl/m8aT9jlUYyEz7C+B2PjQA/GONA7CdkpWp/alXKAneoG9PspKISE/1a9rn4/qwjsC4yKTAkJtKEDYiojB7AE44A7Wu1Y8GuoEiB+5HEEdkJjC1RgzTlnum/z9PMhr+2bhtpJLP+gvvHOoSByWy79vKXtMlQSkFNw0xn3AUnREQyznczUJmAnK93PtVZy3fp7pFuffsdmb04WaF2F+CNR5vkgt5rkDdbKU8weI/KmGfI+qh3yQIobN4RqlYGUpD/n3+4yTn72g5aQTVwO623c/icECMT3Eh5v3ku9QRJWCoa0s79a8OBqfWbIH7wHiWUhZSC5k+mfzPbNr8JF6yMt5fyjPD+pJkN2XHf/fDvmevoRPNB8sGMfpMxy7PXx3+6KfAbguZOcjsX63qyHih2DHkcXTCWdYtYm8J7UsG7ARC8mOp0d//+Zkxm4DweTFWt6tx0J2CBpDjjQ58m+MgY68zq4ZR/mHBD8vb+U4/g0reS29 sidebar_class_name: "get api-method" info_path: openapi/kas custom_edit_url: null diff --git a/docs/openapi/kas-access-service-public-key.api.mdx b/docs/openapi/kas-access-service-public-key.api.mdx index e18f4b8..07dfd9e 100644 --- a/docs/openapi/kas-access-service-public-key.api.mdx +++ b/docs/openapi/kas-access-service-public-key.api.mdx @@ -5,7 +5,7 @@ description: "PublicKey" sidebar_label: "PublicKey" hide_title: true hide_table_of_contents: true -api: eJytVl1v6zYM/SsC9+omWYYVm59WdN0wbMCK296XBUFAS7StW1ny9OE2C/zfB8pJb9K03b3AnpxI5BF5eERqBxGbAOUKHjDMrqSkEO7ID1oSrAtwPXmM2tnfFJTnJrPbVBktf6ctFNCjx44ieYbbgcWOoAQ0jfM6th0UoC2U8Hciz+ZBttQhlDuI254tQ/TaNlBA1NGcuo5j8QxYd/HrodjpGGT4eogBxnFdgKfQOxsosO1yseCPoiC97pknKOEuZYqgAOlsJBvZBPveaJmpnH8KbLc7P9NVn0hydr1n4qOeTumfSX4nvMlo80BbGAt40Oo9Y94ex8//n8v4YZ8dFIBKaQ4Xze1RNDWaQOPIzopqTCaeE3DjvfP/X/rSKXotGXrCrjeUxWtd3NQuWcWiJZs6XpRoJRlSUECyD9Y92lz1AY1WG/RN6jg6TgSV0ZY29CSJVHb4DFgAGk+otht60iFyXXvynQ5BO7tRZHV28BRc8pJBWkwh5sUatSG16T1JZyc6Ga9yftp3KW5cvfFoG8pRas6Iw8rb2kbyFk3ewgG1wcqwocKIG+OyyJLFFFuykfmlTMBpOe5bEiFiTEEwlYV4bLVsRWhdMkpUJNAKpkwMaBIJV4tV41xjaOZ7Obt2itZnCzMWWUchYPNqbU4juBKKBjJc1IsapbaNINaI2COch6StuLGN0aGdiSu7FSm84XrkY5xEo/8hJdAqEchGhoktneRzl5mYKYqoTVi/syVqTUYVwvkj6GqbEaXRZGNmYTL/bxlPuy+pGgvItL9GYu18hxFKqLRFv50Oq1Lz2lmv39boE/FVfXv3ZamunY2obWBRoK909Oi3IpDXewIOvKNxthGPOrYCxU8cjogtRjHBVRQyT3nd1fn3OcjsqCXt69B7F12V6tmV3Z60qGtnLckoDs3ly1PKHlMknmLydirjHrAUbYx9KOdzOS2wEqTr5srJMG/cPMstzL9hswtPvSeWVm5lMB464fF5xzOxo9g6Hp0NZUVgbKGE+QOG+bDkz+aobxcQyA+H+Zm8gRIOwe2bHUd2dr1upj3xZ0/2/udfRG8wsnbExw9/AM+sQDJ5HbdQrtbcVWqXJXQYBhjOIFe3nKnjOUZKOCuWi+X3F4vLi8WP98tF+d1luVjOLn9Y/LUWUADHPPkN37JKexdih7nJ7+ftMScnJz0rOdJTnPcGtWWEnPxuz9dqH+KwhAJecLYuoHUhstFuV2Ggj96MIy9Pk52ZVDpw31T76VUAO56+TPZ3EIDfCG/YTw+PL7EcTuzW/Mfr3LrL1XosoCVU5HNskwM/qvpj9LN5ySjPYvr15h7G8V8CemON +api: eJytVlFv4zYM/isC9+pLbn3004pbbxg2YIdr76kIAlqibV1lyZMot1ng/z5QTntJ03Z3wJ4Si+Qn8uNn0ntg7BLUt3CHaXWpNaV0TXGymmBTQRgpItvgfzdQn7usPuXGWf0H7aCCESMOxBQFbg8eB4Ia0HUhWu4HqMB6qOHvTFHck+5pQKj3wLtRPBNH6zuogC2709B5rp4A24F/HEqCjkGmH4eYYJ43FURKY/CJkvhevH8vP4aSjnYUnqCG61woggp08EyexQXH0VldqFx/TeK3P78zNF9JS3VjFOLZLreMTyS/kd7itL2jHcwV3FnzlrOY5/nb81MbPx+qgwrQGCvpovt0lE2LLtE8S7ChFrPjcwKuYgzx/ytfB0MvFUMPOIyOinh94G0bsjciWvJ5kEONXpMjAxVkf+fDvS9dn9BZs8XY5UGyk0LQOOtpSw+ayJSAb4AVoIuEZrelB5tY+jpSHGxKNvitIW9LQKQUctQC0mNOXA5btI7Mdoykg1/oFLwmxMUeMm9Du43oOypZWqlI0ipm65miR1dMOKF12DhxNMi4daGILHvM3JNn4ZcKAaftuOlJJUbOSQmVlbrvre5V6kN2RjWk0CuhTE3oMqnQqtsuhM7RKo569SEY2pwdrERkA6WE3Yu9Oc3gUhmayElT37Wore8UiUbUAeE8JevVle+cTf1KXfqdyumV0KMYFzQ6+w8Zhd6oRJ4Fhns6qee6MLEyxGhd2rxhUq0lZyoV4hF0syuI2lnyXFhY3P9bxov1OVVzBYX2l0hsQxyQoYbGeoy75bImdy/d9fLbyjGTvKqvW5+36kPwjNYnEQXGxnLEuFOJoj0Q8Mg7uuA7dW+5V6h+kXQU98hqgWsoFZ7KeWjL/3OQ1dFIOvRhjIFDk9vVpd+djKgPwXvSrB6Hy/eXVCKWTCJxjn5p4wGwVj3zmOr1Wi8HogQdhrUJOq27sC5yS+ufxO1dpDGSSKuMMpgfJ+Hxfcc7cSDug6zOjooikHuoYX2HaT1dyM/2aG5XkChOj/szRwc1PCZ3GHaS2dnrdbXY1F8j+ZtfP6rRIYt21JfPf4LsrEQ6R8s7qG83MlXaUCT0uAwwnUFCBZLI8jD9LNIbQ+IBy+Q+LNHjQk/Cn+TJ9MDr0aH1glAq2h9IuD3cO11ABc+I2FTQh8TitN83mOhLdPMsx8u6FnqMTTIMzWElVSCBp58bhxcLQBb/K/7L18T3eE4nfht5iLbM4/p2M1fQExqKJbclQL6UxmP0syUoKE8K+e3qBub5X4QkV5w= sidebar_class_name: "get api-method" info_path: openapi/kas custom_edit_url: null diff --git a/docs/openapi/kas-access-service-rewrap.api.mdx b/docs/openapi/kas-access-service-rewrap.api.mdx index dd27b40..5e2e5b8 100644 --- a/docs/openapi/kas-access-service-rewrap.api.mdx +++ b/docs/openapi/kas-access-service-rewrap.api.mdx @@ -5,7 +5,7 @@ description: "Rewrap" sidebar_label: "Rewrap" hide_title: true hide_table_of_contents: true -api: eJztWFFvGzcM/iuC9nqxvQwrtnta1nVA16EJkrQD5hhXWqJ9qnXSTdLZuRn+7wOls32uHafb+ti8RKGojxRFfuRlzQPMPc/HfAF+cCUEen+HbqkE8knGbY0OgrLmteT5scrgFlcOap5xh3816MPPVrY8X3NhTUATaAl1rZWIIMOP3hqSeVFiBbQKbY0853b6EUXgGa8dmQwKfdRTc4PyNmHf2wWa3hkfnDJznvGggo6CqF10rhQh6m82e4XkbQfHMw5SKvIL9E3P7Ay0xw2dIyTlUPI8uAajwNfW+OTc5WhEvyR64VRNODznd02MD8++VAgqDCAhnNTc3mun89SV1jvVJegGecatwesZz8c7UNNozTdZ7+9qiq4v6eLdk0yt1QimLwLnoO0Lds6e9iwGdpJ9EsUP78nND8xh7dCjCZ4Bk62BSgnQumUELlm8DFuVSpRMgGFTZKhCie7BMLpPxoCle9Aq+U+rzm9aOhSN82qJtN2IkDAzZh2DB8O08oHZWZL6AbtitbOyEeh2UqY8w8caRUDJgmUeA7MGaT+U6PHBsCU4BSbQ+alHI+ImmHa7wZSRlB/oGRiGzlk3eDAPht2XyH67u367D0RMIjazjm1jpHxSic4M+IZiWTskuH3iogkqtH84qGuUb7A9V0ZJt1gl5WKBLc/4zLoKAr15Gyh/Ttjw6L2y5qaZaiWesdHpFnVUjjYIIdbEe3Re2fOVHhWLZad50p2DWj3IzoyrgJV/vvZqq5VoifqediXpFEryZLPR4V9Z3Bfioe2YBWefKSr06S1J+rQ17mQTKshD/AX4z0uHBfizudD34Fi378uhyQmV/Veu+8p1/4PrNhlfYJtGkusY/PPFusC2gKhdpLfq6tYHCI0/yzhJo5/sb7aWt2MF1f4zU8X+9JYq+og3kUv+K1zHdp/m11tcsQTJrm5eM1GCmaM/ORcliGcHo9hiZkDuHc0/rzoO+kLTj7ASTz0LPkJVa4yDq7GhmNnGSBpY0TQVCQUYgRolz3hjFsauqEsoswStZAFu3lTkHV0EpFYGC3wUiDIe2ANmHLRDkG2Bj8oHCm6NrlKpeUk0Kh5w6G3jBIGU0PgQhTNQGmVBfcmaFE7Cm1qX9m0TCjsrHD1H9FLRjcituK1MQGdAxy1YgtIw1bHzQoBC2zhjNgaaUFLDTr3viFyoqFLqMgpl1hGIL22jJXEI1aBpqq687YyN59bONQ5cLQYvrcTJkSDOGBV6D/OTb3PowRWTuERNj3oxA6HMPBU96xCOXVKGvTJzrXw5YFemZY1/4mjvjLYCtPobJQMjGZEHwYQSD+5zFyMxkBhAaT85s8VmCrWM1LiHnrYRUWiFJnSTFqk/n8Zp97i7dC3qRBD3PVYZcG0yNm3mp2yd6Tabc7ufPtVLawIoE4kZ3FQFB65lHp3qArCNO2hr5mylQsmA/UTusFBCYAluij7GKcpTZzgBMuiRa/cOtbPBTpvZ4Mq0B/z00hqDIrAtuXz+leKJ5InD0DiTnrEDzFkZQu3z4VAkAWWCsNVQWuGHczuM6eaH35DaxWFf4pstE/bt7b6HKwyllXE+jJ+aNYSS53y4AD9cXg7dVs+joyk2TieN0zznW5c6iiN/jorqVdpj1zWa+19+ZbWGQBnD3t3+zmnE8NTqVWh5Pp5knFj3dv+B3p1+6gO7l57KzGx/olrAcX8Z31BgLDVClMwadjm6/P5i9OJi9OP95Sj/7kU+uhy8+GH054TxjG9H9pwvvyULFJ4KYk8wUGE/hAdmdlkf8DEMaw2KRrEUsnUX3XHn3/IycnKEmWS8pBfIx3y9noLHd05vNiT+q0HXxSeOJsSu+XiyyXiJINHFJ6EhNhUGmnBxTy7siva4sdEomE7QYFCHs7qTXpLcXN/d84xPu/+eVLHrcQcrugiseM6pYcRQRD6JsjXXYOZNZGGeMOnnH2MiTB8= +api: eJztWMFyGzcM/RUOe91IaY461U3TmTSd2GM76UHWbCAS0jLighuSK3vr0b93QK6kVSTLaZtjfDENgg8gCDxg/SgjLIOcTOUKwuhCKQzhBv3aKJSzQroGPUTj6K2Wk2OV0TXee2hkIT1+aTHEX53u5ORRKkcRKfISmsYalUDGn4MjlgVVYQ28il2DciLd/DOqKAvZeDYZDYakZ5aE+jpj37oV0uBMiN7QUhYymmiTIGmXvStlTPqbzV4he9vDyUKC1ob9Ans1MLsAG3DD5xjJeNRyEn2LSRAaRyE79+rlS/6lMShvGsaRE3nTpvjI4nuFoMYIGuJJze29djpPXelxp7oG26IspCO8XMjJdAdKrbVyUwz+rufoh5I+3gPJ3DmLQEMReA/dULBz9rRnKbCz4qsofvrIbn4SHhuPASkGAUJ3BLVRYG0nGFyLdBlxXxlVCQUk5ijQxAr9HQm+TyFA5HvwKvvPq95vXnpUrQ9mjbzdqpgxC+G8gDsS1oQo3CJLw0hciMY73Sr0O6kwQeBDgyqiFtGJgFE4Qt6PFQa8I7EGb4Ain58HJJU2gbrthjCkOT8wCCCB3js/uqM7ErcVij9uLt/vA5GSSCycF9sYmZBVkjMjueFYNh4Zbp+4SNHE7i8PTYP6HXbnyijrlvdZuVxhJwu5cL6GyG/eRc6fEzYChmAcXbVza9QzNnrdsknKyQYjpJr4iD4Yd77Sk2K57jVPunNQqwfZWUgTsQ7P117jrFEdU9/TrmSd0miZbbY2/iuL+0I8tJ2y4OwzJYUhvWXJkLamvWzGBXmIv4LwbemwgnA2F4YeHOsOfTk0OeOy/8F1P7juf3DdppAr7PJIcpmCf75YV9iVkLTL/FZ93YYIsQ1nGSdrDJP93dbydqzg2n9mqtif3lLFEPEqccl/hevZ7uv8eo/3IkOKi6u3QlVASwwn56IM8exglFrMAti9o/nnTc9B32n6UU7jqWfBB6gbi2lwJRfLhWtJ88CK1NYsVEAKLWpZyJZW5O65SxhagzW6BL9sa/aOLwLaGsISHxSiTgf2gIUE6xF0V+KDCZGD26CvTW5eGsmkAx6Da71ikAraEJNwAcaiLrkvOcrhZLy583nftbF0i9LzcyQvDd+I3UrbhiJ6Apu2YA3GwtymzgsRSuvSjNkStLHihp173xG5cFHl1BUcyqInkFC51mrmEK5Bauu+vN1CTJfOLS2OfKNGr53G2ZEgzRg1hgDLk29z6MGF0LhGy4/6YgHK0DIXvegRjl0yJN7Q0ppQjcQFdaINTxwdnLFOgTV/oxZAWjB5MEys8OA+NykSI40RjA2zM1tiYdDqRI176HmXEJU1SLGftFj9+TTOu8fdpW9RJ4K477GGwHfZ2LxdnrJ1pttszu1+/VSvHUUwlIgZ/NxED74TAb3pA7CNO1hHS3FvYiVA/MLuiFhBFBlujiHFKclzZzgBMhqQa/8OjXfRzdvF6IK6A3567YhQRbEll2+/UjqRPfEYW0/5GXvAiahibMJkPFZZwJmgXD3WToXx0o1TuoXxT6z24rAvyc2WCYf2dt/DNcbK6TQfpk/NBmIlJ3K8gjBevxr7rV5Az1Nsmk5ab+VEbl3qKY79OSqqN3lPXDZIt7/9LhoLkTNGfLj+U/KIEbjVm9jJyXRWSGbd6/0Hen/6qQ/sQXoaWrjhRLWC4/4iC7mdwydy/TMf4zvXkIieoMZhXA7O7lI54kMcNxYMz1c5Do99yKa90fWrRLQJZlbIisM6mcrHxzkE/ODtZsPiLy36/tJp3mDKnExnm0JWCBp9ijNPpjnbkeKLW3ZhV4nH3Yrnu3yCu30Tz+rOBi9/dXlzKws57/8lUqdWJj3c80XgPofOpVAkkkiyR2mBlm2iVpkx+ecfxQhALg== sidebar_class_name: "post api-method" info_path: openapi/kas custom_edit_url: null diff --git a/docs/openapi/kas.info.mdx b/docs/openapi/kas.info.mdx index b3299f6..278a1f3 100644 --- a/docs/openapi/kas.info.mdx +++ b/docs/openapi/kas.info.mdx @@ -1,7 +1,7 @@ --- id: kas title: "kas" -description: "[Preprocessed on 2025-06-09T20:36:02.680Z]" +description: "" sidebar_label: Introduction sidebar_position: 0 hide_title: true @@ -29,7 +29,7 @@ import Export from "@theme/ApiExplorer/Export"; -[Preprocessed on 2025-06-09T20:36:02.680Z] + \ No newline at end of file diff --git a/docs/openapi/wellknownconfiguration-well-known-service-get-well-known-configuration.api.mdx b/docs/openapi/wellknownconfiguration-well-known-service-get-well-known-configuration.api.mdx index b783b8b..d116615 100644 --- a/docs/openapi/wellknownconfiguration-well-known-service-get-well-known-configuration.api.mdx +++ b/docs/openapi/wellknownconfiguration-well-known-service-get-well-known-configuration.api.mdx @@ -5,7 +5,7 @@ description: "GetWellKnownConfiguration" sidebar_label: "GetWellKnownConfiguration" hide_title: true hide_table_of_contents: true -api: eJytVlFvGzcM/iuE9no5pxlWbH5akKVFt2EtmnQDFhsuLfHu1Oqom6Rz4gX+7wN158SxkzQPe/KZpCjyI/mJtyphHdX0Sl2Tc1/ZX7P2XNm6D5is5/Ivcu43EV9QWFlNal4o39GgfWfU9KUHy7eU7mRnu6aqUIFi5zlSVNNbdXJ8LD+Gog62yxZTddFrTTGqQmnPiTiJCXadszo7mXyJYnerom6oRflK647UVPnlF9JJFaoLEniywy0Pos3mNjmx13ux7btBY6yo0H144NAzva/U9OruYu6dU5ti53+7pLAriSlYrnclS+8dIe+KMARc7wq+EUkKPW3mxR5+n/9E19NnCNQFisQpAoJZM7ZWo3NrEOcGVmIF143VDWhkWBKQTQ2FGYPkUwDCkId8DfHL1xi3fAbSfYh2RaLudRp8FuAD4IzB2ZjAV4M0lnAKXfCm1xTupGAj0E1HOpGB5CFSAs8k+tRQpBnDCoNFTnJ+GYl1ViKvtwqwbKQzKAIyUAg+lDOeMVw2BL9evP/jHohcZ6h8gC1GNg4mOZhSWmBsjdr72lHZBZ/8sq/KbK82B1hf5MT3wB7Q6AMZMJhwC4v2HG1MlmtJobLkTJzxWIIWOwHgiTrFEt4xRN8SOOS6x5piAdvbZwytrZskNYx91/kgcC7XUkFMUp+HEJTwxgegG2w7RwVYQWvMiuv7C8DZrwLhXUYC150nMoAC+YxhaNMyI24ooXVxqCCmffAxiIlctswVr2lsuWubGqk5ZMi3aeRiiXQb1AtKuy3JtrZjdGqzuS/vkwz1caSnJ2euQhdps9nkVqiwd+mQwc6lCf9P/jK0YzVSSaHGAmZOZ58Wle/ZCGsT960INbImR0YVqudM3KpQllforFlgqPtWopNE0DjLtKAbTWTygXuHhUIXCM16QTc2JiHmjkJrY7SeF4bY5gOBou+DFicN9jFlYYXWkVl0gbTnAU7xt8wdqgrl+7Tw1SIg15SjtJJRm9srx5ooMLqswhVah0snhjJWC+fzK9Ez9qkhTpkFMgAPyyHdEhOmPoJAWYwTFxvfOyMzI7zBfTtSkq/gahz/0OnyzBuaHwhK4YKWYsT60do8jOAUDK3ISVGPKtQyZZmoYPRwGJJlOOfa2diUcMpr6OMTR3fOOK/R2X9lMNmATIW4kenZDf8iI1GOczp/RjVQVKbze9fLdfaonSVO5cCIYv7tNh60hy+iyrA/BmLlQ4tJ3krLGNbDZcu+fuyuZ17IzXPa/VKdeU5oOT8mGJY2BQxriBTsCMAWd3Se64G2EH6WcAbC27JbzDhl+fCaPeLkuRfnlNcPKOvMM5NOsCWXl6eUTwyRBEp94KGMo8MpNCl1cTqZ6EEgnaB9OzFex0ntJ7nd4uQ7MTt6SLhqs2XC3fueW/9aSo2XXbKm3CGYGjVVk1JWy6NMURPfESdTHe1vZ5HCikLMe1cfnJqqbeAjEUrUB6N3PujgfUd8+csb6Bwm6Sv49PF3JctTlCXGprWaXs2FcSq/uyI+vvIe3HL1QYDxsreSAc9wcnzyw9Hx66Pjny5Pjqffv54en5Svf3z19xxUoSSN4dzqlTR152NqMb8JjO2z79P+zXeDkOgmTTqHVjbKAZ/bEd4rtQOvykv9IwDPC9X4mMT89naJkT4Ft9mI+J+ewghP3rmEgqdX802hGkJDIVfkK62F6LSmTgo7zvThuyeQ3zXB2/NLtdn8B5xsg9Y= +api: eJytVk1zGzcM/SsY9rpepT3qVE/qZNJ2mk6ctAfLo0AkdpcJF9zyQ7bq2f/eAXdly5Lt5NCTVgAIAg/AI+5Uwjaq5ZW6Iee+sr9h7bmxbQ6YrOf6b3LuNxFfUthaTeq6Un6gSfvOqOX3HqzfUrqXvT40VZUKFAfPkaJa3qmfXr2SH0NRBzsUi6W6zFpTjKpS2nMiTmKCw+CsLk4WX6LY3amoO+pRvtJuILVUfvOFdFKVGoIEnux0y6Noi7lNTuz1UWzHbtAYKyp0fz5y6JneN2p5dX8xZ+fUWB387zcUDiUxBcvtoWTjvSPkQxGGgLtDwTciSSHTeF0d4ff5L3SZPkOgIVAkThEQzI6xtxqd24E4N7AVK7jprO5AI8OGgGzqKKwYJJ8KEKY85GuKX77muOUzkM4h2i2JOus0+azAB8AVg7MxgW8maazhHIbgTdYU7qVgI9DtQDqRgeQhUgLPJPrUUaQVwxaDRU5yfhOJdVEi7/YKsGykMygCMlAIPtQrXjF87Ah+vXz/xwMQpc7Q+AB7jGycTEowtbTA3Bqt962jegg++U1u6mKvxhOsL0viR2BPaORABgwm3MOiPUcbk+VWUmgsORNXPJegx0EAeKZOsYZ3DNH3BA65zdhSrGB/+4qht22XpIYxD4MPAudmJxXEJPV5DEENb3wAusV+cFSBFbTmrLh9uACc/SoQ3mckcN17IgMokK8YpjatC+KGEloXpwpiOgYfg5jIZZtS8ZbmlruxqZOaQ4F8n0Yplkj3QX1Hafcl2dd2jk6N40N5n2WoDzM9PTtzDbpI4ziWVmgwu3TKYBfShP8nfxk6sJqppFJzAQuns0/rxmc2wtrEuRehRtbkyKhKZS7ErSpleYvOmjWGNvcSnSSCxlmmNd1qIlMOPDisFLpAaHZrurUxCTEPFHobo/W8NsS2HAgUfQ5anHSYYyrCBq0jsx4Cac8TnOJvUzpUVcrntPbNOiC3VKK0klFf2qvEmigwuqLCLVqHGyeGMlZr58srkRlz6ohTYYECwONySLfEhClHECireeJi57MzMjPCG5z7mZJ8A1fz+IdB16+9oesTQS1c0FOM2D5Zm8cRnIOhLTkp6lmDWqasEBXMHk5DsgwX3DobuxrOeQc5PnP04IzzGp39VwaTDchUiBuZnsPwLwsS9Tyn1y+oJooqdP7gerMrHrWzxKmeGFHMv93Gk/b0RVQF9qdAbHzoMclbaRnDbrpsk9un7nrhhRxf0h6X6rXnhJbLY4JhY1PAsINIwc4A7HFH57mdaAvhZwlnIrw9u8WCU5FPr9kTTl56cc5594iyXntm0gn25PL9KZUTUySBUg48lXF2uIQupSEuFws9CaQTtO8Xxuu4aP2itFtc/CBmZ48JV417Jjy876X1r6fUedklWyodgqlTS7WoZbU8KxS18ANxMs3Z8XYWKWwpxLJ35eDUUu0Dn4lQoj4ZvYtJB+8H4o+/vIHBYZK+gk8ffleyPEVZYmzaqeXVtTBO4w9XxKdX3pNbVKUktunP9kfp1MHH1GMhesb+xUfn2N19dye6TYvBoZU1cUr6bsbsSh1gpsqm/gRq15XqfExifne3wUifghtHEf+TKcw5l0VKeHV5dT1WqiM0FArMX2kn7KU1DVKteVBPHzPB8b6yby8+qnH8D13nd+Q= sidebar_class_name: "get api-method" info_path: openapi/wellknownconfiguration custom_edit_url: null diff --git a/docs/openapi/wellknownconfiguration.info.mdx b/docs/openapi/wellknownconfiguration.info.mdx index 3f54203..07acd14 100644 --- a/docs/openapi/wellknownconfiguration.info.mdx +++ b/docs/openapi/wellknownconfiguration.info.mdx @@ -1,7 +1,7 @@ --- id: wellknownconfiguration title: "wellknownconfiguration" -description: "[Preprocessed on 2025-06-09T20:36:02.681Z]" +description: "" sidebar_label: Introduction sidebar_position: 0 hide_title: true @@ -29,7 +29,7 @@ import Export from "@theme/ApiExplorer/Export"; -[Preprocessed on 2025-06-09T20:36:02.681Z] + \ No newline at end of file diff --git a/specs-processed/authorization/authorization.openapi.yaml b/specs-processed/authorization/authorization.openapi.yaml index eca8ff1..281ba00 100644 --- a/specs-processed/authorization/authorization.openapi.yaml +++ b/specs-processed/authorization/authorization.openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: authorization - description: '[Preprocessed on 2025-06-09T20:38:26.420Z] ' + description: '' version: v1 paths: /v1/authorization: diff --git a/specs-processed/authorization/v2/authorization.openapi.yaml b/specs-processed/authorization/v2/authorization.openapi.yaml index 8b71362..b939907 100644 --- a/specs-processed/authorization/v2/authorization.openapi.yaml +++ b/specs-processed/authorization/v2/authorization.openapi.yaml @@ -2,7 +2,7 @@ openapi: 3.1.0 info: version: v2 title: authorization.v2 - description: '[Preprocessed on 2025-06-09T20:38:26.422Z] ' + description: '' paths: /authorization.v2.AuthorizationService/GetDecision: post: diff --git a/specs-processed/common/common.openapi.yaml b/specs-processed/common/common.openapi.yaml index 59a0602..c57bd97 100644 --- a/specs-processed/common/common.openapi.yaml +++ b/specs-processed/common/common.openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: common - description: '[Preprocessed on 2025-06-09T20:38:26.425Z] ' + description: '' version: v1 paths: {} components: diff --git a/specs-processed/entity/entity.openapi.yaml b/specs-processed/entity/entity.openapi.yaml index 1a1ddc2..2148af6 100644 --- a/specs-processed/entity/entity.openapi.yaml +++ b/specs-processed/entity/entity.openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: entity - description: '[Preprocessed on 2025-06-09T20:38:26.426Z] ' + description: '' version: v1 paths: {} components: diff --git a/specs-processed/entityresolution/entity_resolution.openapi.yaml b/specs-processed/entityresolution/entity_resolution.openapi.yaml index 8f39830..072c54f 100644 --- a/specs-processed/entityresolution/entity_resolution.openapi.yaml +++ b/specs-processed/entityresolution/entity_resolution.openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: entityresolution - description: '[Preprocessed on 2025-06-09T20:38:26.427Z] ' + description: '' version: v1 paths: /entityresolution/resolve: diff --git a/specs-processed/kas/kas.openapi.yaml b/specs-processed/kas/kas.openapi.yaml index 67214a7..d1ce3dc 100644 --- a/specs-processed/kas/kas.openapi.yaml +++ b/specs-processed/kas/kas.openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: kas - description: '[Preprocessed on 2025-06-09T20:38:26.428Z] ' + description: '' version: v1 paths: /kas/v2/kas_public_key: diff --git a/specs-processed/wellknownconfiguration/wellknown_configuration.openapi.yaml b/specs-processed/wellknownconfiguration/wellknown_configuration.openapi.yaml index 0df77f5..2be8768 100644 --- a/specs-processed/wellknownconfiguration/wellknown_configuration.openapi.yaml +++ b/specs-processed/wellknownconfiguration/wellknown_configuration.openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: wellknownconfiguration - description: '[Preprocessed on 2025-06-09T20:38:26.429Z] ' + description: '' version: v1 paths: /.well-known/opentdf-configuration: From f6231b2eb289df68dc0ff6518bf278a7d84395eb Mon Sep 17 00:00:00 2001 From: b-long Date: Tue, 10 Jun 2025 17:40:57 -0400 Subject: [PATCH 22/37] Control languages shown in the UI --- docusaurus.config.ts | 94 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index d160a8a..3144a97 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -237,6 +237,100 @@ const config: Config = { // template: '#zoom-template', // }, }, + + languageTabs: [ + { + highlight: "python", + language: "python", + logoClass: "python", + }, + { + highlight: "bash", + language: "curl", + logoClass: "curl", + }, + { + highlight: "csharp", + language: "csharp", + logoClass: "csharp", + }, + // { + // highlight: "go", + // language: "go", + // logoClass: "go", + // }, + // { + // highlight: "javascript", + // language: "nodejs", + // logoClass: "nodejs", + // }, + { + highlight: "ruby", + language: "ruby", + logoClass: "ruby", + }, + { + highlight: "php", + language: "php", + logoClass: "php", + }, + // { + // highlight: "java", + // language: "java", + // logoClass: "java", + // variant: "unirest", + // }, + { + highlight: "powershell", + language: "powershell", + logoClass: "powershell", + }, + { + highlight: "dart", + language: "dart", + logoClass: "dart", + }, + // { + // highlight: "javascript", + // language: "javascript", + // logoClass: "javascript", + // }, + { + highlight: "c", + language: "c", + logoClass: "c", + }, + { + highlight: "objective-c", + language: "objective-c", + logoClass: "objective-c", + }, + { + highlight: "ocaml", + language: "ocaml", + logoClass: "ocaml", + }, + { + highlight: "r", + language: "r", + logoClass: "r", + }, + { + highlight: "swift", + language: "swift", + logoClass: "swift", + }, + { + highlight: "kotlin", + language: "kotlin", + logoClass: "kotlin", + }, + { + highlight: "rust", + language: "rust", + logoClass: "rust", + }, + ], } satisfies Preset.ThemeConfig, plugins: [ [ From de35a5ea2949ed2d01190779092d73f83ffffb4f Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 09:37:56 -0400 Subject: [PATCH 23/37] Add sample files, to help debugging --- specs-processed/bookstore.yaml | 718 ++++++++++++++++++ specs-processed/petstore.yaml | 1271 ++++++++++++++++++++++++++++++++ 2 files changed, 1989 insertions(+) create mode 100644 specs-processed/bookstore.yaml create mode 100644 specs-processed/petstore.yaml diff --git a/specs-processed/bookstore.yaml b/specs-processed/bookstore.yaml new file mode 100644 index 0000000..a012b81 --- /dev/null +++ b/specs-processed/bookstore.yaml @@ -0,0 +1,718 @@ +openapi: 3.0.0 +servers: + - url: https://api.examplebookstore.com/v1 + description: Production server + - url: https://sandbox.api.examplebookstore.com/v1 + description: Sandbox server + - url: http://localhost:4010 + description: Local development mock server +info: + title: Bookstore API + version: 1.0.0 + description: | + Welcome to the Bookstore API. This API provides access to a rich collection of books, author details, and genre classifications. + You can use this API to browse our catalog, search for specific titles, and manage book-related data. + + ## Key Features: + * Access detailed information about books, including titles, ISBNs, authors, and genres. + * Manage author profiles and their literary works. + * Explore books categorized by various genres. + + This specification is written in OpenAPI 3.0.0 format. + contact: + name: Bookstore API Support + email: support@examplebookstore.com + url: https://developer.examplebookstore.com/support + license: + name: Apache 2.0 + url: "http://www.apache.org/licenses/LICENSE-2.0.html" + x-logo: + url: "https://examplebookstore.com/assets/logo.png" + altText: "Bookstore Logo" +tags: + - name: Books + description: Operations related to books in the catalog. + x-displayName: Books + - name: Authors + description: Operations related to book authors. + x-displayName: Authors + - name: Genres + description: Operations related to book genres. + x-displayName: Genres + - name: Schema-Book + x-displayName: Book Schema + description: | + + - name: Schema-Author + x-displayName: Author Schema + description: | + + - name: Schema-Genre + x-displayName: Genre Schema + description: | + +x-tagGroups: + - name: Core Resources + tags: + - Books + - Authors + - Genres + - name: Data Models + tags: + - Schema-Book + - Schema-Author + - Schema-Genre +paths: + /books: + get: + tags: + - Books + summary: List all books + description: Retrieves a paginated list of all books in the catalog. Supports filtering by genre and author. + operationId: listBooks + parameters: + - name: limit + in: query + description: Maximum number of books to return. + required: false + schema: + type: integer + format: int32 + default: 20 + minimum: 1 + maximum: 100 + - name: offset + in: query + description: Number of books to skip for pagination. + required: false + schema: + type: integer + format: int32 + default: 0 + minimum: 0 + - name: genreId + in: query + description: Filter books by a specific genre ID. + required: false + schema: + type: string + format: uuid + - name: authorId + in: query + description: Filter books by a specific author ID. + required: false + schema: + type: string + format: uuid + responses: + "200": + description: A list of books. + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Book" + "400": + description: Invalid query parameters. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + post: + tags: + - Books + summary: Add a new book + description: Adds a new book to the catalog. + operationId: createBook + requestBody: + description: Book object to be added. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/BookInput" + responses: + "201": + description: Book created successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Book" + "400": + description: Invalid input data for the book. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "409": + description: A book with the same ISBN already exists. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "/books/{bookId}": + parameters: + - name: bookId + in: path + required: true + description: Unique identifier of the book. + schema: + type: string + format: uuid + get: + tags: + - Books + summary: Get book by ID + description: Retrieves detailed information for a specific book. + operationId: getBookById + responses: + "200": + description: Detailed information about the book. + content: + application/json: + schema: + $ref: "#/components/schemas/Book" + "404": + description: Book not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + put: + tags: + - Books + summary: Update an existing book + description: Updates the information for an existing book. + operationId: updateBook + requestBody: + description: Book object with updated information. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/BookInput" + responses: + "200": + description: Book updated successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Book" + "400": + description: Invalid input data for the book. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Book not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + delete: + tags: + - Books + summary: Delete a book + description: Removes a book from the catalog. + operationId: deleteBook + responses: + "204": + description: Book deleted successfully. + "404": + description: Book not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /authors: + get: + tags: + - Authors + summary: List all authors + description: Retrieves a list of all authors. + operationId: listAuthors + parameters: + - name: limit + in: query + description: Maximum number of authors to return. + required: false + schema: + type: integer + format: int32 + default: 20 + - name: offset + in: query + description: Number of authors to skip for pagination. + required: false + schema: + type: integer + format: int32 + default: 0 + responses: + "200": + description: A list of authors. + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Author" + post: + tags: + - Authors + summary: Add a new author + description: Adds a new author to the system. + operationId: createAuthor + requestBody: + description: Author object to be added. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/AuthorInput" + responses: + "201": + description: Author created successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Author" + "400": + description: Invalid input data for the author. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "/authors/{authorId}": + parameters: + - name: authorId + in: path + required: true + description: Unique identifier of the author. + schema: + type: string + format: uuid + get: + tags: + - Authors + summary: Get author by ID + description: Retrieves detailed information for a specific author. + operationId: getAuthorById + responses: + "200": + description: Detailed information about the author. + content: + application/json: + schema: + $ref: "#/components/schemas/Author" + "404": + description: Author not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + put: + tags: + - Authors + summary: Update an existing author + description: Updates the information for an existing author. + operationId: updateAuthor + requestBody: + description: Author object with updated information. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/AuthorInput" + responses: + "200": + description: Author updated successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Author" + "400": + description: Invalid input data for the author. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Author not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + delete: + tags: + - Authors + summary: Delete an author + description: Removes an author from the system. Associated books may need to be handled or re-assigned. + operationId: deleteAuthor + responses: + "204": + description: Author deleted successfully. + "404": + description: Author not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /genres: + get: + tags: + - Genres + summary: List all genres + description: Retrieves a list of all book genres. + operationId: listGenres + responses: + "200": + description: A list of genres. + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Genre" + post: + tags: + - Genres + summary: Add a new genre + description: Adds a new genre to the system. + operationId: createGenre + requestBody: + description: Genre object to be added. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/GenreInput" + responses: + "201": + description: Genre created successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Genre" + "400": + description: Invalid input data for the genre. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "409": + description: A genre with the same name already exists. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "/genres/{genreId}": + parameters: + - name: genreId + in: path + required: true + description: Unique identifier of the genre. + schema: + type: string + format: uuid + get: + tags: + - Genres + summary: Get genre by ID + description: Retrieves detailed information for a specific genre. + operationId: getGenreById + responses: + "200": + description: Detailed information about the genre. + content: + application/json: + schema: + $ref: "#/components/schemas/Genre" + "404": + description: Genre not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + put: + tags: + - Genres + summary: Update an existing genre + description: Updates the information for an existing genre. + operationId: updateGenre + requestBody: + description: Genre object with updated information. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/GenreInput" + responses: + "200": + description: Genre updated successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Genre" + "400": + description: Invalid input data for the genre. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Genre not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + delete: + tags: + - Genres + summary: Delete a genre + description: Removes a genre from the system. + operationId: deleteGenre + responses: + "204": + description: Genre deleted successfully. + "404": + description: Genre not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" +components: + schemas: + Book: + type: object + required: + - id + - title + - isbn + - authorIds + - genreIds + properties: + id: + type: string + format: uuid + description: Unique identifier for the book. + readOnly: true + example: "d290f1ee-6c54-4b01-90e6-d701748f0851" + title: + type: string + description: The title of the book. + example: "The Great Novel" + isbn: + type: string + description: International Standard Book Number. + example: "978-3-16-148410-0" + publicationDate: + type: string + format: date + description: The date the book was published. + example: "2023-05-15" + description: + type: string + description: A short summary or description of the book. + example: "An epic tale of adventure and discovery." + coverImageUrl: + type: string + format: url + description: URL to the book's cover image. + example: "https://examplebookstore.com/covers/great-novel.jpg" + authorIds: + type: array + description: List of author IDs associated with this book. + items: + type: string + format: uuid + example: "a1b2c3d4-e5f6-7890-1234-567890abcdef" + genreIds: + type: array + description: List of genre IDs this book belongs to. + items: + type: string + format: uuid + example: "f0e1d2c3-b4a5-6789-0123-456789abcdef" + BookInput: + type: object + required: + - title + - isbn + - authorIds + - genreIds + properties: + title: + type: string + description: The title of the book. + example: "The Great Novel" + isbn: + type: string + description: International Standard Book Number. + example: "978-3-16-148410-0" + publicationDate: + type: string + format: date + description: The date the book was published. + example: "2023-05-15" + description: + type: string + description: A short summary or description of the book. + example: "An epic tale of adventure and discovery." + coverImageUrl: + type: string + format: url + description: URL to the book's cover image. + example: "https://examplebookstore.com/covers/great-novel.jpg" + authorIds: + type: array + description: List of author IDs associated with this book. + items: + type: string + format: uuid + example: "a1b2c3d4-e5f6-7890-1234-567890abcdef" + genreIds: + type: array + description: List of genre IDs this book belongs to. + items: + type: string + format: uuid + example: "f0e1d2c3-b4a5-6789-0123-456789abcdef" + Author: + type: object + required: + - id + - firstName + - lastName + properties: + id: + type: string + format: uuid + description: Unique identifier for the author. + readOnly: true + example: "a1b2c3d4-e5f6-7890-1234-567890abcdef" + firstName: + type: string + description: Author's first name. + example: "Jane" + lastName: + type: string + description: Author's last name. + example: "Doe" + biography: + type: string + description: A short biography of the author. + example: "Jane Doe is a renowned author of contemporary fiction." + birthDate: + type: string + format: date + description: Author's date of birth. + example: "1980-01-20" + AuthorInput: + type: object + required: + - firstName + - lastName + properties: + firstName: + type: string + description: Author's first name. + example: "Jane" + lastName: + type: string + description: Author's last name. + example: "Doe" + biography: + type: string + description: A short biography of the author. + example: "Jane Doe is a renowned author of contemporary fiction." + birthDate: + type: string + format: date + description: Author's date of birth. + example: "1980-01-20" + Genre: + type: object + required: + - id + - name + properties: + id: + type: string + format: uuid + description: Unique identifier for the genre. + readOnly: true + example: "f0e1d2c3-b4a5-6789-0123-456789abcdef" + name: + type: string + description: The name of the genre. + example: "Science Fiction" + description: + type: string + description: A brief description of the genre. + example: "Literature that explores imaginative concepts based on scientific or technological advancements." + GenreInput: + type: object + required: + - name + properties: + name: + type: string + description: The name of the genre. + example: "Science Fiction" + description: + type: string + description: A brief description of the genre. + example: "Literature that explores imaginative concepts based on scientific or technological advancements." + Error: + type: object + required: + - code + - message + properties: + code: + type: string + description: An error code. + example: "NOT_FOUND" + message: + type: string + description: A human-readable error message. + example: "The requested resource was not found." + details: + type: object + additionalProperties: true + description: Additional details about the error. + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-KEY + description: API key for authentication. Use `test-api-key` for testing purposes. + BearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + description: Bearer token for authentication using JWT. + OAuth2Flow: + type: oauth2 + description: OAuth2 authentication for accessing protected resources. + flows: + authorizationCode: + authorizationUrl: https://auth.examplebookstore.com/oauth/authorize + tokenUrl: https://auth.examplebookstore.com/oauth/token + scopes: + "books:read": Read access to books + "books:write": Write access to books + "authors:read": Read access to authors + "authors:write": Write access to authors + "genres:read": Read access to genres + "genres:write": Write access to genres +security: + - ApiKeyAuth: [] + - BearerAuth: [] + - OAuth2Flow: + - "books:read" + - "authors:read" + - "genres:read" \ No newline at end of file diff --git a/specs-processed/petstore.yaml b/specs-processed/petstore.yaml new file mode 100644 index 0000000..c31ac04 --- /dev/null +++ b/specs-processed/petstore.yaml @@ -0,0 +1,1271 @@ +openapi: 3.0.0 +servers: + - url: https://petstore.swagger.io/v2 + description: Default server + - url: https://petstore.swagger.io/sandbox + description: Sandbox server + - url: http://127.0.0.1:4010 + description: Prism Mock API (local) +info: + description: | + This is a sample server Petstore server. + You can find out more about Swagger at + [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). + For this sample, you can use the api key `special-key` to test the authorization filters. + + ## Introduction + This API is documented in **OpenAPI format** and is based on + [Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team. + It was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo) + tool and [ReDoc](https://github.com/Redocly/redoc) documentation. In addition to standard + OpenAPI syntax we use a few [vendor extensions](https://github.com/Redocly/redoc/blob/master/docs/redoc-vendor-extensions.md). + + ## OpenAPI Specification + This API is documented in **OpenAPI format** and is based on + [Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team. + It was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo) + tool and [ReDoc](https://github.com/Redocly/redoc) documentation. In addition to standard + OpenAPI syntax we use a few [vendor extensions](https://github.com/Redocly/redoc/blob/master/docs/redoc-vendor-extensions.md). + + ## Cross-Origin Resource Sharing + This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). + And that allows cross-domain communication from the browser. + All responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site. + + ## Authentication + + Petstore offers two forms of authentication: + - API Key + - OAuth2 + + OAuth2 - an open protocol to allow secure authorization in a simple + and standard method from web, mobile and desktop applications. + + version: 2.0.0 + title: Swagger Petstore YAML + termsOfService: "http://swagger.io/terms/" + contact: + name: API Support + email: apiteam@swagger.io + url: https://github.com/Redocly/redoc + x-logo: + url: "https://redocly.github.io/redoc/petstore-logo.png" + altText: Petstore logo + x-dark-logo: + url: "/img/petstore-logo-dark.png" + altText: "Petstore dark logo" + license: + name: Apache 2.0 + url: "http://www.apache.org/licenses/LICENSE-2.0.html" +externalDocs: + description: Find out how to create Github repo for your OpenAPI spec. + url: "https://github.com/Rebilly/generator-openapi-repo" +tags: + - name: pet + description: Everything about your Pets + x-displayName: Pets + - name: store + description: Access to Petstore orders + x-displayName: Petstore Orders + - name: user + description: Operations about user + x-displayName: Users + - name: pet_model + x-displayName: The Pet Model + description: | + + - name: store_model + x-displayName: The Order Model + description: | + +x-tagGroups: + - name: General + tags: + - pet + - store + - name: User Management + tags: + - user + - name: Models + tags: + - pet_model + - store_model +paths: + /pet: + parameters: + - name: Accept-Language + in: header + description: "The language you prefer for messages. Supported values are en-AU, en-CA, en-GB, en-US" + example: en-US + required: false + schema: + type: string + default: en-AU + - name: cookieParam + in: cookie + description: Some cookie + required: true + schema: + type: integer + format: int64 + post: + tags: + - pet + summary: Add a new pet to the store + description: Add new pet to the store inventory. + operationId: addPet + responses: + "405": + description: Invalid input + security: + - petstore_auth: + - "write:pets" + - "read:pets" + - api_key: [] + - ApiKeyAuth: [] + - BasicAuth: [] + - BearerAuth: [] + - OAuth2: [] + - OpenID: [] + + x-codeSamples: + - lang: "C#" + source: | + PetStore.v1.Pet pet = new PetStore.v1.Pet(); + pet.setApiKey("your api key"); + pet.petType = PetStore.v1.Pet.TYPE_DOG; + pet.name = "Rex"; + // set other fields + PetStoreResponse response = pet.create(); + if (response.statusCode == HttpStatusCode.Created) + { + // Successfully created + } + else + { + // Something wrong -- check response for errors + Console.WriteLine(response.getRawResponse()); + } + - lang: PHP + label: Custom + source: | + $form = new \PetStore\Entities\Pet(); + $form->setPetType("Dog"); + $form->setName("Rex"); + // set other fields + try { + $pet = $client->pets()->create($form); + } catch (UnprocessableEntityException $e) { + var_dump($e->getErrors()); + } + requestBody: + $ref: "#/components/requestBodies/Pet" + put: + tags: + - pet + summary: Update an existing pet + description: "" + operationId: updatePet + responses: + "400": + description: Invalid ID supplied + "404": + description: Pet not found + "405": + description: Validation exception + security: + - petstore_auth: + - "write:pets" + - "read:pets" + x-codeSamples: + - lang: PHP + source: | + $form = new \PetStore\Entities\Pet(); + $form->setPetId(1); + $form->setPetType("Dog"); + $form->setName("Rex"); + // set other fields + try { + $pet = $client->pets()->update($form); + } catch (UnprocessableEntityException $e) { + var_dump($e->getErrors()); + } + requestBody: + $ref: "#/components/requestBodies/Pet" + "/pet/{petId}": + get: + tags: + - pet + summary: Find pet by ID + description: Returns a single pet + operationId: getPetById + parameters: + - name: petId + in: path + description: ID of pet to return + required: true + deprecated: true + schema: + type: integer + format: int64 + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + $ref: "#/components/schemas/Pet" + + "400": + description: Invalid ID supplied + "404": + description: Pet not found + security: + - api_key: [] + post: + tags: + - pet + summary: Updates a pet in the store with form data + description: "" + operationId: updatePetWithForm + parameters: + - name: petId + in: path + description: ID of pet that needs to be updated + required: true + schema: + type: integer + format: int64 + responses: + "405": + description: Invalid input + security: + - petstore_auth: + - "write:pets" + - "read:pets" + requestBody: + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + name: + description: Updated name of the pet + type: string + status: + description: Updated status of the pet + type: string + delete: + tags: + - pet + summary: Deletes a pet + description: "" + operationId: deletePet + parameters: + - name: api_key + in: header + required: false + schema: + type: string + example: "Bearer " + - name: petId + in: path + description: Pet id to delete + required: true + schema: + type: integer + format: int64 + responses: + "400": + description: Invalid pet value + security: + - petstore_auth: + - "write:pets" + - "read:pets" + "/pet/{petId}/uploadImage": + post: + tags: + - pet + summary: uploads an image + description: "" + operationId: uploadFile + parameters: + - name: petId + in: path + description: ID of pet to update + required: true + schema: + type: integer + format: int64 + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/ApiResponse" + security: + - petstore_auth: + - "write:pets" + - "read:pets" + requestBody: + content: + application/octet-stream: + schema: + type: string + format: binary + /pet/findByStatus: + get: + tags: + - pet + summary: Finds Pets by status + description: Multiple status values can be provided with comma separated strings + operationId: findPetsByStatus + parameters: + - name: status + in: query + description: Status values that need to be considered for filter + required: true + style: form + schema: + type: array + minItems: 1 + maxItems: 3 + items: + type: string + enum: + - available + - pending + - sold + default: available + responses: + "200": + description: successful operation + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + type: array + items: + $ref: "#/components/schemas/Pet" + "400": + description: Invalid status value + security: + - api_key: [] + /pet/findByTags: + get: + tags: + - pet + summary: Finds Pets by tags + description: >- + Multiple tags can be provided with comma separated strings. Use tag1, + tag2, tag3 for testing. + operationId: findPetsByTags + deprecated: true + parameters: + - name: tags + in: query + description: Tags to filter by + required: true + style: form + schema: + type: array + items: + type: string + responses: + "200": + description: successful operation + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + type: array + items: + $ref: "#/components/schemas/Pet" + "400": + description: Invalid tag value + security: + - petstore_auth: + - "write:pets" + - "read:pets" + /store/inventory: + get: + tags: + - store + summary: Returns pet inventories by status + description: Returns a map of status codes to quantities + operationId: getInventory + responses: + "200": + description: successful operation + content: + application/json: + schema: + type: object + additionalProperties: + type: integer + format: int32 + security: + - api_key: [] + /store/order: + post: + tags: + - store + summary: Place an order for a pet + description: "" + operationId: placeOrder + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/Order" + application/xml: + schema: + $ref: "#/components/schemas/Order" + "400": + description: Invalid Order + content: + application/json: + example: + status: 400 + message: "Invalid Order" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Order" + examples: + OrderDelivered: + summary: Order delivered + value: + quantity: 4 + shipDate: 2022-10-12 + status: delivered + requestId: 444-4444-444-4444 + OrderPlaced: + summary: Order placed + value: + quantity: 10 + shipDate: 2022-10-01 + status: placed + requestId: 111-222-333-444 + OrderApproved: + summary: Order approved + value: + quantity: 1000 + shipDate: 2022-09-01 + status: approved + requestId: 000-111-222-333 + description: order placed for purchasing the pet + required: true + "/store/order/{orderId}": + get: + tags: + - store + summary: Find purchase order by ID + description: >- + For valid response try integer IDs with value <= 5 or > 10. Other values + will generated exceptions + operationId: getOrderById + parameters: + - name: orderId + in: path + description: ID of pet that needs to be fetched + required: true + schema: + type: integer + format: int64 + minimum: 1 + maximum: 5 + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/Order" + application/xml: + schema: + $ref: "#/components/schemas/Order" + "400": + description: Invalid ID supplied + "404": + description: Order not found + delete: + tags: + - store + summary: Delete purchase order by ID + description: >- + For valid response try integer IDs with value < 1000. Anything above + 1000 or nonintegers will generate API errors + operationId: deleteOrder + parameters: + - name: orderId + in: path + description: ID of the order that needs to be deleted + required: true + schema: + type: string + minimum: 1 + responses: + "400": + description: Invalid ID supplied + "404": + description: Order not found + /store/subscribe: + post: + tags: + - store + summary: Subscribe to the Store events + description: Add subscription for a store events + requestBody: + content: + application/json: + schema: + type: object + properties: + callbackUrl: + type: string + format: uri + description: This URL will be called by the server when the desired event will occur + example: https://myserver.com/send/callback/here + eventName: + type: string + description: Event name for the subscription + enum: + - orderInProgress + - orderShipped + - orderDelivered + example: orderInProgress + required: + - callbackUrl + - eventName + responses: + "201": + description: Subscription added + content: + application/json: + schema: + type: object + properties: + subscriptionId: + type: string + example: AAA-123-BBB-456 + callbacks: + orderInProgress: + "{$request.body#/callbackUrl}?event={$request.body#/eventName}": + servers: + - url: //callback-url.path-level/v1 + description: Path level server 1 + - url: //callback-url.path-level/v2 + description: Path level server 2 + post: + summary: Order in Progress (Summary) + description: A callback triggered every time an Order is updated status to "inProgress" (Description) + externalDocs: + description: Find out more + url: "https://more-details.com/demo" + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + example: "123" + timestamp: + type: string + format: date-time + example: "2018-10-19T16:46:45Z" + status: + type: string + example: "inProgress" + application/xml: + schema: + type: object + properties: + orderId: + type: string + example: "123" + example: | + + + 123 + inProgress + 2018-10-19T16:46:45Z + + responses: + "200": + description: Callback successfully processed and no retries will be performed + content: + application/json: + schema: + type: object + properties: + someProp: + type: string + example: "123" + "299": + description: Response for cancelling subscription + "500": + description: Callback processing failed and retries will be performed + x-codeSamples: + - lang: "C#" + source: | + PetStore.v1.Pet pet = new PetStore.v1.Pet(); + pet.setApiKey("your api key"); + pet.petType = PetStore.v1.Pet.TYPE_DOG; + pet.name = "Rex"; + // set other fields + PetStoreResponse response = pet.create(); + if (response.statusCode == HttpStatusCode.Created) + { + // Successfully created + } + else + { + // Something wrong -- check response for errors + Console.WriteLine(response.getRawResponse()); + } + - lang: PHP + source: | + $form = new \PetStore\Entities\Pet(); + $form->setPetType("Dog"); + $form->setName("Rex"); + // set other fields + try { + $pet = $client->pets()->create($form); + } catch (UnprocessableEntityException $e) { + var_dump($e->getErrors()); + } + put: + description: Order in Progress (Only Description) + servers: + - url: //callback-url.operation-level/v1 + description: Operation level server 1 (Operation override) + - url: //callback-url.operation-level/v2 + description: Operation level server 2 (Operation override) + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + example: "123" + timestamp: + type: string + format: date-time + example: "2018-10-19T16:46:45Z" + status: + type: string + example: "inProgress" + application/xml: + schema: + type: object + properties: + orderId: + type: string + example: "123" + example: | + + + 123 + inProgress + 2018-10-19T16:46:45Z + + responses: + "200": + description: Callback successfully processed and no retries will be performed + content: + application/json: + schema: + type: object + properties: + someProp: + type: string + example: "123" + orderShipped: + "{$request.body#/callbackUrl}?event={$request.body#/eventName}": + post: + description: A callback triggered every time an Order is shipped to the recipient + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + example: "123" + timestamp: + type: string + format: date-time + example: "2018-10-19T16:46:45Z" + estimatedDeliveryDate: + type: string + format: date-time + example: "2018-11-11T16:00:00Z" + responses: + "200": + description: Callback successfully processed and no retries will be performed + orderDelivered: + "http://notificationServer.com?url={$request.body#/callbackUrl}&event={$request.body#/eventName}": + post: + deprecated: true + summary: Order delivered + description: A callback triggered every time an Order is delivered to the recipient + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + example: "123" + timestamp: + type: string + format: date-time + example: "2018-10-19T16:46:45Z" + responses: + "200": + description: Callback successfully processed and no retries will be performed + /user: + post: + tags: + - user + summary: Create user + description: This can only be done by the logged in user. + operationId: createUser + responses: + default: + description: successful operation + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/User" + description: Created user object + required: true + "/user/{username}": + get: + tags: + - user + summary: Get user by user name + description: "" + operationId: getUserByName + parameters: + - name: username + in: path + description: "The name that needs to be fetched. Use user1 for testing. " + required: true + schema: + type: string + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/User" + application/xml: + schema: + $ref: "#/components/schemas/User" + "400": + description: Invalid username supplied + "404": + description: User not found + put: + tags: + - user + summary: Updated user + description: This can only be done by the logged in user. + operationId: updateUser + parameters: + - name: username + in: path + description: name that need to be deleted + required: true + schema: + type: string + responses: + "400": + description: Invalid user supplied + "404": + description: User not found + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/User" + description: Updated user object + required: true + delete: + tags: + - user + summary: Delete user + description: This can only be done by the logged in user. + operationId: deleteUser + parameters: + - name: username + in: path + description: The name that needs to be deleted + required: true + schema: + type: string + responses: + "400": + description: Invalid username supplied + "404": + description: User not found + /user/createWithArray: + post: + tags: + - user + summary: Creates list of users with given input array + description: "" + operationId: createUsersWithArrayInput + responses: + default: + description: successful operation + requestBody: + $ref: "#/components/requestBodies/UserArray" + /user/createWithList: + post: + tags: + - user + summary: Creates list of users with given input list + description: "" + operationId: createUsersWithListInput + responses: + default: + description: successful operation + requestBody: + $ref: "#/components/requestBodies/UserArray" + /user/login: + get: + tags: + - user + summary: Logs user into the system + description: "" + operationId: loginUser + parameters: + - name: username + in: query + description: The user name for login + required: true + schema: + type: string + - name: password + in: query + description: The password for login in clear text + required: true + schema: + type: string + responses: + "200": + description: successful operation + headers: + X-Rate-Limit: + description: calls per hour allowed by the user + schema: + type: integer + format: int32 + X-Expires-After: + description: date in UTC when token expires + schema: + type: string + format: date-time + content: + application/json: + schema: + type: string + examples: + response: + value: OK + application/xml: + schema: + type: string + examples: + response: + value: OK + text/plain: + examples: + response: + value: OK + "400": + description: Invalid username/password supplied + /user/logout: + get: + tags: + - user + summary: Logs out current logged in user session + description: "" + operationId: logoutUser + responses: + default: + description: successful operation +components: + schemas: + ApiResponse: + type: object + properties: + code: + type: integer + format: int32 + type: + type: string + message: + type: string + Cat: + x-tags: + - pet + description: A representation of a cat + allOf: + - $ref: "#/components/schemas/Pet" + - type: object + properties: + huntingSkill: + type: string + description: The measured skill for hunting + default: lazy + example: adventurous + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - huntingSkill + Category: + type: object + properties: + id: + description: Category ID + allOf: + - $ref: "#/components/schemas/Id" + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + type: string + description: Dumb Property + xml: + name: Category + Dog: + description: A representation of a dog + allOf: + - $ref: "#/components/schemas/Pet" + - type: object + properties: + packSize: + type: integer + format: int32 + description: The size of the pack the dog is from + default: 1 + minimum: 1 + required: + - packSize + HoneyBee: + description: A representation of a honey bee + allOf: + - $ref: "#/components/schemas/Pet" + - type: object + properties: + honeyPerDay: + type: number + description: Average amount of honey produced per day in ounces + example: 3.14 + multipleOf: .01 + default: 0 + required: + - honeyPerDay + Id: + type: integer + format: int64 + readOnly: true + Order: + type: object + properties: + id: + description: Order ID + allOf: + - $ref: "#/components/schemas/Id" + petId: + description: Pet ID + allOf: + - $ref: "#/components/schemas/Id" + quantity: + type: integer + format: int32 + minimum: 1 + default: 1 + shipDate: + description: Estimated ship date + type: string + format: date-time + status: + type: string + description: Order Status + enum: + - placed + - approved + - delivered + complete: + description: Indicates whenever order was completed or not + type: boolean + default: false + readOnly: true + requestId: + description: Unique Request Id + type: string + writeOnly: true + xml: + name: Order + Pet: + type: object + required: + - name + - photoUrls + - tags + discriminator: + propertyName: petType + mapping: + cat: "#/components/schemas/Cat" + dog: "#/components/schemas/Dog" + bee: "#/components/schemas/HoneyBee" + properties: + id: + externalDocs: + description: "Find more info here" + url: "https://example.com" + description: Pet ID + allOf: + - $ref: "#/components/schemas/Id" + category: + description: Categories this pet belongs to + allOf: + - $ref: "#/components/schemas/Category" + name: + description: The name given to a pet + type: string + example: Guru + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + maxItems: 20 + xml: + name: photoUrl + wrapped: true + items: + type: string + format: url + friend: + allOf: + - $ref: "#/components/schemas/Pet" + tags: + description: Tags attached to the pet + type: array + minItems: 1 + xml: + name: tag + wrapped: true + items: + $ref: "#/components/schemas/Tag" + status: + type: string + description: Pet status in the store + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + oneOf: + - $ref: "#/components/schemas/Cat" + - $ref: "#/components/schemas/Dog" + - $ref: "#/components/schemas/HoneyBee" + xml: + name: Pet + Tag: + type: object + properties: + id: + description: Tag ID + allOf: + - $ref: "#/components/schemas/Id" + name: + description: Tag name + type: string + minLength: 1 + xml: + name: Tag + User: + type: object + properties: + id: + $ref: "#/components/schemas/Id" + pet: + oneOf: + - $ref: "#/components/schemas/Pet" + - $ref: "#/components/schemas/Tag" + username: + description: User supplied username + type: string + minLength: 4 + example: John78 + firstName: + description: User first name + type: string + minLength: 1 + example: John + lastName: + description: User last name + type: string + minLength: 1 + example: Smith + email: + description: User email address + type: string + format: email + example: john.smith@example.com + password: + type: string + description: >- + User password, MUST contain a mix of upper and lower case letters, + as well as digits + format: password + minLength: 8 + pattern: "/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/" + example: drowssaP123 + phone: + description: User phone number in international format + type: string + pattern: '/^\+(?:[0-9]-?){6,14}[0-9]$/' + example: +1-202-555-0192 + userStatus: + description: User status + type: integer + format: int32 + xml: + name: User + requestBodies: + Pet: + content: + application/json: + schema: + allOf: + - description: My Pet + title: Pettie + - $ref: "#/components/schemas/Pet" + example: + category: + name: Great Dane + sub: + prop1: Just a test property + name: Pepper + photoUrls: + - https://assets.orvis.com/is/image/orvisprd/great-dane + tags: + - name: Great Danes + status: pending + petType: + huntingSkill: lazy + application/xml: + schema: + type: "object" + properties: + name: + type: string + description: hooray + description: Pet object that needs to be added to the store + required: true + UserArray: + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/User" + description: List of user object + required: true + securitySchemes: + petstore_auth: + description: | + Get access to data while protecting your account credentials. + OAuth2 is also a safer and more secure way to give you access. + type: oauth2 + flows: + implicit: + authorizationUrl: "http://petstore.swagger.io/api/oauth/dialog" + scopes: + "write:pets": modify pets in your account + "read:pets": read your pets + api_key: + description: > + For this sample, you can use the api key `special-key` to test the + authorization filters. + type: apiKey + name: api_key + in: header + BasicAuth: + type: http + scheme: basic + BearerAuth: + type: http + scheme: bearer + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key + OpenID: + type: openIdConnect + openIdConnectUrl: https://example.com/.well-known/openid-configuration + OAuth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: https://example.com/oauth/authorize + tokenUrl: https://example.com/oauth/token + scopes: + read: Grants read access + write: Grants write access + admin: Grants access to admin operations +x-webhooks: + newPet: + post: + summary: New pet + description: Information about a new pet in the systems + operationId: newPet + tags: + - pet + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Pet" + responses: + "200": + description: Return a 200 status to indicate that the data was received successfully From 9e9ac8ef53fea57213c5d6dbae302e59a1dee86b Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 09:38:10 -0400 Subject: [PATCH 24/37] Use sample files, to help debugging --- docusaurus.config.ts | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 3144a97..cca18c4 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -879,7 +879,30 @@ ${updatedContent}`, { id: "api", // plugin id docsPluginId: "classic", // configured for preset-classic - config: openApiDocsConfig, // Use the dynamically generated config + config: { + petstore: { + specPath: "specs-processed/petstore.yaml", + outputDir: "docs/petstore", + downloadUrl: + "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/petstore.yaml", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, + } satisfies OpenApiPlugin.Options, + bookstore: { + specPath: "specs-processed/bookstore.yaml", + outputDir: "docs/bookstore", + // downloadUrl: + // "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/bookstore.yaml", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, + } satisfies OpenApiPlugin.Options, + } satisfies Plugin.PluginOptions, + // config: openApiDocsConfig satisfies Plugin.PluginOptions, // Use the dynamically generated config + }, ], require.resolve("docusaurus-lunr-search"), From 1b6e511a83c1ce3088adf5b245941f5c1c29e190 Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 09:42:16 -0400 Subject: [PATCH 25/37] Declare 'sampleConfig' at the start --- docusaurus.config.ts | 49 ++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index cca18c4..1e111b0 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -11,8 +11,34 @@ import matter from "gray-matter"; import listRemote from "./docusaurus-lib-list-remote"; import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs"; import { openApiSpecs, preprocessOpenApiSpecs } from "./preprocessing" +import { ApiPageMetadata, SchemaPageMetadata, SidebarOptions } from "docusaurus-plugin-openapi-docs/src/types"; +import type * as Plugin from "@docusaurus/types/src/plugin"; // --- OpenAPI Config Helper --- +// We'll merge 'openApiDocsConfig' with 'sampleConfig' later +let sampleConfig: Plugin.PluginOptions = { + petstore: { + specPath: "specs-processed/petstore.yaml", + outputDir: "docs/petstore", + downloadUrl: + "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/petstore.yaml", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, + } satisfies OpenApiPlugin.Options, + bookstore: { + specPath: "specs-processed/bookstore.yaml", + outputDir: "docs/bookstore", + // downloadUrl: + // "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/bookstore.yaml", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, + } satisfies OpenApiPlugin.Options, +}; + // Global toggle to enable or disable sidebarOptions for all OpenAPI configurations const APPLY_OPENAPI_SIDEBAR_OPTIONS_GLOBALLY = false; const DEFAULT_OPENAPI_OUTPUT_DIR = "docs/openapi/"; @@ -879,28 +905,7 @@ ${updatedContent}`, { id: "api", // plugin id docsPluginId: "classic", // configured for preset-classic - config: { - petstore: { - specPath: "specs-processed/petstore.yaml", - outputDir: "docs/petstore", - downloadUrl: - "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/petstore.yaml", - sidebarOptions: { - groupPathsBy: "tag", - categoryLinkSource: "tag", - }, - } satisfies OpenApiPlugin.Options, - bookstore: { - specPath: "specs-processed/bookstore.yaml", - outputDir: "docs/bookstore", - // downloadUrl: - // "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/bookstore.yaml", - sidebarOptions: { - groupPathsBy: "tag", - categoryLinkSource: "tag", - }, - } satisfies OpenApiPlugin.Options, - } satisfies Plugin.PluginOptions, + config: sampleConfig // config: openApiDocsConfig satisfies Plugin.PluginOptions, // Use the dynamically generated config }, From af1774ce25e1d3713d2d706cff71e871661e6cf2 Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 09:49:12 -0400 Subject: [PATCH 26/37] Move languages to distinct file --- docusaurus.config.ts | 95 +------------------------------------- openapi-generated-sdks.ts | 96 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 93 deletions(-) create mode 100644 openapi-generated-sdks.ts diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 1e111b0..83ca2fd 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -13,6 +13,7 @@ import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs"; import { openApiSpecs, preprocessOpenApiSpecs } from "./preprocessing" import { ApiPageMetadata, SchemaPageMetadata, SidebarOptions } from "docusaurus-plugin-openapi-docs/src/types"; import type * as Plugin from "@docusaurus/types/src/plugin"; +import languageTabs from "./openapi-generated-sdks"; // --- OpenAPI Config Helper --- // We'll merge 'openApiDocsConfig' with 'sampleConfig' later @@ -264,99 +265,7 @@ const config: Config = { // }, }, - languageTabs: [ - { - highlight: "python", - language: "python", - logoClass: "python", - }, - { - highlight: "bash", - language: "curl", - logoClass: "curl", - }, - { - highlight: "csharp", - language: "csharp", - logoClass: "csharp", - }, - // { - // highlight: "go", - // language: "go", - // logoClass: "go", - // }, - // { - // highlight: "javascript", - // language: "nodejs", - // logoClass: "nodejs", - // }, - { - highlight: "ruby", - language: "ruby", - logoClass: "ruby", - }, - { - highlight: "php", - language: "php", - logoClass: "php", - }, - // { - // highlight: "java", - // language: "java", - // logoClass: "java", - // variant: "unirest", - // }, - { - highlight: "powershell", - language: "powershell", - logoClass: "powershell", - }, - { - highlight: "dart", - language: "dart", - logoClass: "dart", - }, - // { - // highlight: "javascript", - // language: "javascript", - // logoClass: "javascript", - // }, - { - highlight: "c", - language: "c", - logoClass: "c", - }, - { - highlight: "objective-c", - language: "objective-c", - logoClass: "objective-c", - }, - { - highlight: "ocaml", - language: "ocaml", - logoClass: "ocaml", - }, - { - highlight: "r", - language: "r", - logoClass: "r", - }, - { - highlight: "swift", - language: "swift", - logoClass: "swift", - }, - { - highlight: "kotlin", - language: "kotlin", - logoClass: "kotlin", - }, - { - highlight: "rust", - language: "rust", - logoClass: "rust", - }, - ], + languageTabs: languageTabs, } satisfies Preset.ThemeConfig, plugins: [ [ diff --git a/openapi-generated-sdks.ts b/openapi-generated-sdks.ts new file mode 100644 index 0000000..3eaf7a6 --- /dev/null +++ b/openapi-generated-sdks.ts @@ -0,0 +1,96 @@ +const languageTabs = [ + { + highlight: "python", + language: "python", + logoClass: "python", + }, + { + highlight: "bash", + language: "curl", + logoClass: "curl", + }, + { + highlight: "csharp", + language: "csharp", + logoClass: "csharp", + }, + // { + // highlight: "go", + // language: "go", + // logoClass: "go", + // }, + // { + // highlight: "javascript", + // language: "nodejs", + // logoClass: "nodejs", + // }, + { + highlight: "ruby", + language: "ruby", + logoClass: "ruby", + }, + { + highlight: "php", + language: "php", + logoClass: "php", + }, + // { + // highlight: "java", + // language: "java", + // logoClass: "java", + // variant: "unirest", + // }, + { + highlight: "powershell", + language: "powershell", + logoClass: "powershell", + }, + { + highlight: "dart", + language: "dart", + logoClass: "dart", + }, + // { + // highlight: "javascript", + // language: "javascript", + // logoClass: "javascript", + // }, + { + highlight: "c", + language: "c", + logoClass: "c", + }, + { + highlight: "objective-c", + language: "objective-c", + logoClass: "objective-c", + }, + { + highlight: "ocaml", + language: "ocaml", + logoClass: "ocaml", + }, + { + highlight: "r", + language: "r", + logoClass: "r", + }, + { + highlight: "swift", + language: "swift", + logoClass: "swift", + }, + { + highlight: "kotlin", + language: "kotlin", + logoClass: "kotlin", + }, + { + highlight: "rust", + language: "rust", + logoClass: "rust", + }, +]; + +// export it +export default languageTabs; \ No newline at end of file From 8309a53c5c67e4da650f142814acea4ad93f981a Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 09:54:17 -0400 Subject: [PATCH 27/37] specify 'outputDir' explicitly --- docusaurus.config.ts | 68 +++++++++++++++++++++++++------------------- preprocessing.ts | 27 +++++++++++++++++- 2 files changed, 65 insertions(+), 30 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 83ca2fd..76c867a 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -40,44 +40,54 @@ let sampleConfig: Plugin.PluginOptions = { } satisfies OpenApiPlugin.Options, }; -// Global toggle to enable or disable sidebarOptions for all OpenAPI configurations -const APPLY_OPENAPI_SIDEBAR_OPTIONS_GLOBALLY = false; -const DEFAULT_OPENAPI_OUTPUT_DIR = "docs/openapi/"; -const DEFAULT_OPENAPI_SIDEBAR_OPTIONS = { - // groupPathsBy: "tagGroup" - groupPathsBy: 'tag', - categoryLinkSource: 'tag' -}; - +// Custom sidebar generator that includes operations and schemas +function primaryPagesOnlySidebarGenerator( + item: ApiPageMetadata | SchemaPageMetadata, + context: { sidebarOptions: SidebarOptions; basePath: string } +) { + // Return info pages + if (item.infoId === item.title) { + return item; // Return the item as is if it's an info page + } -function createOpenApiConfig( - specPath: string, - outputDir: string, - sidebarOptionsValue?: { groupPathsBy: string } -): OpenApiPlugin.Options { - const apiConfig: OpenApiPlugin.Options = { - specPath, - outputDir, - }; + // Return operation pages - they contain the actual API endpoints + if ('method' in item && item.method) { + return item; + } - if (APPLY_OPENAPI_SIDEBAR_OPTIONS_GLOBALLY && sidebarOptionsValue) { - apiConfig.sidebarOptions = sidebarOptionsValue; + // Return schema pages as they are useful for reference + if ('schemaName' in item && item.schemaName) { + return item; } - return apiConfig; + + // Skip other types of pages + return null; } // Run the preprocessor before generating the config preprocessOpenApiSpecs(); // Dynamically build the OpenAPI plugin configuration -const openApiDocsConfig = openApiSpecs.reduce((acc, spec) => { - acc[spec.id] = createOpenApiConfig( - spec.specPathModified || spec.specPath, // Use the modified path if available - spec.outputDir || DEFAULT_OPENAPI_OUTPUT_DIR, - spec.sidebarOptions || DEFAULT_OPENAPI_SIDEBAR_OPTIONS - ); - return acc; -}, {} as Record); +const openApiDocsConfig: Plugin.PluginOptions = {}; + +// Instead of using reduce, add each spec configuration individually +openApiSpecs.forEach((spec) => { + const outputDir = spec.outputDir; + const sidebarOptions = { // Always use these options + groupPathsBy: "tag", + categoryLinkSource: "tag", + }; + + openApiDocsConfig[spec.id] = { + specPath: spec.specPathModified || spec.specPath, + outputDir, + sidebarOptions, // Assign the new sidebarOptions here + }; +}); + +// Add the sidebarPath property to the configuration +// openApiDocsConfig["sidebarPath"] = require.resolve("./sidebars.js"); + // --- End OpenAPI Config Helper --- const otdfctl = listRemote.createRepo("opentdf", "otdfctl", "main"); diff --git a/preprocessing.ts b/preprocessing.ts index 7d526f4..7e5fc75 100644 --- a/preprocessing.ts +++ b/preprocessing.ts @@ -18,33 +18,40 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "authorization", specPath: "./specs/authorization/authorization.openapi.yaml", + outputDir: "docs/authorization", // specPathModified is auto-generated if not specified }, { id: "authorization_v2", specPath: "./specs/authorization/v2/authorization.openapi.yaml", + outputDir: "docs/authorization_v2", // Example of custom modified path: specPathModified: "./specs-processed/authorization/v2/authorization.openapi.yaml", }, { id: "common", specPath: "./specs/common/common.openapi.yaml", + outputDir: "docs/common", }, { id: "entity", specPath: "./specs/entity/entity.openapi.yaml", + outputDir: "docs/entity", }, { id: "entityresolution", specPath: "./specs/entityresolution/entity_resolution.openapi.yaml", + outputDir: "docs/entityresolution", }, { id: "kas", specPath: "./specs/kas/kas.openapi.yaml", + outputDir: "docs/kas", }, { id: "wellknownconfiguration", specPath: "./specs/wellknownconfiguration/wellknown_configuration.openapi.yaml", + outputDir: "docs/wellknownconfiguration", }, // Add more entries here for other OpenAPI specs ]; @@ -59,10 +66,10 @@ async function preprocessOpenApiSpecs() { // Process each spec for (const spec of openApiSpecs) { const sourcePath = path.resolve(__dirname, spec.specPath); + const parsedPath = path.parse(spec.specPath); // Generate modified path if not specified if (!spec.specPathModified) { - const parsedPath = path.parse(spec.specPath); // Store processed files in a 'specs-processed' directory by default spec.specPathModified = path.join( parsedPath.dir.replace(/^\.\/specs/, './specs-processed'), @@ -113,6 +120,24 @@ async function preprocessOpenApiSpecs() { }); } + // Ensure all paths have proper tags for grouping + if (apiSpec.paths) { + Object.keys(apiSpec.paths).forEach(path => { + const pathItem = apiSpec.paths[path]; + + // Process each operation in the path + ['get', 'post', 'put', 'delete', 'patch'].forEach(method => { + if (pathItem[method]) { + const operation = pathItem[method]; + + // Replace any existing tags with just the spec id + // This ensures operations only appear under their parent + operation.tags = [spec.id]; + } + }); + }); + } + // Write the modified YAML to the target file fs.writeFileSync(targetPath, yaml.dump(apiSpec), 'utf8'); console.log(`✅ Updated: ${targetPath}`); From b987fed23d86b70efafd9b3cb6427b807791f49c Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 10:02:25 -0400 Subject: [PATCH 28/37] Comment sidebar --- sidebars.js | 47 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/sidebars.js b/sidebars.js index baf81d0..a562fd8 100644 --- a/sidebars.js +++ b/sidebars.js @@ -24,21 +24,46 @@ const sidebars = { // type: 'generated-index', // title: 'API Reference', // description: 'Overview of available OpenTDF APIs.', - // slug: '/category/api-reference', // This will create an index page at /category/api-reference + // slug: '/category/api-reference', // }, // items: [ // { - // type: 'category', - // label: 'KAS API', - // link: { - // type: 'generated-index', - // title: 'KAS API Overview', - // slug: '/api/kas', // This should be the base path for KAS API docs - // }, - // // @ts-ignore - Docusaurus type system might complain about require in JS - // items: require('./docs/api/kas/sidebar.js'), // Path to the sidebar generated by docusaurus-plugin-openapi-docs - // // items: require('./sidebar.js'), // Path to the sidebar generated by docusaurus-plugin-openapi-docs + // type: 'doc', + // id: 'openapi/authorization', + // label: 'Authorization API' // }, + // { + // type: 'doc', + // id: 'openapi/authorization-v-2', + // label: 'Authorization API (v2)' + // }, + // { + // type: 'doc', + // id: 'openapi/common', + // label: 'Common API' + // }, + // { + // type: 'doc', + // id: 'openapi/entity', + // label: 'Entity API' + // }, + // { + // type: 'doc', + // id: 'openapi/entityresolution', + // label: 'Entity Resolution API' + // }, + // { + // type: 'doc', + // id: 'openapi/kas', + // label: 'KAS API' + // }, + // { + // type: 'doc', + // id: 'openapi/wellknownconfiguration', + // label: 'Well-Known Configuration API' + // }, + // ] + // }, ], }; From eb23e649585dc8f69a0156562427acea76c7ca95 Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 10:02:43 -0400 Subject: [PATCH 29/37] Remove cruft --- docusaurus.config.ts | 30 +----------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 76c867a..50b5fe9 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -40,30 +40,6 @@ let sampleConfig: Plugin.PluginOptions = { } satisfies OpenApiPlugin.Options, }; -// Custom sidebar generator that includes operations and schemas -function primaryPagesOnlySidebarGenerator( - item: ApiPageMetadata | SchemaPageMetadata, - context: { sidebarOptions: SidebarOptions; basePath: string } -) { - // Return info pages - if (item.infoId === item.title) { - return item; // Return the item as is if it's an info page - } - - // Return operation pages - they contain the actual API endpoints - if ('method' in item && item.method) { - return item; - } - - // Return schema pages as they are useful for reference - if ('schemaName' in item && item.schemaName) { - return item; - } - - // Skip other types of pages - return null; -} - // Run the preprocessor before generating the config preprocessOpenApiSpecs(); @@ -73,15 +49,11 @@ const openApiDocsConfig: Plugin.PluginOptions = {}; // Instead of using reduce, add each spec configuration individually openApiSpecs.forEach((spec) => { const outputDir = spec.outputDir; - const sidebarOptions = { // Always use these options - groupPathsBy: "tag", - categoryLinkSource: "tag", - }; + openApiDocsConfig[spec.id] = { specPath: spec.specPathModified || spec.specPath, outputDir, - sidebarOptions, // Assign the new sidebarOptions here }; }); From 143ed20e3e485e8468295980dec52eb3fe76029b Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 10:03:14 -0400 Subject: [PATCH 30/37] Explicitly state 'sidebarOptions' --- preprocessing.ts | 62 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 15 deletions(-) diff --git a/preprocessing.ts b/preprocessing.ts index 7e5fc75..2022e5a 100644 --- a/preprocessing.ts +++ b/preprocessing.ts @@ -10,8 +10,12 @@ interface ApiSpecDefinition { specPath: string; specPathModified?: string; // New field for the preprocessed spec location outputDir?: string; // Optional: overrides DEFAULT_OPENAPI_OUTPUT_DIR - sidebarOptions?: { groupPathsBy: string }; // Optional: overrides DEFAULT_OPENAPI_SIDEBAR_OPTIONS -} + sidebarOptions?: { + groupPathsBy: string, + categoryLinkSource: string + }; +}; + // Define all your OpenAPI specifications here const openApiSpecs: ApiSpecDefinition[] = [ @@ -20,6 +24,10 @@ const openApiSpecs: ApiSpecDefinition[] = [ specPath: "./specs/authorization/authorization.openapi.yaml", outputDir: "docs/authorization", // specPathModified is auto-generated if not specified + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, }, { id: "authorization_v2", @@ -27,31 +35,55 @@ const openApiSpecs: ApiSpecDefinition[] = [ outputDir: "docs/authorization_v2", // Example of custom modified path: specPathModified: "./specs-processed/authorization/v2/authorization.openapi.yaml", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, }, { id: "common", specPath: "./specs/common/common.openapi.yaml", outputDir: "docs/common", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, }, { id: "entity", specPath: "./specs/entity/entity.openapi.yaml", outputDir: "docs/entity", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, }, { id: "entityresolution", specPath: "./specs/entityresolution/entity_resolution.openapi.yaml", outputDir: "docs/entityresolution", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, }, { id: "kas", specPath: "./specs/kas/kas.openapi.yaml", outputDir: "docs/kas", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, }, { id: "wellknownconfiguration", specPath: "./specs/wellknownconfiguration/wellknown_configuration.openapi.yaml", outputDir: "docs/wellknownconfiguration", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, }, // Add more entries here for other OpenAPI specs ]; @@ -122,20 +154,20 @@ async function preprocessOpenApiSpecs() { // Ensure all paths have proper tags for grouping if (apiSpec.paths) { - Object.keys(apiSpec.paths).forEach(path => { - const pathItem = apiSpec.paths[path]; - - // Process each operation in the path - ['get', 'post', 'put', 'delete', 'patch'].forEach(method => { - if (pathItem[method]) { - const operation = pathItem[method]; - - // Replace any existing tags with just the spec id - // This ensures operations only appear under their parent - operation.tags = [spec.id]; - } + Object.keys(apiSpec.paths).forEach(path => { + const pathItem = apiSpec.paths[path]; + + // Process each operation in the path + ['get', 'post', 'put', 'delete', 'patch'].forEach(method => { + if (pathItem[method]) { + const operation = pathItem[method]; + + // Replace any existing tags with just the spec id + // This ensures operations only appear under their parent + operation.tags = [spec.id]; + } + }); }); - }); } // Write the modified YAML to the target file From 2ebd313c04a8dbc673e1f6c3bc22c87d10bb0590 Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 10:20:26 -0400 Subject: [PATCH 31/37] Cleanup --- docusaurus.config.ts | 20 +++++++++++--------- preprocessing.ts | 14 +++++++------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 50b5fe9..4b5510f 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -16,11 +16,11 @@ import type * as Plugin from "@docusaurus/types/src/plugin"; import languageTabs from "./openapi-generated-sdks"; // --- OpenAPI Config Helper --- -// We'll merge 'openApiDocsConfig' with 'sampleConfig' later -let sampleConfig: Plugin.PluginOptions = { +// We'll merge 'openApiSpecs' with 'finalConfiguration' later +let finalConfiguration: Plugin.PluginOptions = { petstore: { specPath: "specs-processed/petstore.yaml", - outputDir: "docs/petstore", + outputDir: "docs/SDK Samples/petstore", downloadUrl: "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/petstore.yaml", sidebarOptions: { @@ -30,7 +30,7 @@ let sampleConfig: Plugin.PluginOptions = { } satisfies OpenApiPlugin.Options, bookstore: { specPath: "specs-processed/bookstore.yaml", - outputDir: "docs/bookstore", + outputDir: "docs/SDK Samples/bookstore", // downloadUrl: // "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/bookstore.yaml", sidebarOptions: { @@ -46,19 +46,21 @@ preprocessOpenApiSpecs(); // Dynamically build the OpenAPI plugin configuration const openApiDocsConfig: Plugin.PluginOptions = {}; -// Instead of using reduce, add each spec configuration individually openApiSpecs.forEach((spec) => { const outputDir = spec.outputDir; - openApiDocsConfig[spec.id] = { specPath: spec.specPathModified || spec.specPath, outputDir, }; }); -// Add the sidebarPath property to the configuration -// openApiDocsConfig["sidebarPath"] = require.resolve("./sidebars.js"); +// Merge 'openApiSpecs' into 'finalConfiguration' +Object.entries(openApiDocsConfig).forEach(([key, value]) => { + finalConfiguration[key] = { + ...(typeof value === "object" && value !== null ? value : {}), + }; +}); // --- End OpenAPI Config Helper --- @@ -796,7 +798,7 @@ ${updatedContent}`, { id: "api", // plugin id docsPluginId: "classic", // configured for preset-classic - config: sampleConfig + config: finalConfiguration // config: openApiDocsConfig satisfies Plugin.PluginOptions, // Use the dynamically generated config }, diff --git a/preprocessing.ts b/preprocessing.ts index 2022e5a..e3ccc16 100644 --- a/preprocessing.ts +++ b/preprocessing.ts @@ -22,7 +22,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "authorization", specPath: "./specs/authorization/authorization.openapi.yaml", - outputDir: "docs/authorization", + outputDir: "docs/SDK (OpenAPI clients)/authorization", // specPathModified is auto-generated if not specified sidebarOptions: { groupPathsBy: "tag", @@ -32,7 +32,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "authorization_v2", specPath: "./specs/authorization/v2/authorization.openapi.yaml", - outputDir: "docs/authorization_v2", + outputDir: "docs/SDK (OpenAPI clients)/authorization_v2", // Example of custom modified path: specPathModified: "./specs-processed/authorization/v2/authorization.openapi.yaml", sidebarOptions: { @@ -43,7 +43,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "common", specPath: "./specs/common/common.openapi.yaml", - outputDir: "docs/common", + outputDir: "docs/SDK (OpenAPI clients)/common", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", @@ -52,7 +52,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "entity", specPath: "./specs/entity/entity.openapi.yaml", - outputDir: "docs/entity", + outputDir: "docs/SDK (OpenAPI clients)/entity", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", @@ -61,7 +61,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "entityresolution", specPath: "./specs/entityresolution/entity_resolution.openapi.yaml", - outputDir: "docs/entityresolution", + outputDir: "docs/SDK (OpenAPI clients)/entityresolution", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", @@ -70,7 +70,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "kas", specPath: "./specs/kas/kas.openapi.yaml", - outputDir: "docs/kas", + outputDir: "docs/SDK (OpenAPI clients)/kas", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", @@ -79,7 +79,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "wellknownconfiguration", specPath: "./specs/wellknownconfiguration/wellknown_configuration.openapi.yaml", - outputDir: "docs/wellknownconfiguration", + outputDir: "docs/SDK (OpenAPI clients)/wellknownconfiguration", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", From 73a70a60dd841541c4b636b6567468a6a055cb17 Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 10:23:37 -0400 Subject: [PATCH 32/37] Remove old generated content --- ...ion-service-get-decisions-by-token.api.mdx | 71 - ...uthorization-service-get-decisions.api.mdx | 71 - ...orization-service-get-entitlements.api.mdx | 71 - ...rization-service-get-decision-bulk.api.mdx | 71 - ...ervice-get-decision-multi-resource.api.mdx | 71 - ...authorization-service-get-decision.api.mdx | 71 - ...orization-service-get-entitlements.api.mdx | 71 - docs/openapi/authorization-v-2.info.mdx | 35 - docs/openapi/authorization.info.mdx | 35 - docs/openapi/common.info.mdx | 35 - docs/openapi/entity.info.mdx | 35 - ...rvice-create-entity-chain-from-jwt.api.mdx | 71 - ...esolution-service-resolve-entities.api.mdx | 71 - docs/openapi/entityresolution.info.mdx | 35 - ...s-access-service-legacy-public-key.api.mdx | 71 - .../kas-access-service-public-key.api.mdx | 71 - .../openapi/kas-access-service-rewrap.api.mdx | 71 - docs/openapi/kas.info.mdx | 35 - ...rvice-get-well-known-configuration.api.mdx | 63 - docs/openapi/wellknownconfiguration.info.mdx | 35 - .../authorization/authorization.openapi.yaml | 1018 ------------- .../v2/authorization.openapi.yaml | 795 ----------- specs-processed/bookstore.yaml | 718 ---------- specs-processed/common/common.openapi.yaml | 183 --- specs-processed/entity/entity.openapi.yaml | 107 -- .../entity_resolution.openapi.yaml | 455 ------ specs-processed/kas/kas.openapi.yaml | 511 ------- specs-processed/petstore.yaml | 1271 ----------------- .../wellknown_configuration.openapi.yaml | 201 --- 29 files changed, 6419 deletions(-) delete mode 100644 docs/openapi/authorization-authorization-service-get-decisions-by-token.api.mdx delete mode 100644 docs/openapi/authorization-authorization-service-get-decisions.api.mdx delete mode 100644 docs/openapi/authorization-authorization-service-get-entitlements.api.mdx delete mode 100644 docs/openapi/authorization-v-2-authorization-service-get-decision-bulk.api.mdx delete mode 100644 docs/openapi/authorization-v-2-authorization-service-get-decision-multi-resource.api.mdx delete mode 100644 docs/openapi/authorization-v-2-authorization-service-get-decision.api.mdx delete mode 100644 docs/openapi/authorization-v-2-authorization-service-get-entitlements.api.mdx delete mode 100644 docs/openapi/authorization-v-2.info.mdx delete mode 100644 docs/openapi/authorization.info.mdx delete mode 100644 docs/openapi/common.info.mdx delete mode 100644 docs/openapi/entity.info.mdx delete mode 100644 docs/openapi/entityresolution-entity-resolution-service-create-entity-chain-from-jwt.api.mdx delete mode 100644 docs/openapi/entityresolution-entity-resolution-service-resolve-entities.api.mdx delete mode 100644 docs/openapi/entityresolution.info.mdx delete mode 100644 docs/openapi/kas-access-service-legacy-public-key.api.mdx delete mode 100644 docs/openapi/kas-access-service-public-key.api.mdx delete mode 100644 docs/openapi/kas-access-service-rewrap.api.mdx delete mode 100644 docs/openapi/kas.info.mdx delete mode 100644 docs/openapi/wellknownconfiguration-well-known-service-get-well-known-configuration.api.mdx delete mode 100644 docs/openapi/wellknownconfiguration.info.mdx delete mode 100644 specs-processed/authorization/authorization.openapi.yaml delete mode 100644 specs-processed/authorization/v2/authorization.openapi.yaml delete mode 100644 specs-processed/bookstore.yaml delete mode 100644 specs-processed/common/common.openapi.yaml delete mode 100644 specs-processed/entity/entity.openapi.yaml delete mode 100644 specs-processed/entityresolution/entity_resolution.openapi.yaml delete mode 100644 specs-processed/kas/kas.openapi.yaml delete mode 100644 specs-processed/petstore.yaml delete mode 100644 specs-processed/wellknownconfiguration/wellknown_configuration.openapi.yaml diff --git a/docs/openapi/authorization-authorization-service-get-decisions-by-token.api.mdx b/docs/openapi/authorization-authorization-service-get-decisions-by-token.api.mdx deleted file mode 100644 index 4953950..0000000 --- a/docs/openapi/authorization-authorization-service-get-decisions-by-token.api.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: authorization-authorization-service-get-decisions-by-token -title: "GetDecisionsByToken" -description: "GetDecisionsByToken" -sidebar_label: "GetDecisionsByToken" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: openapi/authorization -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -GetDecisionsByToken - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/authorization-authorization-service-get-decisions.api.mdx b/docs/openapi/authorization-authorization-service-get-decisions.api.mdx deleted file mode 100644 index e963070..0000000 --- a/docs/openapi/authorization-authorization-service-get-decisions.api.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: authorization-authorization-service-get-decisions -title: "GetDecisions" -description: "GetDecisions" -sidebar_label: "GetDecisions" -hide_title: true -hide_table_of_contents: true -api: eJztGl1v2zjyrxC8lwZQ7E0efQ+3buIWOdw6gZMsUNiGQUljmxuKdEkqjjfwfz8MKcmULDsfbZ82fQjc4XBmOJxv6platjC0N6Yst0ul+d/MciU7/fB/t6AfeQJ0GlG1Au1gVyntvWJP5yvYS0i44UoaGlEN33Mw9rNKN7T3TBMlLUiLP9lqJXji9nb/MkoizCRLyBj+spsV0B5V8V+QWBrRlUZJLAeDq2nBYeSpm2AH05ptaES5hcy8TIkl1kn6BgJKwvWc9sbPDVJJbqzKgh3Gai4XNKKWW4GAAiOiKZhE8xWypj16CSsNCbOQ0u22BRt1yDWkeGsFcLqNmuyNZTJlOnUCFCQq2BGW0Z64IPMMed3e9YeX/dHlrH9xd3U9nN0Pb28GF1dfrgaXNNpbvRxcjL7d3LWs3I36w9s/ru7oNDxeIFt4wAo83U6bl8XTY9rl+8f8ChLNF1KS5zwlXJKUWRYzA3QbUckyOEbQrW8jmoFluC/UbAWLXjCwRAMK0Lfh7gI4Y3ZP5N0SMWBJvCEG9CNo8gmk5XZD1ktFCiSy5kIQDYnSKbjjMUlYnnJL4BGkPWm53LnSGbO0R1Nm4dRyf8R8le5LWQDbpNwtHZGyQPp5UgoWg2j1yVLkAiOiLE05ysrETe06Dt31IxO541E/p1p5IsQslbYkXERbbucyZ8JAk9Kt1XliiVUkl/x7DmJDeIrKmm8IIxqMynUCZM3tklRcd/RJZXChD/Vd9Dp43FZB+pL4oIfXUNxWwiSx7MEpoKRdRsYtBgTEulgy/rZI+YPeC6slZKCZIDwlc6WJ1Sx54HJBYrBrAEmK7EKYTFGFKyW9ZzuB6zf+/rAuGC92lN7rIS95vl9tnngbFbbWoovK6mMumd54c4zzRZu47TdudQ6HDRNXm0q+UNLivTqn1DG3mmnnzZwJ/jekJANj2AIIE0ouvH0y8juKQ+ySlT4RgyF2CcTB1dz93ifSqSe4Uo+1BOeBLQkuERykvTpqRR5nxhuZtII2eRUU27jtsnkzHx+/dniyIA33BU25dwf8sJp3Ws0bQtzARzVHFeOGvzlSRgUSw0bJ1HMryg2HbH6k/oKMcdFPUw3maKZxeDNWIO4lHFkpoojNPhkYkuXGkhj1Y2tiNumF0tZkapFZQ6YsXDiXu9fimNgedebdc5ZrURNif7UuSJNRiyy5AT18oSJDnJkvy7Zt0DrTimIbt/x4OnLrNSb5XvhwoJ9Rpr4/0WEJv1B6U4tTJexwZX/Rvxt8vR59a5T0Ffj2/vN/Bxd3IWgw/PNqdD38YzBs1PHe2d5Wg9wMyKcb0EZJ4refEKXJEMFDJU/rS2FRUiX2fQlcefLGUsgVr2pONAhXqd4MnIaHN4M9pptZ4uufLRqBr9b61moe5/ZthUbTBZu0jme4En/Gqg0u3UW0AvyJmeLL91fVarv8UtV9JZmZyzizORIK1T1qSvxWpQu14AkTJM6TB6//3VlIDJgx0PatIoxMKnYTSrdH1VAT8rI+IXibiIMnlq0EkGIz+QqWVEMNJ5c0a9AuSjsMrKZPCblU5LOKySeN3bUBiSYVb6oiG+2HQHJ2MpFoZX3BE3gJ+fyELNkjkLKHJrURDAaLiTyv2gfz7+rnGfmEqjk1YE/PTkgKcy49h0DZc6V6MdOk2nUe7Dpv31VuikiihNI9DSn5z0RO5PNETsquYUJ7ZFyAyhSLsMnB4cCETuR2IqcRbgkbjpAUL4hAcjahO0wONaww63n8WMW/g7/UjtKLktdEbqM9yudHKJcZxeMyvMADdMuT7Lt3SG9v9cqJgbSruyvEqfSPjl3QmNCltSvT63bX63UnEKSL2N25Ul3nw/7vGYoXnvkV3M9fxb3kLMF6zvjnrME7etuO81Ja/zf0/XL6N9Pl+C/0/HAA+Srv3263YV53xbCL8S7LumB5/ttvfuxY6+jzJPEl10+fagas35dVAgc6nk7C3DY7WprUAhPWKVplLgIWt9CeGN+VzA4LUc1JgiB2QBYfiT4GuB8D3I8B7scA9x80wC3TSGgJFaxJ7G4JpFzcdZaHQ8rl4OLqdj+WVODLwfBb+P+bwcgHjoiqWPAFe+1z235jEu4/eM2CG9dRBMgkrLC5JPejK1KYZ3vHUCnhHS1DqULXxrOqa6haiX98lzACkwtrehN5SmIVkyUzZAU64xaPVpfbKpyESJNxW+izcrMGT3+AUGjUHdJmZM0s6Izph8AoQu4pSH6UNXsN8/OAOVJ3zcGvOl2dwa84QNlKhXVk0Rzsmq+2cu9Q/1IGmWK9ESAKpMBrHV7VZbS0ODvcbnXDzQ7nx8U/f6X4LzI9/wU6+6lMXzopRnbH8kArVvYsh3ux18TVrevGUpizXNj9nmugtdI/r+NKVNpaQBZ25r6TkcrO5iqXKX4OU6bBhMkEhCu+c/kg1RozK5ePTPB0xvQiz1A6PAhLBZcwg6cEIHUbdgQjyoQGlm5m8MSxj42oCxbGqdS7Nd11VTN4WrLc+Jp/zriAdIZdgJJenUgvVtqvq9zO1HymmVyAk5LjiTKXQZysFrRkwi2xR8YFiwUiYokyE8r1tbnEmIKm5TuNaVv1YCyzuSGoyoislzxZYq2VixQfK1yFkmfEVWeYl8cLpRYCOnqVdC5UCtM9QMdX7O7lp+1umtPEFB5B4KWezlmCc0NAGynfjvZF4jhYXghulh3SlxuCM53WrcEeoZLiSQrTCqZhJIMNZyj+rdNEJwXLuDDTI0tkzkGkEQ69d6TjjaPoHyU7vpJD9JfN+OPNsOXNcBeFintYaWVVnM87fbmpRakLJSUklpTB5fVHcju8JBpsroucWhDskXLclXgAWkKism6qEtNdqK4zN9P9F6KdVhUeK7qTIhLW2+Hax3UZ2KXC7/JWyg25VswuaY92H8+6tWKARtR3d8ZNPfB5rrc3iktaBhtlVXu9Anl3+YWsBLNoOuR+9D+K7b2BJNf4/NMbTyOK4Xe0++Cv2N3+wd44+PZuvJu97Iw3HIgcnWRsp80vVMZ+0hB2L+X3IOPaBx0NryjcJYw13ifwKsIPEEIpd1Oj+sv/G2gjmfrzcchg75E2XNy9mtageXj+rZvEtD1ajQ+9P+3EbHtVGpfLUyS9xWwyV2G72bS+ulWhNkB7RdHHMww+aMAZc4rzQ52mqdcoVNq18GS7K4EPfzgD8S/Y3gvGSDlqSDKN6BJdpTemz884RbrXYrtF8PccdGHFj0xzlwx7YzzbElgK2unqATZFHANpT+9Qht3F7tUheBF+Rz9JYGWP4k4Db765vsUpXFx8M5u5IoVqtsZagK29BovPAtwTIsKeqWBykbukST1N/Pd/TtB4yA== -sidebar_class_name: "post api-method" -info_path: openapi/authorization -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -GetDecisions - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/authorization-authorization-service-get-entitlements.api.mdx b/docs/openapi/authorization-authorization-service-get-entitlements.api.mdx deleted file mode 100644 index 9cc0e69..0000000 --- a/docs/openapi/authorization-authorization-service-get-entitlements.api.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: authorization-authorization-service-get-entitlements -title: "GetEntitlements" -description: "GetEntitlements" -sidebar_label: "GetEntitlements" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: openapi/authorization -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -GetEntitlements - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/authorization-v-2-authorization-service-get-decision-bulk.api.mdx b/docs/openapi/authorization-v-2-authorization-service-get-decision-bulk.api.mdx deleted file mode 100644 index 177c728..0000000 --- a/docs/openapi/authorization-v-2-authorization-service-get-decision-bulk.api.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: authorization-v-2-authorization-service-get-decision-bulk -title: "GetDecisionBulk" -description: "GetDecisionBulk" -sidebar_label: "GetDecisionBulk" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: openapi/authorization-v-2 -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -GetDecisionBulk - - - - - - - - - 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"entities":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"claims":{"title":"claims","description":"used by ERS claims mode","type":"object","properties":{"type":{"type":"string"},"value":{"type":"string","format":"binary"},"debug":{"type":"object","additionalProperties":true}},"additionalProperties":true}},"title":"claims","required":["claims"]},{"properties":{"clientId":{"type":"string","title":"client_id"}},"title":"client_id","required":["clientId"]},{"properties":{"emailAddress":{"type":"string","title":"email_address"}},"title":"email_address","required":["emailAddress"]},{"properties":{"userName":{"type":"string","title":"user_name"}},"title":"user_name","required":["userName"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"category":{"title":"category","type":"string","enum":["CATEGORY_UNSPECIFIED","CATEGORY_SUBJECT","CATEGORY_ENVIRONMENT"]}},"title":"Entity","additionalProperties":false,"description":"PE (Person Entity) or NPE (Non-Person Entity)"},"title":"entities"}},"additionalProperties":false}},"title":"entity_chain","required":["entityChain"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri","description":"fully qualified name of the registered resource value stored in platform policy, where in\n this case the resource acts as and represents a single entity for authorization/entitlement decisioning"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]},{"properties":{"token":{"title":"token","description":"access token (JWT), which is used to create an entity chain (comprising one or more entities)\ntoken must be provided:\n```\nhas(this.jwt) && this.jwt.size() > 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"jwt":{"type":"string","title":"jwt","description":"the token"}},"required":["jwt"],"additionalProperties":false}},"title":"token","required":["token"]}],"additionalProperties":false},"action":{"title":"action","description":"name on action is required","type":"object","oneOf":[{"properties":{"custom":{"type":"string","title":"custom","description":"Deprecated"}},"title":"custom","required":["custom"]},{"properties":{"standard":{"title":"standard","description":"Deprecated","type":"string","enum":["STANDARD_ACTION_UNSPECIFIED","STANDARD_ACTION_DECRYPT","STANDARD_ACTION_TRANSMIT"]}},"title":"standard","required":["standard"]}],"properties":{"id":{"type":"string","title":"id","description":"Generated uuid in database"},"name":{"type":"string","title":"name"},"metadata":{"title":"metadata","type":"object","properties":{"createdAt":{"title":"created_at","description":"created_at set by server (entity who created will recorded in an audit event)","type":"string","format":"date-time"},"updatedAt":{"title":"updated_at","description":"updated_at set by server (entity who updated will recorded in an audit event)","type":"string","format":"date-time"},"labels":{"type":"object","title":"labels","additionalProperties":{"type":"string","title":"value"},"description":"optional short description"}},"additionalProperties":false,"description":"Struct to uniquely identify a resource with optional additional metadata"}},"additionalProperties":false},"resources":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"attributeValues":{"title":"attribute_values","description":"if provided, resource.attribute_values must not be empty:\n```\nthis.fqns.size() > 0 && this.fqns.all(item, item.isUri())\n```\n\n","type":"object","properties":{"fqns":{"type":"array","items":{"type":"string"},"title":"fqns"}},"additionalProperties":false}},"title":"attribute_values","required":["attributeValues"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"}},"title":"Resource","additionalProperties":false,"description":"Either a set of attribute values (such as those on a TDF) or a registered resource value"},"title":"resources","minItems":1}},"title":"GetDecisionMultiResourceRequest","required":["entityIdentifier","action","resources"],"additionalProperties":false,"description":"Can the identified entity/entities access?\n 1. one entity reference (actor)\n 2. one action\n 3. multiple resources\n Note: this is a more performant bulk request for multiple resource decisions\naction.name must be provided:\n```\nhas(this.action.name)\n```\n\n"},"title":"decision_requests"}},"title":"GetDecisionBulkRequest","additionalProperties":false,"description":"Is access allowed?\n 1. Multiplexing of a Decision request\n This is a more performant bulk request for complex decisioning (i.e. multiple entity chains or actions on\n multiple resources)"}}},"required":true}} -> - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/authorization-v-2-authorization-service-get-decision-multi-resource.api.mdx b/docs/openapi/authorization-v-2-authorization-service-get-decision-multi-resource.api.mdx deleted file mode 100644 index cd6b4ac..0000000 --- a/docs/openapi/authorization-v-2-authorization-service-get-decision-multi-resource.api.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: authorization-v-2-authorization-service-get-decision-multi-resource -title: "GetDecisionMultiResource" -description: "GetDecisionMultiResource" -sidebar_label: "GetDecisionMultiResource" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: openapi/authorization-v-2 -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -GetDecisionMultiResource - - - - - - - - - 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"entities":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"claims":{"title":"claims","description":"used by ERS claims mode","type":"object","properties":{"type":{"type":"string"},"value":{"type":"string","format":"binary"},"debug":{"type":"object","additionalProperties":true}},"additionalProperties":true}},"title":"claims","required":["claims"]},{"properties":{"clientId":{"type":"string","title":"client_id"}},"title":"client_id","required":["clientId"]},{"properties":{"emailAddress":{"type":"string","title":"email_address"}},"title":"email_address","required":["emailAddress"]},{"properties":{"userName":{"type":"string","title":"user_name"}},"title":"user_name","required":["userName"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"category":{"title":"category","type":"string","enum":["CATEGORY_UNSPECIFIED","CATEGORY_SUBJECT","CATEGORY_ENVIRONMENT"]}},"title":"Entity","additionalProperties":false,"description":"PE (Person Entity) or NPE (Non-Person Entity)"},"title":"entities"}},"additionalProperties":false}},"title":"entity_chain","required":["entityChain"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri","description":"fully qualified name of the registered resource value stored in platform policy, where in\n this case the resource acts as and represents a single entity for authorization/entitlement decisioning"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]},{"properties":{"token":{"title":"token","description":"access token (JWT), which is used to create an entity chain (comprising one or more entities)\ntoken must be provided:\n```\nhas(this.jwt) && this.jwt.size() > 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"jwt":{"type":"string","title":"jwt","description":"the token"}},"required":["jwt"],"additionalProperties":false}},"title":"token","required":["token"]}],"additionalProperties":false},"action":{"title":"action","description":"name on action is required","type":"object","oneOf":[{"properties":{"custom":{"type":"string","title":"custom","description":"Deprecated"}},"title":"custom","required":["custom"]},{"properties":{"standard":{"title":"standard","description":"Deprecated","type":"string","enum":["STANDARD_ACTION_UNSPECIFIED","STANDARD_ACTION_DECRYPT","STANDARD_ACTION_TRANSMIT"]}},"title":"standard","required":["standard"]}],"properties":{"id":{"type":"string","title":"id","description":"Generated uuid in database"},"name":{"type":"string","title":"name"},"metadata":{"title":"metadata","type":"object","properties":{"createdAt":{"title":"created_at","description":"created_at set by server (entity who created will recorded in an audit event)","type":"string","format":"date-time"},"updatedAt":{"title":"updated_at","description":"updated_at set by server (entity who updated will recorded in an audit event)","type":"string","format":"date-time"},"labels":{"type":"object","title":"labels","additionalProperties":{"type":"string","title":"value"},"description":"optional short description"}},"additionalProperties":false,"description":"Struct to uniquely identify a resource with optional additional metadata"}},"additionalProperties":false},"resources":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"attributeValues":{"title":"attribute_values","description":"if provided, resource.attribute_values must not be empty:\n```\nthis.fqns.size() > 0 && this.fqns.all(item, item.isUri())\n```\n\n","type":"object","properties":{"fqns":{"type":"array","items":{"type":"string"},"title":"fqns"}},"additionalProperties":false}},"title":"attribute_values","required":["attributeValues"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"}},"title":"Resource","additionalProperties":false,"description":"Either a set of attribute values (such as those on a TDF) or a registered resource value"},"title":"resources","minItems":1}},"title":"GetDecisionMultiResourceRequest","required":["entityIdentifier","action","resources"],"additionalProperties":false,"description":"Can the identified entity/entities access?\n 1. one entity reference (actor)\n 2. one action\n 3. multiple resources\n Note: this is a more performant bulk request for multiple resource decisions\naction.name must be provided:\n```\nhas(this.action.name)\n```\n\n"}}},"required":true}} -> - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/authorization-v-2-authorization-service-get-decision.api.mdx b/docs/openapi/authorization-v-2-authorization-service-get-decision.api.mdx deleted file mode 100644 index 8585489..0000000 --- a/docs/openapi/authorization-v-2-authorization-service-get-decision.api.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: authorization-v-2-authorization-service-get-decision -title: "GetDecision" -description: "GetDecision" -sidebar_label: "GetDecision" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: openapi/authorization-v-2 -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -GetDecision - - - - - - - - - 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"entities":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"claims":{"title":"claims","description":"used by ERS claims mode","type":"object","properties":{"type":{"type":"string"},"value":{"type":"string","format":"binary"},"debug":{"type":"object","additionalProperties":true}},"additionalProperties":true}},"title":"claims","required":["claims"]},{"properties":{"clientId":{"type":"string","title":"client_id"}},"title":"client_id","required":["clientId"]},{"properties":{"emailAddress":{"type":"string","title":"email_address"}},"title":"email_address","required":["emailAddress"]},{"properties":{"userName":{"type":"string","title":"user_name"}},"title":"user_name","required":["userName"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"category":{"title":"category","type":"string","enum":["CATEGORY_UNSPECIFIED","CATEGORY_SUBJECT","CATEGORY_ENVIRONMENT"]}},"title":"Entity","additionalProperties":false,"description":"PE (Person Entity) or NPE (Non-Person Entity)"},"title":"entities"}},"additionalProperties":false}},"title":"entity_chain","required":["entityChain"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri","description":"fully qualified name of the registered resource value stored in platform policy, where in\n this case the resource acts as and represents a single entity for authorization/entitlement decisioning"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]},{"properties":{"token":{"title":"token","description":"access token (JWT), which is used to create an entity chain (comprising one or more entities)\ntoken must be provided:\n```\nhas(this.jwt) && this.jwt.size() > 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"jwt":{"type":"string","title":"jwt","description":"the token"}},"required":["jwt"],"additionalProperties":false}},"title":"token","required":["token"]}],"additionalProperties":false},"action":{"title":"action","description":"name on action is required","type":"object","oneOf":[{"properties":{"custom":{"type":"string","title":"custom","description":"Deprecated"}},"title":"custom","required":["custom"]},{"properties":{"standard":{"title":"standard","description":"Deprecated","type":"string","enum":["STANDARD_ACTION_UNSPECIFIED","STANDARD_ACTION_DECRYPT","STANDARD_ACTION_TRANSMIT"]}},"title":"standard","required":["standard"]}],"properties":{"id":{"type":"string","title":"id","description":"Generated uuid in database"},"name":{"type":"string","title":"name"},"metadata":{"title":"metadata","type":"object","properties":{"createdAt":{"title":"created_at","description":"created_at set by server (entity who created will recorded in an audit event)","type":"string","format":"date-time"},"updatedAt":{"title":"updated_at","description":"updated_at set by server (entity who updated will recorded in an audit event)","type":"string","format":"date-time"},"labels":{"type":"object","title":"labels","additionalProperties":{"type":"string","title":"value"},"description":"optional short description"}},"additionalProperties":false,"description":"Struct to uniquely identify a resource with optional additional metadata"}},"additionalProperties":false},"resource":{"title":"resource","type":"object","oneOf":[{"properties":{"attributeValues":{"title":"attribute_values","description":"if provided, resource.attribute_values must not be empty:\n```\nthis.fqns.size() > 0 && this.fqns.all(item, item.isUri())\n```\n\n","type":"object","properties":{"fqns":{"type":"array","items":{"type":"string"},"title":"fqns"}},"additionalProperties":false}},"title":"attribute_values","required":["attributeValues"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"}},"additionalProperties":false,"description":"Either a set of attribute values (such as those on a TDF) or a registered resource value"}},"title":"GetDecisionRequest","required":["entityIdentifier","action","resource"],"additionalProperties":false,"description":"Can the identified entity/entities access?\n 1. one entity reference (actor)\n 2. one action\n 3. one resource\naction.name must be provided:\n```\nhas(this.action.name)\n```\n\n"}}},"required":true}} -> - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/authorization-v-2-authorization-service-get-entitlements.api.mdx b/docs/openapi/authorization-v-2-authorization-service-get-entitlements.api.mdx deleted file mode 100644 index cdba2dd..0000000 --- a/docs/openapi/authorization-v-2-authorization-service-get-entitlements.api.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: authorization-v-2-authorization-service-get-entitlements -title: "GetEntitlements" -description: "GetEntitlements" -sidebar_label: "GetEntitlements" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: openapi/authorization-v-2 -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -GetEntitlements - - - - - - - - - 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"entities":{"type":"array","items":{"type":"object","oneOf":[{"properties":{"claims":{"title":"claims","description":"used by ERS claims mode","type":"object","properties":{"type":{"type":"string"},"value":{"type":"string","format":"binary"},"debug":{"type":"object","additionalProperties":true}},"additionalProperties":true}},"title":"claims","required":["claims"]},{"properties":{"clientId":{"type":"string","title":"client_id"}},"title":"client_id","required":["clientId"]},{"properties":{"emailAddress":{"type":"string","title":"email_address"}},"title":"email_address","required":["emailAddress"]},{"properties":{"userName":{"type":"string","title":"user_name"}},"title":"user_name","required":["userName"]}],"properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"category":{"title":"category","type":"string","enum":["CATEGORY_UNSPECIFIED","CATEGORY_SUBJECT","CATEGORY_ENVIRONMENT"]}},"title":"Entity","additionalProperties":false,"description":"PE (Person Entity) or NPE (Non-Person Entity)"},"title":"entities"}},"additionalProperties":false}},"title":"entity_chain","required":["entityChain"]},{"properties":{"registeredResourceValueFqn":{"type":"string","title":"registered_resource_value_fqn","minLength":1,"format":"uri","description":"fully qualified name of the registered resource value stored in platform policy, where in\n this case the resource acts as and represents a single entity for authorization/entitlement decisioning"}},"title":"registered_resource_value_fqn","required":["registeredResourceValueFqn"]},{"properties":{"token":{"title":"token","description":"access token (JWT), which is used to create an entity chain (comprising one or more entities)\ntoken must be provided:\n```\nhas(this.jwt) && this.jwt.size() > 0\n```\n\n","type":"object","properties":{"ephemeralId":{"type":"string","title":"ephemeral_id","description":"ephemeral id for tracking between request and response"},"jwt":{"type":"string","title":"jwt","description":"the token"}},"required":["jwt"],"additionalProperties":false}},"title":"token","required":["token"]}],"additionalProperties":false},"withComprehensiveHierarchy":{"type":"boolean","title":"with_comprehensive_hierarchy","description":"optional parameter to return all entitled values for attribute definitions with hierarchy rules, propagating\n down the hierarchical values instead of returning solely the value that is directly entitled","nullable":true}},"title":"GetEntitlementsRequest","required":["entityIdentifier"],"additionalProperties":false,"description":"What is permitted to the identified entity/entities (actor), broken down as permitted actions on attribute value FQNs?\n\n Note: the v1 API parameter 'scope' has been dropped, and it is recommended to use\n GetDecision if the resource is known"}}},"required":true}} -> - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/authorization-v-2.info.mdx b/docs/openapi/authorization-v-2.info.mdx deleted file mode 100644 index 49d0c6c..0000000 --- a/docs/openapi/authorization-v-2.info.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: authorization-v-2 -title: "authorization.v2" -description: "" -sidebar_label: Introduction -sidebar_position: 0 -hide_title: true -custom_edit_url: null ---- - -import ApiLogo from "@theme/ApiLogo"; -import Heading from "@theme/Heading"; -import SchemaTabs from "@theme/SchemaTabs"; -import TabItem from "@theme/TabItem"; -import Export from "@theme/ApiExplorer/Export"; - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/authorization.info.mdx b/docs/openapi/authorization.info.mdx deleted file mode 100644 index 4e0df7d..0000000 --- a/docs/openapi/authorization.info.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: authorization -title: "authorization" -description: "" -sidebar_label: Introduction -sidebar_position: 0 -hide_title: true -custom_edit_url: null ---- - -import ApiLogo from "@theme/ApiLogo"; -import Heading from "@theme/Heading"; -import SchemaTabs from "@theme/SchemaTabs"; -import TabItem from "@theme/TabItem"; -import Export from "@theme/ApiExplorer/Export"; - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/common.info.mdx b/docs/openapi/common.info.mdx deleted file mode 100644 index f39cc1b..0000000 --- a/docs/openapi/common.info.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: common -title: "common" -description: "" -sidebar_label: Introduction -sidebar_position: 0 -hide_title: true -custom_edit_url: null ---- - -import ApiLogo from "@theme/ApiLogo"; -import Heading from "@theme/Heading"; -import SchemaTabs from "@theme/SchemaTabs"; -import TabItem from "@theme/TabItem"; -import Export from "@theme/ApiExplorer/Export"; - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/entity.info.mdx b/docs/openapi/entity.info.mdx deleted file mode 100644 index ace16d6..0000000 --- a/docs/openapi/entity.info.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: entity -title: "entity" -description: "" -sidebar_label: Introduction -sidebar_position: 0 -hide_title: true -custom_edit_url: null ---- - -import ApiLogo from "@theme/ApiLogo"; -import Heading from "@theme/Heading"; -import SchemaTabs from "@theme/SchemaTabs"; -import TabItem from "@theme/TabItem"; -import Export from "@theme/ApiExplorer/Export"; - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/entityresolution-entity-resolution-service-create-entity-chain-from-jwt.api.mdx b/docs/openapi/entityresolution-entity-resolution-service-create-entity-chain-from-jwt.api.mdx deleted file mode 100644 index 69ecada..0000000 --- a/docs/openapi/entityresolution-entity-resolution-service-create-entity-chain-from-jwt.api.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: entityresolution-entity-resolution-service-create-entity-chain-from-jwt -title: "CreateEntityChainFromJwt" -description: "Deprecated: use v2 CreateEntityChainsFromTokens instead" -sidebar_label: "CreateEntityChainFromJwt" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: openapi/entityresolution -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Deprecated: use v2 CreateEntityChainsFromTokens instead - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/entityresolution-entity-resolution-service-resolve-entities.api.mdx b/docs/openapi/entityresolution-entity-resolution-service-resolve-entities.api.mdx deleted file mode 100644 index c9f1d62..0000000 --- a/docs/openapi/entityresolution-entity-resolution-service-resolve-entities.api.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: entityresolution-entity-resolution-service-resolve-entities -title: "ResolveEntities" -description: "Deprecated: use v2 ResolveEntities instead" -sidebar_label: "ResolveEntities" -hide_title: true -hide_table_of_contents: true -api: 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 -sidebar_class_name: "post api-method" -info_path: openapi/entityresolution -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Deprecated: use v2 ResolveEntities instead - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/entityresolution.info.mdx b/docs/openapi/entityresolution.info.mdx deleted file mode 100644 index 46ab1dc..0000000 --- a/docs/openapi/entityresolution.info.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: entityresolution -title: "entityresolution" -description: "" -sidebar_label: Introduction -sidebar_position: 0 -hide_title: true -custom_edit_url: null ---- - -import ApiLogo from "@theme/ApiLogo"; -import Heading from "@theme/Heading"; -import SchemaTabs from "@theme/SchemaTabs"; -import TabItem from "@theme/TabItem"; -import Export from "@theme/ApiExplorer/Export"; - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/kas-access-service-legacy-public-key.api.mdx b/docs/openapi/kas-access-service-legacy-public-key.api.mdx deleted file mode 100644 index fc48589..0000000 --- a/docs/openapi/kas-access-service-legacy-public-key.api.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: kas-access-service-legacy-public-key -title: "LegacyPublicKey" -description: "buf:lint:ignore RPC_RESPONSE_STANDARD_NAME" -sidebar_label: "LegacyPublicKey" -hide_title: true -hide_table_of_contents: true -api: eJydVk1z2zYQ/SsY9MpIaY88VeOonbap7bGc5uBo6CWwJBGDAAssZKsa/vfOglIjWY7T9qCxvN/79mFXO0nQRlneyQeIs4VSGOMKw8YolOtCaowqmIGMd7KUdWpKaxyVpnU+oLi5vqhulqvrq8vVslrdLi7fLW7eVZeL35eykH7AAOz4i5blefTZe2xBba9TbY36DbeykAME6JEwcD076aBHWUqwrQ+Gul4W0nAVfyYMbB5Vhz3IcidpO7BlpGBcKwtJhuyp6ziuCxkwDt5FjOzzw9u3/Oe0wVXKJcpCKu8IHbEJDIM1Krcy/xzZbvdK7tOAHwMMAwbRY4zQomh8EPeT7f3sk/vkxG2H4tfV1aUIOASM6ChnmixX2fIPsAnvhYmT4eQ+O+qz9b61OBuCJ1+nZnbkJsdxHLmqBpKl846XIfjwP/r19WdUxEMLPGgyE6rKa3wJFXyCfrCYieY8VY1PTjPB0KWehQqcQotaFjK5B+cfXR73BqzRFYQ29VwdNwLaGocVPilEnR2+BCwk2ICgtxU+mUg8yAFDb2I03lUanckOAaNPQXGQDlKkLGzAWNTVEFB5p03Gp5BQ+zDpfaLKN1UA12Ku0nBHXFZWG0cYHNisgg0YC7VlQw0ElfWZVclBog4dMb6oz18YsyESUIqCoSzEY2dUJ2Lnk9WiRgFOMGRiw8MVvhF3++GHQc0uvMb1mWAmx0LuCfhtxi6Exg1aHuqbBpRxrUDmyIHC5yUZJ5autSZ2M7FwW5HiV1yPfKxXYM1fqAU4LZj1HIY6POlnlZGYaSQwNq5fUYnGoNWF8OEodL3NEZU16CijMJl/m8aT9jlUYyEz7C+B2PjQA/GONA7CdkpWp/alXKAneoG9PspKISE/1a9rn4/qwjsC4yKTAkJtKEDYiojB7AE44A7Wu1Y8GuoEiB+5HEEdkJjC1RgzTlnum/z9PMhr+2bhtpJLP+gvvHOoSByWy79vKXtMlQSkFNw0xn3AUnREQyznczUJmAnK93PtVZy3fp7pFuffsdmb04WaF2F+CNR5vkgt5rkDdbKU8weI/KmGfI+qh3yQIobN4RqlYGUpD/n3+4yTn72g5aQTVwO623c/icECMT3Eh5v3ku9QRJWCoa0s79a8OBqfWbIH7wHiWUhZSC5k+mfzPbNr8JF6yMt5fyjPD+pJkN2XHf/fDvmevoRPNB8sGMfpMxy7PXx3+6KfAbguZOcjsX63qyHih2DHkcXTCWdYtYm8J7UsG7ARC8mOp0d//+Zkxm4DweTFWt6tx0J2CBpDjjQ58m+MgY68zq4ZR/mHBD8vb+U4/g0reS29 -sidebar_class_name: "get api-method" -info_path: openapi/kas -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -buf:lint:ignore RPC_RESPONSE_STANDARD_NAME - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/kas-access-service-public-key.api.mdx b/docs/openapi/kas-access-service-public-key.api.mdx deleted file mode 100644 index 07dfd9e..0000000 --- a/docs/openapi/kas-access-service-public-key.api.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: kas-access-service-public-key -title: "PublicKey" -description: "PublicKey" -sidebar_label: "PublicKey" -hide_title: true -hide_table_of_contents: true -api: eJytVlFv4zYM/isC9+pLbn3004pbbxg2YIdr76kIAlqibV1lyZMot1ng/z5QTntJ03Z3wJ4Si+Qn8uNn0ntg7BLUt3CHaXWpNaV0TXGymmBTQRgpItvgfzdQn7usPuXGWf0H7aCCESMOxBQFbg8eB4Ia0HUhWu4HqMB6qOHvTFHck+5pQKj3wLtRPBNH6zuogC2709B5rp4A24F/HEqCjkGmH4eYYJ43FURKY/CJkvhevH8vP4aSjnYUnqCG61woggp08EyexQXH0VldqFx/TeK3P78zNF9JS3VjFOLZLreMTyS/kd7itL2jHcwV3FnzlrOY5/nb81MbPx+qgwrQGCvpovt0lE2LLtE8S7ChFrPjcwKuYgzx/ytfB0MvFUMPOIyOinh94G0bsjciWvJ5kEONXpMjAxVkf+fDvS9dn9BZs8XY5UGyk0LQOOtpSw+ayJSAb4AVoIuEZrelB5tY+jpSHGxKNvitIW9LQKQUctQC0mNOXA5btI7Mdoykg1/oFLwmxMUeMm9Du43oOypZWqlI0ipm65miR1dMOKF12DhxNMi4daGILHvM3JNn4ZcKAaftuOlJJUbOSQmVlbrvre5V6kN2RjWk0CuhTE3oMqnQqtsuhM7RKo569SEY2pwdrERkA6WE3Yu9Oc3gUhmayElT37Wore8UiUbUAeE8JevVle+cTf1KXfqdyumV0KMYFzQ6+w8Zhd6oRJ4Fhns6qee6MLEyxGhd2rxhUq0lZyoV4hF0syuI2lnyXFhY3P9bxov1OVVzBYX2l0hsQxyQoYbGeoy75bImdy/d9fLbyjGTvKqvW5+36kPwjNYnEQXGxnLEuFOJoj0Q8Mg7uuA7dW+5V6h+kXQU98hqgWsoFZ7KeWjL/3OQ1dFIOvRhjIFDk9vVpd+djKgPwXvSrB6Hy/eXVCKWTCJxjn5p4wGwVj3zmOr1Wi8HogQdhrUJOq27sC5yS+ufxO1dpDGSSKuMMpgfJ+Hxfcc7cSDug6zOjooikHuoYX2HaT1dyM/2aG5XkChOj/szRwc1PCZ3GHaS2dnrdbXY1F8j+ZtfP6rRIYt21JfPf4LsrEQ6R8s7qG83MlXaUCT0uAwwnUFCBZLI8jD9LNIbQ+IBy+Q+LNHjQk/Cn+TJ9MDr0aH1glAq2h9IuD3cO11ABc+I2FTQh8TitN83mOhLdPMsx8u6FnqMTTIMzWElVSCBp58bhxcLQBb/K/7L18T3eE4nfht5iLbM4/p2M1fQExqKJbclQL6UxmP0syUoKE8K+e3qBub5X4QkV5w= -sidebar_class_name: "get api-method" -info_path: openapi/kas -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -PublicKey - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/kas-access-service-rewrap.api.mdx b/docs/openapi/kas-access-service-rewrap.api.mdx deleted file mode 100644 index 5e2e5b8..0000000 --- a/docs/openapi/kas-access-service-rewrap.api.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -id: kas-access-service-rewrap -title: "Rewrap" -description: "Rewrap" -sidebar_label: "Rewrap" -hide_title: true -hide_table_of_contents: true -api: eJztWMFyGzcM/RUOe91IaY461U3TmTSd2GM76UHWbCAS0jLighuSK3vr0b93QK6kVSTLaZtjfDENgg8gCDxg/SgjLIOcTOUKwuhCKQzhBv3aKJSzQroGPUTj6K2Wk2OV0TXee2hkIT1+aTHEX53u5ORRKkcRKfISmsYalUDGn4MjlgVVYQ28il2DciLd/DOqKAvZeDYZDYakZ5aE+jpj37oV0uBMiN7QUhYymmiTIGmXvStlTPqbzV4he9vDyUKC1ob9Ans1MLsAG3DD5xjJeNRyEn2LSRAaRyE79+rlS/6lMShvGsaRE3nTpvjI4nuFoMYIGuJJze29djpPXelxp7oG26IspCO8XMjJdAdKrbVyUwz+rufoh5I+3gPJ3DmLQEMReA/dULBz9rRnKbCz4qsofvrIbn4SHhuPASkGAUJ3BLVRYG0nGFyLdBlxXxlVCQUk5ijQxAr9HQm+TyFA5HvwKvvPq95vXnpUrQ9mjbzdqpgxC+G8gDsS1oQo3CJLw0hciMY73Sr0O6kwQeBDgyqiFtGJgFE4Qt6PFQa8I7EGb4Ain58HJJU2gbrthjCkOT8wCCCB3js/uqM7ErcVij9uLt/vA5GSSCycF9sYmZBVkjMjueFYNh4Zbp+4SNHE7i8PTYP6HXbnyijrlvdZuVxhJwu5cL6GyG/eRc6fEzYChmAcXbVza9QzNnrdsknKyQYjpJr4iD4Yd77Sk2K57jVPunNQqwfZWUgTsQ7P117jrFEdU9/TrmSd0miZbbY2/iuL+0I8tJ2y4OwzJYUhvWXJkLamvWzGBXmIv4LwbemwgnA2F4YeHOsOfTk0OeOy/8F1P7juf3DdppAr7PJIcpmCf75YV9iVkLTL/FZ93YYIsQ1nGSdrDJP93dbydqzg2n9mqtif3lLFEPEqccl/hevZ7uv8eo/3IkOKi6u3QlVASwwn56IM8exglFrMAti9o/nnTc9B32n6UU7jqWfBB6gbi2lwJRfLhWtJ88CK1NYsVEAKLWpZyJZW5O65SxhagzW6BL9sa/aOLwLaGsISHxSiTgf2gIUE6xF0V+KDCZGD26CvTW5eGsmkAx6Da71ikAraEJNwAcaiLrkvOcrhZLy583nftbF0i9LzcyQvDd+I3UrbhiJ6Apu2YA3GwtymzgsRSuvSjNkStLHihp173xG5cFHl1BUcyqInkFC51mrmEK5Bauu+vN1CTJfOLS2OfKNGr53G2ZEgzRg1hgDLk29z6MGF0LhGy4/6YgHK0DIXvegRjl0yJN7Q0ppQjcQFdaINTxwdnLFOgTV/oxZAWjB5MEys8OA+NykSI40RjA2zM1tiYdDqRI176HmXEJU1SLGftFj9+TTOu8fdpW9RJ4K477GGwHfZ2LxdnrJ1pttszu1+/VSvHUUwlIgZ/NxED74TAb3pA7CNO1hHS3FvYiVA/MLuiFhBFBlujiHFKclzZzgBMhqQa/8OjXfRzdvF6IK6A3567YhQRbEll2+/UjqRPfEYW0/5GXvAiahibMJkPFZZwJmgXD3WToXx0o1TuoXxT6z24rAvyc2WCYf2dt/DNcbK6TQfpk/NBmIlJ3K8gjBevxr7rV5Az1Nsmk5ab+VEbl3qKY79OSqqN3lPXDZIt7/9LhoLkTNGfLj+U/KIEbjVm9jJyXRWSGbd6/0Hen/6qQ/sQXoaWrjhRLWC4/4iC7mdwydy/TMf4zvXkIieoMZhXA7O7lI54kMcNxYMz1c5Do99yKa90fWrRLQJZlbIisM6mcrHxzkE/ODtZsPiLy36/tJp3mDKnExnm0JWCBp9ijNPpjnbkeKLW3ZhV4nH3Yrnu3yCu30Tz+rOBi9/dXlzKws57/8lUqdWJj3c80XgPofOpVAkkkiyR2mBlm2iVpkx+ecfxQhALg== -sidebar_class_name: "post api-method" -info_path: openapi/kas -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Rewrap - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/kas.info.mdx b/docs/openapi/kas.info.mdx deleted file mode 100644 index 278a1f3..0000000 --- a/docs/openapi/kas.info.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: kas -title: "kas" -description: "" -sidebar_label: Introduction -sidebar_position: 0 -hide_title: true -custom_edit_url: null ---- - -import ApiLogo from "@theme/ApiLogo"; -import Heading from "@theme/Heading"; -import SchemaTabs from "@theme/SchemaTabs"; -import TabItem from "@theme/TabItem"; -import Export from "@theme/ApiExplorer/Export"; - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/wellknownconfiguration-well-known-service-get-well-known-configuration.api.mdx b/docs/openapi/wellknownconfiguration-well-known-service-get-well-known-configuration.api.mdx deleted file mode 100644 index d116615..0000000 --- a/docs/openapi/wellknownconfiguration-well-known-service-get-well-known-configuration.api.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: wellknownconfiguration-well-known-service-get-well-known-configuration -title: "GetWellKnownConfiguration" -description: "GetWellKnownConfiguration" -sidebar_label: "GetWellKnownConfiguration" -hide_title: true -hide_table_of_contents: true -api: eJytVk1zGzcM/SsY9rpepT3qVE/qZNJ2mk6ctAfLo0AkdpcJF9zyQ7bq2f/eAXdly5Lt5NCTVgAIAg/AI+5Uwjaq5ZW6Iee+sr9h7bmxbQ6YrOf6b3LuNxFfUthaTeq6Un6gSfvOqOX3HqzfUrqXvT40VZUKFAfPkaJa3qmfXr2SH0NRBzsUi6W6zFpTjKpS2nMiTmKCw+CsLk4WX6LY3amoO+pRvtJuILVUfvOFdFKVGoIEnux0y6Noi7lNTuz1UWzHbtAYKyp0fz5y6JneN2p5dX8xZ+fUWB387zcUDiUxBcvtoWTjvSPkQxGGgLtDwTciSSHTeF0d4ff5L3SZPkOgIVAkThEQzI6xtxqd24E4N7AVK7jprO5AI8OGgGzqKKwYJJ8KEKY85GuKX77muOUzkM4h2i2JOus0+azAB8AVg7MxgW8maazhHIbgTdYU7qVgI9DtQDqRgeQhUgLPJPrUUaQVwxaDRU5yfhOJdVEi7/YKsGykMygCMlAIPtQrXjF87Ah+vXz/xwMQpc7Q+AB7jGycTEowtbTA3Bqt962jegg++U1u6mKvxhOsL0viR2BPaORABgwm3MOiPUcbk+VWUmgsORNXPJegx0EAeKZOsYZ3DNH3BA65zdhSrGB/+4qht22XpIYxD4MPAudmJxXEJPV5DEENb3wAusV+cFSBFbTmrLh9uACc/SoQ3mckcN17IgMokK8YpjatC+KGEloXpwpiOgYfg5jIZZtS8ZbmlruxqZOaQ4F8n0Yplkj3QX1Hafcl2dd2jk6N40N5n2WoDzM9PTtzDbpI4ziWVmgwu3TKYBfShP8nfxk6sJqppFJzAQuns0/rxmc2wtrEuRehRtbkyKhKZS7ErSpleYvOmjWGNvcSnSSCxlmmNd1qIlMOPDisFLpAaHZrurUxCTEPFHobo/W8NsS2HAgUfQ5anHSYYyrCBq0jsx4Cac8TnOJvUzpUVcrntPbNOiC3VKK0klFf2qvEmigwuqLCLVqHGyeGMlZr58srkRlz6ohTYYECwONySLfEhClHECireeJi57MzMjPCG5z7mZJ8A1fz+IdB16+9oesTQS1c0FOM2D5Zm8cRnIOhLTkp6lmDWqasEBXMHk5DsgwX3DobuxrOeQc5PnP04IzzGp39VwaTDchUiBuZnsPwLwsS9Tyn1y+oJooqdP7gerMrHrWzxKmeGFHMv93Gk/b0RVQF9qdAbHzoMclbaRnDbrpsk9un7nrhhRxf0h6X6rXnhJbLY4JhY1PAsINIwc4A7HFH57mdaAvhZwlnIrw9u8WCU5FPr9kTTl56cc5594iyXntm0gn25PL9KZUTUySBUg48lXF2uIQupSEuFws9CaQTtO8Xxuu4aP2itFtc/CBmZ48JV417Jjy876X1r6fUedklWyodgqlTS7WoZbU8KxS18ANxMs3Z8XYWKWwpxLJ35eDUUu0Dn4lQoj4ZvYtJB+8H4o+/vIHBYZK+gk8ffleyPEVZYmzaqeXVtTBO4w9XxKdX3pNbVKUktunP9kfp1MHH1GMhesb+xUfn2N19dye6TYvBoZU1cUr6bsbsSh1gpsqm/gRq15XqfExifne3wUifghtHEf+TKcw5l0VKeHV5dT1WqiM0FArMX2kn7KU1DVKteVBPHzPB8b6yby8+qnH8D13nd+Q= -sidebar_class_name: "get api-method" -info_path: openapi/wellknownconfiguration -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -GetWellKnownConfiguration - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/openapi/wellknownconfiguration.info.mdx b/docs/openapi/wellknownconfiguration.info.mdx deleted file mode 100644 index 07acd14..0000000 --- a/docs/openapi/wellknownconfiguration.info.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: wellknownconfiguration -title: "wellknownconfiguration" -description: "" -sidebar_label: Introduction -sidebar_position: 0 -hide_title: true -custom_edit_url: null ---- - -import ApiLogo from "@theme/ApiLogo"; -import Heading from "@theme/Heading"; -import SchemaTabs from "@theme/SchemaTabs"; -import TabItem from "@theme/TabItem"; -import Export from "@theme/ApiExplorer/Export"; - - - - - - - - - - - - - \ No newline at end of file diff --git a/specs-processed/authorization/authorization.openapi.yaml b/specs-processed/authorization/authorization.openapi.yaml deleted file mode 100644 index 281ba00..0000000 --- a/specs-processed/authorization/authorization.openapi.yaml +++ /dev/null @@ -1,1018 +0,0 @@ -openapi: 3.1.0 -info: - title: authorization - description: '' - version: v1 -paths: - /v1/authorization: - post: - tags: - - authorization.AuthorizationService - summary: GetDecisions - operationId: authorization.AuthorizationService.GetDecisions - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/authorization.GetDecisionsRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/authorization.GetDecisionsResponse' - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' - /v1/token/authorization: - post: - tags: - - authorization.AuthorizationService - summary: GetDecisionsByToken - operationId: authorization.AuthorizationService.GetDecisionsByToken - parameters: - - name: decisionRequests.actions.id - in: query - description: Generated uuid in database - schema: - type: string - title: id - description: Generated uuid in database - - name: decisionRequests.actions.standard - in: query - description: Deprecated - schema: - title: standard - description: Deprecated - $ref: '#/components/schemas/policy.Action.StandardAction' - - name: decisionRequests.actions.custom - in: query - description: Deprecated - schema: - type: string - title: custom - description: Deprecated - - name: decisionRequests.actions.name - in: query - schema: - type: string - title: name - - name: decisionRequests.actions.metadata.createdAt.seconds - in: query - description: |- - Represents seconds of UTC time since Unix epoch - 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to - 9999-12-31T23:59:59Z inclusive. - schema: - type: - - integer - - string - title: seconds - format: int64 - description: |- - Represents seconds of UTC time since Unix epoch - 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to - 9999-12-31T23:59:59Z inclusive. - - name: decisionRequests.actions.metadata.createdAt.nanos - in: query - description: >- - Non-negative fractions of a second at nanosecond resolution. - Negative - second values with fractions must still have non-negative nanos values - that count forward in time. Must be from 0 to 999,999,999 - inclusive. - schema: - type: integer - title: nanos - format: int32 - description: >- - Non-negative fractions of a second at nanosecond resolution. - Negative - second values with fractions must still have non-negative nanos values - that count forward in time. Must be from 0 to 999,999,999 - inclusive. - - name: decisionRequests.actions.metadata.labels.key - in: query - schema: - type: string - title: key - - name: decisionRequests.actions.metadata.labels.value - in: query - schema: - type: string - title: value - - name: decisionRequests.tokens.id - in: query - description: ephemeral id for tracking between request and response - schema: - type: string - title: id - description: ephemeral id for tracking between request and response - - name: decisionRequests.tokens.jwt - in: query - description: the token - schema: - type: string - title: jwt - description: the token - - name: decisionRequests.resourceAttributes.resourceAttributesId - in: query - schema: - type: string - title: resource_attributes_id - - name: decisionRequests.resourceAttributes.attributeValueFqns - in: query - schema: - type: array - items: - type: string - title: attribute_value_fqns - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/authorization.GetDecisionsByTokenResponse' - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' - /v1/entitlements: - post: - tags: - - authorization.AuthorizationService - summary: GetEntitlements - operationId: authorization.AuthorizationService.GetEntitlements - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/authorization.GetEntitlementsRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/authorization.GetEntitlementsResponse' - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' -components: - schemas: - authorization.DecisionResponse.Decision: - type: string - title: Decision - enum: - - DECISION_UNSPECIFIED - - DECISION_DENY - - DECISION_PERMIT - authorization.Entity.Category: - type: string - title: Category - enum: - - CATEGORY_UNSPECIFIED - - CATEGORY_SUBJECT - - CATEGORY_ENVIRONMENT - policy.Action.StandardAction: - type: string - title: StandardAction - enum: - - STANDARD_ACTION_UNSPECIFIED - - STANDARD_ACTION_DECRYPT - - STANDARD_ACTION_TRANSMIT - authorization.DecisionRequest: - type: object - properties: - actions: - type: array - items: - $ref: '#/components/schemas/policy.Action' - title: actions - entityChains: - type: array - items: - $ref: '#/components/schemas/authorization.EntityChain' - title: entity_chains - resourceAttributes: - type: array - items: - $ref: '#/components/schemas/authorization.ResourceAttribute' - title: resource_attributes - title: DecisionRequest - additionalProperties: false - description: >- - Example Request Get Decisions to answer the question - Do Bob - (represented by entity chain ec1) - - and Alice (represented by entity chain ec2) have TRANSMIT authorization - for - - 2 resources; resource1 (attr-set-1) defined by attributes foo:bar - resource2 (attr-set-2) defined by attribute foo:bar, color:red ? - - - { - - "actions": [ - - { - - "standard": "STANDARD_ACTION_TRANSMIT" - - } - - ], - - "entityChains": [ - - { - - "id": "ec1", - - "entities": [ - - { - - "emailAddress": "bob@example.org" - - } - - ] - - }, - - { - - "id": "ec2", - - "entities": [ - - { - - "userName": "alice@example.org" - - } - - ] - - } - - ], - - "resourceAttributes": [ - - { - - "resourceAttributeId": "attr-set-1", - - "attributeFqns": [ - - "https://www.example.org/attr/foo/value/value1" - - ] - - }, - - { - - "resourceAttributeId": "attr-set-2", - - "attributeFqns": [ - - "https://example.net/attr/attr1/value/value1", - - "https://example.net/attr/attr1/value/value2" - - ] - - } - - ] - - } - authorization.DecisionResponse: - type: object - properties: - entityChainId: - type: string - title: entity_chain_id - description: ephemeral entity chain id from the request - resourceAttributesId: - type: string - title: resource_attributes_id - description: ephemeral resource attributes id from the request - action: - title: action - description: Action of the decision response - $ref: '#/components/schemas/policy.Action' - decision: - title: decision - description: The decision response - $ref: '#/components/schemas/authorization.DecisionResponse.Decision' - obligations: - type: array - items: - type: string - title: obligations - description: optional list of obligations represented in URI format - title: DecisionResponse - additionalProperties: false - description: >- - Example response for a Decision Request - Do Bob (represented by entity - chain ec1) - - and Alice (represented by entity chain ec2) have TRANSMIT authorization - for - - 2 resources; resource1 (attr-set-1) defined by attributes foo:bar - resource2 (attr-set-2) defined by attribute foo:bar, color:red ? - - - Results: - - - bob has permitted authorization to transmit for a resource defined by - attr-set-1 attributes and has a watermark obligation - - - bob has denied authorization to transmit a for a resource defined by - attr-set-2 attributes - - - alice has permitted authorization to transmit for a resource defined - by attr-set-1 attributes - - - alice has denied authorization to transmit a for a resource defined by - attr-set-2 attributes - - - { - - "entityChainId": "ec1", - - "resourceAttributesId": "attr-set-1", - - "decision": "DECISION_PERMIT", - - "obligations": [ - - "http://www.example.org/obligation/watermark" - - ] - - }, - - { - - "entityChainId": "ec1", - - "resourceAttributesId": "attr-set-2", - - "decision": "DECISION_PERMIT" - - }, - - { - - "entityChainId": "ec2", - - "resourceAttributesId": "attr-set-1", - - "decision": "DECISION_PERMIT" - - }, - - { - - "entityChainId": "ec2", - - "resourceAttributesId": "attr-set-2", - - "decision": "DECISION_DENY" - - } - authorization.Entity: - type: object - oneOf: - - properties: - claims: - title: claims - $ref: '#/components/schemas/google.protobuf.Any' - title: claims - required: - - claims - - properties: - clientId: - type: string - title: client_id - title: client_id - required: - - clientId - - properties: - custom: - title: custom - $ref: '#/components/schemas/authorization.EntityCustom' - title: custom - required: - - custom - - properties: - emailAddress: - type: string - title: email_address - description: one of the entity options must be set - title: email_address - required: - - emailAddress - - properties: - remoteClaimsUrl: - type: string - title: remote_claims_url - title: remote_claims_url - required: - - remoteClaimsUrl - - properties: - userName: - type: string - title: user_name - title: user_name - required: - - userName - - properties: - uuid: - type: string - title: uuid - title: uuid - required: - - uuid - properties: - id: - type: string - title: id - description: ephemeral id for tracking between request and response - category: - title: category - $ref: '#/components/schemas/authorization.Entity.Category' - title: Entity - additionalProperties: false - description: PE (Person Entity) or NPE (Non-Person Entity) - authorization.EntityChain: - type: object - properties: - id: - type: string - title: id - description: ephemeral id for tracking between request and response - entities: - type: array - items: - $ref: '#/components/schemas/authorization.Entity' - title: entities - title: EntityChain - additionalProperties: false - description: A set of related PE and NPE - authorization.EntityCustom: - type: object - properties: - extension: - title: extension - $ref: '#/components/schemas/google.protobuf.Any' - title: EntityCustom - additionalProperties: false - description: Entity type for custom entities beyond the standard types - authorization.EntityEntitlements: - type: object - properties: - entityId: - type: string - title: entity_id - attributeValueFqns: - type: array - items: - type: string - title: attribute_value_fqns - title: EntityEntitlements - additionalProperties: false - authorization.GetDecisionsByTokenRequest: - type: object - properties: - decisionRequests: - type: array - items: - $ref: '#/components/schemas/authorization.TokenDecisionRequest' - title: decision_requests - title: GetDecisionsByTokenRequest - additionalProperties: false - authorization.GetDecisionsByTokenResponse: - type: object - properties: - decisionResponses: - type: array - items: - $ref: '#/components/schemas/authorization.DecisionResponse' - title: decision_responses - title: GetDecisionsByTokenResponse - additionalProperties: false - authorization.GetDecisionsRequest: - type: object - properties: - decisionRequests: - type: array - items: - $ref: '#/components/schemas/authorization.DecisionRequest' - title: decision_requests - title: GetDecisionsRequest - additionalProperties: false - authorization.GetDecisionsResponse: - type: object - properties: - decisionResponses: - type: array - items: - $ref: '#/components/schemas/authorization.DecisionResponse' - title: decision_responses - title: GetDecisionsResponse - additionalProperties: false - authorization.GetEntitlementsRequest: - type: object - properties: - entities: - type: array - items: - $ref: '#/components/schemas/authorization.Entity' - title: entities - description: list of requested entities - scope: - title: scope - description: optional attribute fqn as a scope - nullable: true - $ref: '#/components/schemas/authorization.ResourceAttribute' - withComprehensiveHierarchy: - type: boolean - title: with_comprehensive_hierarchy - description: >- - optional parameter to return a full list of entitlements - returns - lower hierarchy attributes - nullable: true - title: GetEntitlementsRequest - additionalProperties: false - description: >- - Request to get entitlements for one or more entities for an optional - attribute scope - - - Example: Get entitlements for bob and alice (both represented using an - email address - - - { - - "entities": [ - - { - - "id": "e1", - - "emailAddress": "bob@example.org" - - }, - - { - - "id": "e2", - - "emailAddress": "alice@example.org" - - } - - ], - - "scope": { - - "attributeFqns": [ - - "https://example.net/attr/attr1/value/value1", - - "https://example.net/attr/attr1/value/value2" - - ] - - } - - } - authorization.GetEntitlementsResponse: - type: object - properties: - entitlements: - type: array - items: - $ref: '#/components/schemas/authorization.EntityEntitlements' - title: entitlements - title: GetEntitlementsResponse - additionalProperties: false - description: >- - Example Response for a request of : Get entitlements for bob and alice - (both represented using an email address - - - { - - "entitlements": [ - - { - - "entityId": "e1", - - "attributeValueReferences": [ - - { - - "attributeFqn": "http://www.example.org/attr/foo/value/bar" - - } - - ] - - }, - - { - - "entityId": "e2", - - "attributeValueReferences": [ - - { - - "attributeFqn": "http://www.example.org/attr/color/value/red" - - } - - ] - - } - - ] - - } - authorization.ResourceAttribute: - type: object - properties: - resourceAttributesId: - type: string - title: resource_attributes_id - attributeValueFqns: - type: array - items: - type: string - title: attribute_value_fqns - title: ResourceAttribute - additionalProperties: false - description: A logical bucket of attributes belonging to a "Resource" - authorization.Token: - type: object - properties: - id: - type: string - title: id - description: ephemeral id for tracking between request and response - jwt: - type: string - title: jwt - description: the token - title: Token - additionalProperties: false - authorization.TokenDecisionRequest: - type: object - properties: - actions: - type: array - items: - $ref: '#/components/schemas/policy.Action' - title: actions - tokens: - type: array - items: - $ref: '#/components/schemas/authorization.Token' - title: tokens - resourceAttributes: - type: array - items: - $ref: '#/components/schemas/authorization.ResourceAttribute' - title: resource_attributes - title: TokenDecisionRequest - additionalProperties: false - description: >- - Example Request Get Decisions by Token to answer the question - Do Bob - and client1 (represented by token tok1) - - and Alice and client2 (represented by token tok2) have TRANSMIT - authorization for - - 2 resources; resource1 (attr-set-1) defined by attributes foo:bar - resource2 (attr-set-2) defined by attribute foo:bar, color:red ? - - - { - - "actions": [ - - { - - "standard": "STANDARD_ACTION_TRANSMIT" - - } - - ], - - "tokens": [ - - { - - "id": "tok1", - - "jwt": .... - - }, - - { - - "id": "tok2", - - "jwt": ..... - - } - - ], - - "resourceAttributes": [ - - { - - "attributeFqns": [ - - "https://www.example.org/attr/foo/value/value1" - - ] - - }, - - { - - "attributeFqns": [ - - "https://example.net/attr/attr1/value/value1", - - "https://example.net/attr/attr1/value/value2" - - ] - - } - - ] - - } - common.Metadata: - type: object - properties: - createdAt: - title: created_at - description: >- - created_at set by server (entity who created will recorded in an - audit event) - $ref: '#/components/schemas/google.protobuf.Timestamp' - updatedAt: - title: updated_at - description: >- - updated_at set by server (entity who updated will recorded in an - audit event) - $ref: '#/components/schemas/google.protobuf.Timestamp' - labels: - type: object - title: labels - additionalProperties: - type: string - title: value - description: optional short description - title: Metadata - additionalProperties: false - description: Struct to uniquely identify a resource with optional additional metadata - common.Metadata.LabelsEntry: - type: object - properties: - key: - type: string - title: key - value: - type: string - title: value - title: LabelsEntry - additionalProperties: false - google.protobuf.Any: - type: object - properties: - type: - type: string - value: - type: string - format: binary - debug: - type: object - additionalProperties: true - additionalProperties: true - description: >- - Contains an arbitrary serialized message along with a @type that - describes the type of the serialized message. - google.protobuf.Timestamp: - type: string - format: date-time - description: >- - A Timestamp represents a point in time independent of any time zone or - local - calendar, encoded as a count of seconds and fractions of seconds at - nanosecond resolution. The count is relative to an epoch at UTC midnight on - January 1, 1970, in the proleptic Gregorian calendar which extends the - Gregorian calendar backwards to year one. - - All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap - second table is needed for interpretation, using a [24-hour linear - smear](https://developers.google.com/time/smear). - - The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By - restricting to that range, we ensure that we can convert to and from [RFC - 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. - - # Examples - - Example 1: Compute Timestamp from POSIX `time()`. - - Timestamp timestamp; - timestamp.set_seconds(time(NULL)); - timestamp.set_nanos(0); - - Example 2: Compute Timestamp from POSIX `gettimeofday()`. - - struct timeval tv; - gettimeofday(&tv, NULL); - - Timestamp timestamp; - timestamp.set_seconds(tv.tv_sec); - timestamp.set_nanos(tv.tv_usec * 1000); - - Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. - - FILETIME ft; - GetSystemTimeAsFileTime(&ft); - UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; - - // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z - // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. - Timestamp timestamp; - timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); - timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); - - Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. - - long millis = System.currentTimeMillis(); - - Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) - .setNanos((int) ((millis % 1000) * 1000000)).build(); - - Example 5: Compute Timestamp from Java `Instant.now()`. - - Instant now = Instant.now(); - - Timestamp timestamp = - Timestamp.newBuilder().setSeconds(now.getEpochSecond()) - .setNanos(now.getNano()).build(); - - Example 6: Compute Timestamp from current time in Python. - - timestamp = Timestamp() - timestamp.GetCurrentTime() - - # JSON Mapping - - In JSON format, the Timestamp type is encoded as a string in the - [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the - format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" - where {year} is always expressed using four digits while {month}, {day}, - {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional - seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), - are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone - is required. A proto3 JSON serializer should always use UTC (as indicated by - "Z") when printing the Timestamp type and a proto3 JSON parser should be - able to accept both UTC and other timezones (as indicated by an offset). - - For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past - 01:30 UTC on January 15, 2017. - - In JavaScript, one can convert a Date object to this format using the - standard - [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) - method. In Python, a standard `datetime.datetime` object can be converted - to this format using - [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with - the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use - the Joda Time's [`ISODateTimeFormat.dateTime()`]( - http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() - ) to obtain a formatter capable of generating timestamps in this format. - policy.Action: - type: object - oneOf: - - properties: - custom: - type: string - title: custom - description: Deprecated - title: custom - required: - - custom - - properties: - standard: - title: standard - description: Deprecated - $ref: '#/components/schemas/policy.Action.StandardAction' - title: standard - required: - - standard - properties: - id: - type: string - title: id - description: Generated uuid in database - name: - type: string - title: name - metadata: - title: metadata - $ref: '#/components/schemas/common.Metadata' - title: Action - additionalProperties: false - description: An action an entity can take - connect-protocol-version: - type: number - title: Connect-Protocol-Version - enum: - - 1 - description: Define the version of the Connect protocol - const: 1 - connect-timeout-header: - type: number - title: Connect-Timeout-Ms - description: Define the timeout, in ms - connect.error: - type: object - properties: - code: - type: string - examples: - - not_found - enum: - - canceled - - unknown - - invalid_argument - - deadline_exceeded - - not_found - - already_exists - - permission_denied - - resource_exhausted - - failed_precondition - - aborted - - out_of_range - - unimplemented - - internal - - unavailable - - data_loss - - unauthenticated - description: >- - The status code, which should be an enum value of - [google.rpc.Code][google.rpc.Code]. - message: - type: string - description: >- - A developer-facing error message, which should be in English. Any - user-facing error message should be localized and sent in the - [google.rpc.Status.details][google.rpc.Status.details] field, or - localized by the client. - detail: - $ref: '#/components/schemas/google.protobuf.Any' - title: Connect Error - additionalProperties: true - description: >- - Error type returned by Connect: - https://connectrpc.com/docs/go/errors/#http-representation -security: [] -tags: - - name: authorization.AuthorizationService -servers: - - url: https://example.com - description: Example OpenTDF platform URL diff --git a/specs-processed/authorization/v2/authorization.openapi.yaml b/specs-processed/authorization/v2/authorization.openapi.yaml deleted file mode 100644 index b939907..0000000 --- a/specs-processed/authorization/v2/authorization.openapi.yaml +++ /dev/null @@ -1,795 +0,0 @@ -openapi: 3.1.0 -info: - version: v2 - title: authorization.v2 - description: '' -paths: - /authorization.v2.AuthorizationService/GetDecision: - post: - tags: - - authorization.v2.AuthorizationService - summary: GetDecision - operationId: authorization.v2.AuthorizationService.GetDecision - parameters: - - name: Connect-Protocol-Version - in: header - required: true - schema: - $ref: '#/components/schemas/connect-protocol-version' - - name: Connect-Timeout-Ms - in: header - schema: - $ref: '#/components/schemas/connect-timeout-header' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/authorization.v2.GetDecisionRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/authorization.v2.GetDecisionResponse' - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' - /authorization.v2.AuthorizationService/GetDecisionMultiResource: - post: - tags: - - authorization.v2.AuthorizationService - summary: GetDecisionMultiResource - operationId: authorization.v2.AuthorizationService.GetDecisionMultiResource - parameters: - - name: Connect-Protocol-Version - in: header - required: true - schema: - $ref: '#/components/schemas/connect-protocol-version' - - name: Connect-Timeout-Ms - in: header - schema: - $ref: '#/components/schemas/connect-timeout-header' - requestBody: - content: - application/json: - schema: - $ref: >- - #/components/schemas/authorization.v2.GetDecisionMultiResourceRequest - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: >- - #/components/schemas/authorization.v2.GetDecisionMultiResourceResponse - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' - /authorization.v2.AuthorizationService/GetDecisionBulk: - post: - tags: - - authorization.v2.AuthorizationService - summary: GetDecisionBulk - operationId: authorization.v2.AuthorizationService.GetDecisionBulk - parameters: - - name: Connect-Protocol-Version - in: header - required: true - schema: - $ref: '#/components/schemas/connect-protocol-version' - - name: Connect-Timeout-Ms - in: header - schema: - $ref: '#/components/schemas/connect-timeout-header' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/authorization.v2.GetDecisionBulkRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/authorization.v2.GetDecisionBulkResponse' - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' - /authorization.v2.AuthorizationService/GetEntitlements: - post: - tags: - - authorization.v2.AuthorizationService - summary: GetEntitlements - operationId: authorization.v2.AuthorizationService.GetEntitlements - parameters: - - name: Connect-Protocol-Version - in: header - required: true - schema: - $ref: '#/components/schemas/connect-protocol-version' - - name: Connect-Timeout-Ms - in: header - schema: - $ref: '#/components/schemas/connect-timeout-header' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/authorization.v2.GetEntitlementsRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/authorization.v2.GetEntitlementsResponse' - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' -components: - schemas: - authorization.v2.Decision: - type: string - title: Decision - enum: - - DECISION_UNSPECIFIED - - DECISION_DENY - - DECISION_PERMIT - entity.Entity.Category: - type: string - title: Category - enum: - - CATEGORY_UNSPECIFIED - - CATEGORY_SUBJECT - - CATEGORY_ENVIRONMENT - policy.Action.StandardAction: - type: string - title: StandardAction - enum: - - STANDARD_ACTION_UNSPECIFIED - - STANDARD_ACTION_DECRYPT - - STANDARD_ACTION_TRANSMIT - authorization.v2.EntityEntitlements: - type: object - properties: - ephemeralId: - type: string - title: ephemeral_id - description: ephemeral id for tracking between request and response - actionsPerAttributeValueFqn: - type: object - title: actions_per_attribute_value_fqn - additionalProperties: - title: value - $ref: >- - #/components/schemas/authorization.v2.EntityEntitlements.ActionsList - title: EntityEntitlements - additionalProperties: false - description: >- - Entitlements for a given entity, mapping each attribute value FQN to any - entitled actions[] - authorization.v2.EntityEntitlements.ActionsList: - type: object - properties: - actions: - type: array - items: - $ref: '#/components/schemas/policy.Action' - title: actions - title: ActionsList - additionalProperties: false - authorization.v2.EntityEntitlements.ActionsPerAttributeValueFqnEntry: - type: object - properties: - key: - type: string - title: key - value: - title: value - $ref: '#/components/schemas/authorization.v2.EntityEntitlements.ActionsList' - title: ActionsPerAttributeValueFqnEntry - additionalProperties: false - authorization.v2.EntityIdentifier: - type: object - oneOf: - - properties: - entityChain: - title: entity_chain - description: |+ - chain of one or more entities - entities must be provided: - ``` - has(this.entities) && this.entities.size() > 0 - ``` - - $ref: '#/components/schemas/entity.EntityChain' - title: entity_chain - required: - - entityChain - - properties: - registeredResourceValueFqn: - type: string - title: registered_resource_value_fqn - minLength: 1 - format: uri - description: >- - fully qualified name of the registered resource value stored in - platform policy, where in - this case the resource acts as and represents a single entity for authorization/entitlement decisioning - title: registered_resource_value_fqn - required: - - registeredResourceValueFqn - - properties: - token: - title: token - description: >+ - access token (JWT), which is used to create an entity chain - (comprising one or more entities) - - token must be provided: - - ``` - - has(this.jwt) && this.jwt.size() > 0 - - ``` - - $ref: '#/components/schemas/entity.Token' - title: token - required: - - token - title: EntityIdentifier - additionalProperties: false - description: >- - The EntityIdentifier specifies the actor in an entitlement or decision - request - the PE, NPE, or PE+NPE being authorized. - The abstraction houses the distinct entity types, PE and/or NPE combinations, or a registered resource value - being treated as an entity in entitlement/authorization decisioning. - authorization.v2.GetDecisionBulkRequest: - type: object - properties: - decisionRequests: - type: array - items: - $ref: >- - #/components/schemas/authorization.v2.GetDecisionMultiResourceRequest - title: decision_requests - title: GetDecisionBulkRequest - additionalProperties: false - description: |- - Is access allowed? - 1. Multiplexing of a Decision request - This is a more performant bulk request for complex decisioning (i.e. multiple entity chains or actions on - multiple resources) - authorization.v2.GetDecisionBulkResponse: - type: object - properties: - decisionResponses: - type: array - items: - $ref: >- - #/components/schemas/authorization.v2.GetDecisionMultiResourceResponse - title: decision_responses - title: GetDecisionBulkResponse - additionalProperties: false - authorization.v2.GetDecisionMultiResourceRequest: - type: object - properties: - entityIdentifier: - title: entity_identifier - description: an entity must be identified for authorization decisioning - $ref: '#/components/schemas/authorization.v2.EntityIdentifier' - action: - title: action - description: name on action is required - $ref: '#/components/schemas/policy.Action' - resources: - type: array - items: - $ref: '#/components/schemas/authorization.v2.Resource' - title: resources - minItems: 1 - title: GetDecisionMultiResourceRequest - required: - - entityIdentifier - - action - - resources - additionalProperties: false - description: |+ - Can the identified entity/entities access? - 1. one entity reference (actor) - 2. one action - 3. multiple resources - Note: this is a more performant bulk request for multiple resource decisions - action.name must be provided: - ``` - has(this.action.name) - ``` - - authorization.v2.GetDecisionMultiResourceResponse: - type: object - properties: - allPermitted: - title: all_permitted - description: >- - convenience flag indicating global resource decisions result - (permit/deny) - $ref: '#/components/schemas/google.protobuf.BoolValue' - resourceDecisions: - type: array - items: - $ref: '#/components/schemas/authorization.v2.ResourceDecision' - title: resource_decisions - description: individual resource decisions - title: GetDecisionMultiResourceResponse - additionalProperties: false - authorization.v2.GetDecisionRequest: - type: object - properties: - entityIdentifier: - title: entity_identifier - description: an entity must be identified for authorization decisioning - $ref: '#/components/schemas/authorization.v2.EntityIdentifier' - action: - title: action - description: name on action is required - $ref: '#/components/schemas/policy.Action' - resource: - title: resource - $ref: '#/components/schemas/authorization.v2.Resource' - title: GetDecisionRequest - required: - - entityIdentifier - - action - - resource - additionalProperties: false - description: |+ - Can the identified entity/entities access? - 1. one entity reference (actor) - 2. one action - 3. one resource - action.name must be provided: - ``` - has(this.action.name) - ``` - - authorization.v2.GetDecisionResponse: - type: object - properties: - decision: - title: decision - description: >- - decision on the resource optional list of obligations represented in - URI format - repeated string obligations = 2; - $ref: '#/components/schemas/authorization.v2.ResourceDecision' - title: GetDecisionResponse - additionalProperties: false - authorization.v2.GetEntitlementsRequest: - type: object - properties: - entityIdentifier: - title: entity_identifier - description: an entity must be identified for entitlement decisioning - $ref: '#/components/schemas/authorization.v2.EntityIdentifier' - withComprehensiveHierarchy: - type: boolean - title: with_comprehensive_hierarchy - description: >- - optional parameter to return all entitled values for attribute - definitions with hierarchy rules, propagating - down the hierarchical values instead of returning solely the value that is directly entitled - nullable: true - title: GetEntitlementsRequest - required: - - entityIdentifier - additionalProperties: false - description: >- - What is permitted to the identified entity/entities (actor), broken down - as permitted actions on attribute value FQNs? - - Note: the v1 API parameter 'scope' has been dropped, and it is recommended to use - GetDecision if the resource is known - authorization.v2.GetEntitlementsResponse: - type: object - properties: - entitlements: - type: array - items: - $ref: '#/components/schemas/authorization.v2.EntityEntitlements' - title: entitlements - title: GetEntitlementsResponse - additionalProperties: false - authorization.v2.Resource: - type: object - oneOf: - - properties: - attributeValues: - title: attribute_values - description: |+ - if provided, resource.attribute_values must not be empty: - ``` - this.fqns.size() > 0 && this.fqns.all(item, item.isUri()) - ``` - - $ref: '#/components/schemas/authorization.v2.Resource.AttributeValues' - title: attribute_values - required: - - attributeValues - - properties: - registeredResourceValueFqn: - type: string - title: registered_resource_value_fqn - minLength: 1 - format: uri - title: registered_resource_value_fqn - required: - - registeredResourceValueFqn - properties: - ephemeralId: - type: string - title: ephemeral_id - description: ephemeral id for tracking between request and response - title: Resource - additionalProperties: false - description: >- - Either a set of attribute values (such as those on a TDF) or a - registered resource value - authorization.v2.Resource.AttributeValues: - type: object - properties: - fqns: - type: array - items: - type: string - title: fqns - title: AttributeValues - additionalProperties: false - authorization.v2.ResourceDecision: - type: object - properties: - ephemeralResourceId: - type: string - title: ephemeral_resource_id - description: ephemeral id for tracking between request and response - decision: - title: decision - description: decision result - $ref: '#/components/schemas/authorization.v2.Decision' - title: ResourceDecision - additionalProperties: false - common.Metadata: - type: object - properties: - createdAt: - title: created_at - description: >- - created_at set by server (entity who created will recorded in an - audit event) - $ref: '#/components/schemas/google.protobuf.Timestamp' - updatedAt: - title: updated_at - description: >- - updated_at set by server (entity who updated will recorded in an - audit event) - $ref: '#/components/schemas/google.protobuf.Timestamp' - labels: - type: object - title: labels - additionalProperties: - type: string - title: value - description: optional short description - title: Metadata - additionalProperties: false - description: Struct to uniquely identify a resource with optional additional metadata - common.Metadata.LabelsEntry: - type: object - properties: - key: - type: string - title: key - value: - type: string - title: value - title: LabelsEntry - additionalProperties: false - entity.Entity: - type: object - oneOf: - - properties: - claims: - title: claims - description: used by ERS claims mode - $ref: '#/components/schemas/google.protobuf.Any' - title: claims - required: - - claims - - properties: - clientId: - type: string - title: client_id - title: client_id - required: - - clientId - - properties: - emailAddress: - type: string - title: email_address - title: email_address - required: - - emailAddress - - properties: - userName: - type: string - title: user_name - title: user_name - required: - - userName - properties: - ephemeralId: - type: string - title: ephemeral_id - description: ephemeral id for tracking between request and response - category: - title: category - $ref: '#/components/schemas/entity.Entity.Category' - title: Entity - additionalProperties: false - description: PE (Person Entity) or NPE (Non-Person Entity) - entity.EntityChain: - type: object - properties: - ephemeralId: - type: string - title: ephemeral_id - description: ephemeral id for tracking between request and response - entities: - type: array - items: - $ref: '#/components/schemas/entity.Entity' - title: entities - title: EntityChain - additionalProperties: false - description: A set of related PE and NPE - entity.Token: - type: object - properties: - ephemeralId: - type: string - title: ephemeral_id - description: ephemeral id for tracking between request and response - jwt: - type: string - title: jwt - description: the token - title: Token - required: - - jwt - additionalProperties: false - google.protobuf.Any: - type: object - properties: - type: - type: string - value: - type: string - format: binary - debug: - type: object - additionalProperties: true - additionalProperties: true - description: >- - Contains an arbitrary serialized message along with a @type that - describes the type of the serialized message. - google.protobuf.BoolValue: - type: boolean - description: |- - Wrapper message for `bool`. - - The JSON representation for `BoolValue` is JSON `true` and `false`. - google.protobuf.Timestamp: - type: string - format: date-time - description: >- - A Timestamp represents a point in time independent of any time zone or - local - calendar, encoded as a count of seconds and fractions of seconds at - nanosecond resolution. The count is relative to an epoch at UTC midnight on - January 1, 1970, in the proleptic Gregorian calendar which extends the - Gregorian calendar backwards to year one. - - All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap - second table is needed for interpretation, using a [24-hour linear - smear](https://developers.google.com/time/smear). - - The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By - restricting to that range, we ensure that we can convert to and from [RFC - 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. - - # Examples - - Example 1: Compute Timestamp from POSIX `time()`. - - Timestamp timestamp; - timestamp.set_seconds(time(NULL)); - timestamp.set_nanos(0); - - Example 2: Compute Timestamp from POSIX `gettimeofday()`. - - struct timeval tv; - gettimeofday(&tv, NULL); - - Timestamp timestamp; - timestamp.set_seconds(tv.tv_sec); - timestamp.set_nanos(tv.tv_usec * 1000); - - Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. - - FILETIME ft; - GetSystemTimeAsFileTime(&ft); - UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; - - // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z - // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. - Timestamp timestamp; - timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); - timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); - - Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. - - long millis = System.currentTimeMillis(); - - Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) - .setNanos((int) ((millis % 1000) * 1000000)).build(); - - Example 5: Compute Timestamp from Java `Instant.now()`. - - Instant now = Instant.now(); - - Timestamp timestamp = - Timestamp.newBuilder().setSeconds(now.getEpochSecond()) - .setNanos(now.getNano()).build(); - - Example 6: Compute Timestamp from current time in Python. - - timestamp = Timestamp() - timestamp.GetCurrentTime() - - # JSON Mapping - - In JSON format, the Timestamp type is encoded as a string in the - [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the - format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" - where {year} is always expressed using four digits while {month}, {day}, - {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional - seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), - are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone - is required. A proto3 JSON serializer should always use UTC (as indicated by - "Z") when printing the Timestamp type and a proto3 JSON parser should be - able to accept both UTC and other timezones (as indicated by an offset). - - For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past - 01:30 UTC on January 15, 2017. - - In JavaScript, one can convert a Date object to this format using the - standard - [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) - method. In Python, a standard `datetime.datetime` object can be converted - to this format using - [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with - the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use - the Joda Time's [`ISODateTimeFormat.dateTime()`]( - http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() - ) to obtain a formatter capable of generating timestamps in this format. - policy.Action: - type: object - oneOf: - - properties: - custom: - type: string - title: custom - description: Deprecated - title: custom - required: - - custom - - properties: - standard: - title: standard - description: Deprecated - $ref: '#/components/schemas/policy.Action.StandardAction' - title: standard - required: - - standard - properties: - id: - type: string - title: id - description: Generated uuid in database - name: - type: string - title: name - metadata: - title: metadata - $ref: '#/components/schemas/common.Metadata' - title: Action - additionalProperties: false - description: An action an entity can take - connect-protocol-version: - type: number - title: Connect-Protocol-Version - enum: - - 1 - description: Define the version of the Connect protocol - const: 1 - connect-timeout-header: - type: number - title: Connect-Timeout-Ms - description: Define the timeout, in ms - connect.error: - type: object - properties: - code: - type: string - examples: - - not_found - enum: - - canceled - - unknown - - invalid_argument - - deadline_exceeded - - not_found - - already_exists - - permission_denied - - resource_exhausted - - failed_precondition - - aborted - - out_of_range - - unimplemented - - internal - - unavailable - - data_loss - - unauthenticated - description: >- - The status code, which should be an enum value of - [google.rpc.Code][google.rpc.Code]. - message: - type: string - description: >- - A developer-facing error message, which should be in English. Any - user-facing error message should be localized and sent in the - [google.rpc.Status.details][google.rpc.Status.details] field, or - localized by the client. - detail: - $ref: '#/components/schemas/google.protobuf.Any' - title: Connect Error - additionalProperties: true - description: >- - Error type returned by Connect: - https://connectrpc.com/docs/go/errors/#http-representation -security: [] -tags: - - name: authorization.v2.AuthorizationService -servers: - - url: https://example.com - description: Example OpenTDF platform URL diff --git a/specs-processed/bookstore.yaml b/specs-processed/bookstore.yaml deleted file mode 100644 index a012b81..0000000 --- a/specs-processed/bookstore.yaml +++ /dev/null @@ -1,718 +0,0 @@ -openapi: 3.0.0 -servers: - - url: https://api.examplebookstore.com/v1 - description: Production server - - url: https://sandbox.api.examplebookstore.com/v1 - description: Sandbox server - - url: http://localhost:4010 - description: Local development mock server -info: - title: Bookstore API - version: 1.0.0 - description: | - Welcome to the Bookstore API. This API provides access to a rich collection of books, author details, and genre classifications. - You can use this API to browse our catalog, search for specific titles, and manage book-related data. - - ## Key Features: - * Access detailed information about books, including titles, ISBNs, authors, and genres. - * Manage author profiles and their literary works. - * Explore books categorized by various genres. - - This specification is written in OpenAPI 3.0.0 format. - contact: - name: Bookstore API Support - email: support@examplebookstore.com - url: https://developer.examplebookstore.com/support - license: - name: Apache 2.0 - url: "http://www.apache.org/licenses/LICENSE-2.0.html" - x-logo: - url: "https://examplebookstore.com/assets/logo.png" - altText: "Bookstore Logo" -tags: - - name: Books - description: Operations related to books in the catalog. - x-displayName: Books - - name: Authors - description: Operations related to book authors. - x-displayName: Authors - - name: Genres - description: Operations related to book genres. - x-displayName: Genres - - name: Schema-Book - x-displayName: Book Schema - description: | - - - name: Schema-Author - x-displayName: Author Schema - description: | - - - name: Schema-Genre - x-displayName: Genre Schema - description: | - -x-tagGroups: - - name: Core Resources - tags: - - Books - - Authors - - Genres - - name: Data Models - tags: - - Schema-Book - - Schema-Author - - Schema-Genre -paths: - /books: - get: - tags: - - Books - summary: List all books - description: Retrieves a paginated list of all books in the catalog. Supports filtering by genre and author. - operationId: listBooks - parameters: - - name: limit - in: query - description: Maximum number of books to return. - required: false - schema: - type: integer - format: int32 - default: 20 - minimum: 1 - maximum: 100 - - name: offset - in: query - description: Number of books to skip for pagination. - required: false - schema: - type: integer - format: int32 - default: 0 - minimum: 0 - - name: genreId - in: query - description: Filter books by a specific genre ID. - required: false - schema: - type: string - format: uuid - - name: authorId - in: query - description: Filter books by a specific author ID. - required: false - schema: - type: string - format: uuid - responses: - "200": - description: A list of books. - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/Book" - "400": - description: Invalid query parameters. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - post: - tags: - - Books - summary: Add a new book - description: Adds a new book to the catalog. - operationId: createBook - requestBody: - description: Book object to be added. - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/BookInput" - responses: - "201": - description: Book created successfully. - content: - application/json: - schema: - $ref: "#/components/schemas/Book" - "400": - description: Invalid input data for the book. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "409": - description: A book with the same ISBN already exists. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "/books/{bookId}": - parameters: - - name: bookId - in: path - required: true - description: Unique identifier of the book. - schema: - type: string - format: uuid - get: - tags: - - Books - summary: Get book by ID - description: Retrieves detailed information for a specific book. - operationId: getBookById - responses: - "200": - description: Detailed information about the book. - content: - application/json: - schema: - $ref: "#/components/schemas/Book" - "404": - description: Book not found. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - put: - tags: - - Books - summary: Update an existing book - description: Updates the information for an existing book. - operationId: updateBook - requestBody: - description: Book object with updated information. - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/BookInput" - responses: - "200": - description: Book updated successfully. - content: - application/json: - schema: - $ref: "#/components/schemas/Book" - "400": - description: Invalid input data for the book. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "404": - description: Book not found. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - delete: - tags: - - Books - summary: Delete a book - description: Removes a book from the catalog. - operationId: deleteBook - responses: - "204": - description: Book deleted successfully. - "404": - description: Book not found. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - /authors: - get: - tags: - - Authors - summary: List all authors - description: Retrieves a list of all authors. - operationId: listAuthors - parameters: - - name: limit - in: query - description: Maximum number of authors to return. - required: false - schema: - type: integer - format: int32 - default: 20 - - name: offset - in: query - description: Number of authors to skip for pagination. - required: false - schema: - type: integer - format: int32 - default: 0 - responses: - "200": - description: A list of authors. - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/Author" - post: - tags: - - Authors - summary: Add a new author - description: Adds a new author to the system. - operationId: createAuthor - requestBody: - description: Author object to be added. - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/AuthorInput" - responses: - "201": - description: Author created successfully. - content: - application/json: - schema: - $ref: "#/components/schemas/Author" - "400": - description: Invalid input data for the author. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "/authors/{authorId}": - parameters: - - name: authorId - in: path - required: true - description: Unique identifier of the author. - schema: - type: string - format: uuid - get: - tags: - - Authors - summary: Get author by ID - description: Retrieves detailed information for a specific author. - operationId: getAuthorById - responses: - "200": - description: Detailed information about the author. - content: - application/json: - schema: - $ref: "#/components/schemas/Author" - "404": - description: Author not found. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - put: - tags: - - Authors - summary: Update an existing author - description: Updates the information for an existing author. - operationId: updateAuthor - requestBody: - description: Author object with updated information. - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/AuthorInput" - responses: - "200": - description: Author updated successfully. - content: - application/json: - schema: - $ref: "#/components/schemas/Author" - "400": - description: Invalid input data for the author. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "404": - description: Author not found. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - delete: - tags: - - Authors - summary: Delete an author - description: Removes an author from the system. Associated books may need to be handled or re-assigned. - operationId: deleteAuthor - responses: - "204": - description: Author deleted successfully. - "404": - description: Author not found. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - /genres: - get: - tags: - - Genres - summary: List all genres - description: Retrieves a list of all book genres. - operationId: listGenres - responses: - "200": - description: A list of genres. - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/Genre" - post: - tags: - - Genres - summary: Add a new genre - description: Adds a new genre to the system. - operationId: createGenre - requestBody: - description: Genre object to be added. - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/GenreInput" - responses: - "201": - description: Genre created successfully. - content: - application/json: - schema: - $ref: "#/components/schemas/Genre" - "400": - description: Invalid input data for the genre. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "409": - description: A genre with the same name already exists. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "/genres/{genreId}": - parameters: - - name: genreId - in: path - required: true - description: Unique identifier of the genre. - schema: - type: string - format: uuid - get: - tags: - - Genres - summary: Get genre by ID - description: Retrieves detailed information for a specific genre. - operationId: getGenreById - responses: - "200": - description: Detailed information about the genre. - content: - application/json: - schema: - $ref: "#/components/schemas/Genre" - "404": - description: Genre not found. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - put: - tags: - - Genres - summary: Update an existing genre - description: Updates the information for an existing genre. - operationId: updateGenre - requestBody: - description: Genre object with updated information. - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/GenreInput" - responses: - "200": - description: Genre updated successfully. - content: - application/json: - schema: - $ref: "#/components/schemas/Genre" - "400": - description: Invalid input data for the genre. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - "404": - description: Genre not found. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - delete: - tags: - - Genres - summary: Delete a genre - description: Removes a genre from the system. - operationId: deleteGenre - responses: - "204": - description: Genre deleted successfully. - "404": - description: Genre not found. - content: - application/json: - schema: - $ref: "#/components/schemas/Error" -components: - schemas: - Book: - type: object - required: - - id - - title - - isbn - - authorIds - - genreIds - properties: - id: - type: string - format: uuid - description: Unique identifier for the book. - readOnly: true - example: "d290f1ee-6c54-4b01-90e6-d701748f0851" - title: - type: string - description: The title of the book. - example: "The Great Novel" - isbn: - type: string - description: International Standard Book Number. - example: "978-3-16-148410-0" - publicationDate: - type: string - format: date - description: The date the book was published. - example: "2023-05-15" - description: - type: string - description: A short summary or description of the book. - example: "An epic tale of adventure and discovery." - coverImageUrl: - type: string - format: url - description: URL to the book's cover image. - example: "https://examplebookstore.com/covers/great-novel.jpg" - authorIds: - type: array - description: List of author IDs associated with this book. - items: - type: string - format: uuid - example: "a1b2c3d4-e5f6-7890-1234-567890abcdef" - genreIds: - type: array - description: List of genre IDs this book belongs to. - items: - type: string - format: uuid - example: "f0e1d2c3-b4a5-6789-0123-456789abcdef" - BookInput: - type: object - required: - - title - - isbn - - authorIds - - genreIds - properties: - title: - type: string - description: The title of the book. - example: "The Great Novel" - isbn: - type: string - description: International Standard Book Number. - example: "978-3-16-148410-0" - publicationDate: - type: string - format: date - description: The date the book was published. - example: "2023-05-15" - description: - type: string - description: A short summary or description of the book. - example: "An epic tale of adventure and discovery." - coverImageUrl: - type: string - format: url - description: URL to the book's cover image. - example: "https://examplebookstore.com/covers/great-novel.jpg" - authorIds: - type: array - description: List of author IDs associated with this book. - items: - type: string - format: uuid - example: "a1b2c3d4-e5f6-7890-1234-567890abcdef" - genreIds: - type: array - description: List of genre IDs this book belongs to. - items: - type: string - format: uuid - example: "f0e1d2c3-b4a5-6789-0123-456789abcdef" - Author: - type: object - required: - - id - - firstName - - lastName - properties: - id: - type: string - format: uuid - description: Unique identifier for the author. - readOnly: true - example: "a1b2c3d4-e5f6-7890-1234-567890abcdef" - firstName: - type: string - description: Author's first name. - example: "Jane" - lastName: - type: string - description: Author's last name. - example: "Doe" - biography: - type: string - description: A short biography of the author. - example: "Jane Doe is a renowned author of contemporary fiction." - birthDate: - type: string - format: date - description: Author's date of birth. - example: "1980-01-20" - AuthorInput: - type: object - required: - - firstName - - lastName - properties: - firstName: - type: string - description: Author's first name. - example: "Jane" - lastName: - type: string - description: Author's last name. - example: "Doe" - biography: - type: string - description: A short biography of the author. - example: "Jane Doe is a renowned author of contemporary fiction." - birthDate: - type: string - format: date - description: Author's date of birth. - example: "1980-01-20" - Genre: - type: object - required: - - id - - name - properties: - id: - type: string - format: uuid - description: Unique identifier for the genre. - readOnly: true - example: "f0e1d2c3-b4a5-6789-0123-456789abcdef" - name: - type: string - description: The name of the genre. - example: "Science Fiction" - description: - type: string - description: A brief description of the genre. - example: "Literature that explores imaginative concepts based on scientific or technological advancements." - GenreInput: - type: object - required: - - name - properties: - name: - type: string - description: The name of the genre. - example: "Science Fiction" - description: - type: string - description: A brief description of the genre. - example: "Literature that explores imaginative concepts based on scientific or technological advancements." - Error: - type: object - required: - - code - - message - properties: - code: - type: string - description: An error code. - example: "NOT_FOUND" - message: - type: string - description: A human-readable error message. - example: "The requested resource was not found." - details: - type: object - additionalProperties: true - description: Additional details about the error. - securitySchemes: - ApiKeyAuth: - type: apiKey - in: header - name: X-API-KEY - description: API key for authentication. Use `test-api-key` for testing purposes. - BearerAuth: - type: http - scheme: bearer - bearerFormat: JWT - description: Bearer token for authentication using JWT. - OAuth2Flow: - type: oauth2 - description: OAuth2 authentication for accessing protected resources. - flows: - authorizationCode: - authorizationUrl: https://auth.examplebookstore.com/oauth/authorize - tokenUrl: https://auth.examplebookstore.com/oauth/token - scopes: - "books:read": Read access to books - "books:write": Write access to books - "authors:read": Read access to authors - "authors:write": Write access to authors - "genres:read": Read access to genres - "genres:write": Write access to genres -security: - - ApiKeyAuth: [] - - BearerAuth: [] - - OAuth2Flow: - - "books:read" - - "authors:read" - - "genres:read" \ No newline at end of file diff --git a/specs-processed/common/common.openapi.yaml b/specs-processed/common/common.openapi.yaml deleted file mode 100644 index c57bd97..0000000 --- a/specs-processed/common/common.openapi.yaml +++ /dev/null @@ -1,183 +0,0 @@ -openapi: 3.1.0 -info: - title: common - description: '' - version: v1 -paths: {} -components: - schemas: - common.ActiveStateEnum: - type: string - title: ActiveStateEnum - enum: - - ACTIVE_STATE_ENUM_UNSPECIFIED - - ACTIVE_STATE_ENUM_ACTIVE - - ACTIVE_STATE_ENUM_INACTIVE - - ACTIVE_STATE_ENUM_ANY - description: >- - buflint ENUM_VALUE_PREFIX: to make sure that C++ scoping rules aren't - violated when users add new enum values to an enum in a given package - common.MetadataUpdateEnum: - type: string - title: MetadataUpdateEnum - enum: - - METADATA_UPDATE_ENUM_UNSPECIFIED - - METADATA_UPDATE_ENUM_EXTEND - - METADATA_UPDATE_ENUM_REPLACE - common.Metadata: - type: object - properties: - createdAt: - title: created_at - description: >- - created_at set by server (entity who created will recorded in an - audit event) - $ref: '#/components/schemas/google.protobuf.Timestamp' - updatedAt: - title: updated_at - description: >- - updated_at set by server (entity who updated will recorded in an - audit event) - $ref: '#/components/schemas/google.protobuf.Timestamp' - labels: - type: object - title: labels - additionalProperties: - type: string - title: value - description: optional short description - title: Metadata - additionalProperties: false - description: Struct to uniquely identify a resource with optional additional metadata - common.Metadata.LabelsEntry: - type: object - properties: - key: - type: string - title: key - value: - type: string - title: value - title: LabelsEntry - additionalProperties: false - common.MetadataMutable: - type: object - properties: - labels: - type: object - title: labels - additionalProperties: - type: string - title: value - description: optional labels - title: MetadataMutable - additionalProperties: false - common.MetadataMutable.LabelsEntry: - type: object - properties: - key: - type: string - title: key - value: - type: string - title: value - title: LabelsEntry - additionalProperties: false - google.protobuf.Timestamp: - type: string - format: date-time - description: >- - A Timestamp represents a point in time independent of any time zone or - local - calendar, encoded as a count of seconds and fractions of seconds at - nanosecond resolution. The count is relative to an epoch at UTC midnight on - January 1, 1970, in the proleptic Gregorian calendar which extends the - Gregorian calendar backwards to year one. - - All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap - second table is needed for interpretation, using a [24-hour linear - smear](https://developers.google.com/time/smear). - - The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By - restricting to that range, we ensure that we can convert to and from [RFC - 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. - - # Examples - - Example 1: Compute Timestamp from POSIX `time()`. - - Timestamp timestamp; - timestamp.set_seconds(time(NULL)); - timestamp.set_nanos(0); - - Example 2: Compute Timestamp from POSIX `gettimeofday()`. - - struct timeval tv; - gettimeofday(&tv, NULL); - - Timestamp timestamp; - timestamp.set_seconds(tv.tv_sec); - timestamp.set_nanos(tv.tv_usec * 1000); - - Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. - - FILETIME ft; - GetSystemTimeAsFileTime(&ft); - UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; - - // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z - // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. - Timestamp timestamp; - timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); - timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); - - Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. - - long millis = System.currentTimeMillis(); - - Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) - .setNanos((int) ((millis % 1000) * 1000000)).build(); - - Example 5: Compute Timestamp from Java `Instant.now()`. - - Instant now = Instant.now(); - - Timestamp timestamp = - Timestamp.newBuilder().setSeconds(now.getEpochSecond()) - .setNanos(now.getNano()).build(); - - Example 6: Compute Timestamp from current time in Python. - - timestamp = Timestamp() - timestamp.GetCurrentTime() - - # JSON Mapping - - In JSON format, the Timestamp type is encoded as a string in the - [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the - format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" - where {year} is always expressed using four digits while {month}, {day}, - {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional - seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), - are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone - is required. A proto3 JSON serializer should always use UTC (as indicated by - "Z") when printing the Timestamp type and a proto3 JSON parser should be - able to accept both UTC and other timezones (as indicated by an offset). - - For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past - 01:30 UTC on January 15, 2017. - - In JavaScript, one can convert a Date object to this format using the - standard - [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) - method. In Python, a standard `datetime.datetime` object can be converted - to this format using - [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with - the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use - the Joda Time's [`ISODateTimeFormat.dateTime()`]( - http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() - ) to obtain a formatter capable of generating timestamps in this format. -security: [] -servers: - - url: https://example.com - description: Example OpenTDF platform URL diff --git a/specs-processed/entity/entity.openapi.yaml b/specs-processed/entity/entity.openapi.yaml deleted file mode 100644 index 2148af6..0000000 --- a/specs-processed/entity/entity.openapi.yaml +++ /dev/null @@ -1,107 +0,0 @@ -openapi: 3.1.0 -info: - title: entity - description: '' - version: v1 -paths: {} -components: - schemas: - entity.Entity.Category: - type: string - title: Category - enum: - - CATEGORY_UNSPECIFIED - - CATEGORY_SUBJECT - - CATEGORY_ENVIRONMENT - entity.Entity: - type: object - oneOf: - - properties: - claims: - title: claims - description: used by ERS claims mode - $ref: '#/components/schemas/google.protobuf.Any' - title: claims - required: - - claims - - properties: - clientId: - type: string - title: client_id - title: client_id - required: - - clientId - - properties: - emailAddress: - type: string - title: email_address - title: email_address - required: - - emailAddress - - properties: - userName: - type: string - title: user_name - title: user_name - required: - - userName - properties: - ephemeralId: - type: string - title: ephemeral_id - description: ephemeral id for tracking between request and response - category: - title: category - $ref: '#/components/schemas/entity.Entity.Category' - title: Entity - additionalProperties: false - description: PE (Person Entity) or NPE (Non-Person Entity) - entity.EntityChain: - type: object - properties: - ephemeralId: - type: string - title: ephemeral_id - description: ephemeral id for tracking between request and response - entities: - type: array - items: - $ref: '#/components/schemas/entity.Entity' - title: entities - title: EntityChain - additionalProperties: false - description: A set of related PE and NPE - entity.Token: - type: object - properties: - ephemeralId: - type: string - title: ephemeral_id - description: ephemeral id for tracking between request and response - jwt: - type: string - title: jwt - description: the token - title: Token - required: - - jwt - additionalProperties: false - google.protobuf.Any: - type: object - properties: - type: - type: string - value: - type: string - format: binary - debug: - type: object - additionalProperties: true - additionalProperties: true - description: >- - Contains an arbitrary serialized message along with a @type that - describes the type of the serialized message. -security: [] -servers: - - url: https://example.com - description: Example OpenTDF platform URL diff --git a/specs-processed/entityresolution/entity_resolution.openapi.yaml b/specs-processed/entityresolution/entity_resolution.openapi.yaml deleted file mode 100644 index 072c54f..0000000 --- a/specs-processed/entityresolution/entity_resolution.openapi.yaml +++ /dev/null @@ -1,455 +0,0 @@ -openapi: 3.1.0 -info: - title: entityresolution - description: '' - version: v1 -paths: - /entityresolution/resolve: - post: - tags: - - entityresolution.EntityResolutionService - summary: ResolveEntities - description: 'Deprecated: use v2 ResolveEntities instead' - operationId: entityresolution.EntityResolutionService.ResolveEntities - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/entityresolution.ResolveEntitiesRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/entityresolution.ResolveEntitiesResponse' - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' - /entityresolution/entitychain: - post: - tags: - - entityresolution.EntityResolutionService - summary: CreateEntityChainFromJwt - description: 'Deprecated: use v2 CreateEntityChainsFromTokens instead' - operationId: entityresolution.EntityResolutionService.CreateEntityChainFromJwt - requestBody: - content: - application/json: - schema: - $ref: >- - #/components/schemas/entityresolution.CreateEntityChainFromJwtRequest - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: >- - #/components/schemas/entityresolution.CreateEntityChainFromJwtResponse - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' -components: - schemas: - authorization.Entity.Category: - type: string - title: Category - enum: - - CATEGORY_UNSPECIFIED - - CATEGORY_SUBJECT - - CATEGORY_ENVIRONMENT - google.protobuf.NullValue: - type: string - title: NullValue - enum: - - NULL_VALUE - description: >- - `NullValue` is a singleton enumeration to represent the null value for - the - `Value` type union. - - The JSON representation for `NullValue` is JSON `null`. - authorization.Entity: - type: object - oneOf: - - properties: - claims: - title: claims - $ref: '#/components/schemas/google.protobuf.Any' - title: claims - required: - - claims - - properties: - clientId: - type: string - title: client_id - title: client_id - required: - - clientId - - properties: - custom: - title: custom - $ref: '#/components/schemas/authorization.EntityCustom' - title: custom - required: - - custom - - properties: - emailAddress: - type: string - title: email_address - description: one of the entity options must be set - title: email_address - required: - - emailAddress - - properties: - remoteClaimsUrl: - type: string - title: remote_claims_url - title: remote_claims_url - required: - - remoteClaimsUrl - - properties: - userName: - type: string - title: user_name - title: user_name - required: - - userName - - properties: - uuid: - type: string - title: uuid - title: uuid - required: - - uuid - properties: - id: - type: string - title: id - description: ephemeral id for tracking between request and response - category: - title: category - $ref: '#/components/schemas/authorization.Entity.Category' - title: Entity - additionalProperties: false - description: PE (Person Entity) or NPE (Non-Person Entity) - authorization.EntityChain: - type: object - properties: - id: - type: string - title: id - description: ephemeral id for tracking between request and response - entities: - type: array - items: - $ref: '#/components/schemas/authorization.Entity' - title: entities - title: EntityChain - additionalProperties: false - description: A set of related PE and NPE - authorization.EntityCustom: - type: object - properties: - extension: - title: extension - $ref: '#/components/schemas/google.protobuf.Any' - title: EntityCustom - additionalProperties: false - description: Entity type for custom entities beyond the standard types - authorization.Token: - type: object - properties: - id: - type: string - title: id - description: ephemeral id for tracking between request and response - jwt: - type: string - title: jwt - description: the token - title: Token - additionalProperties: false - entityresolution.CreateEntityChainFromJwtRequest: - type: object - properties: - tokens: - type: array - items: - $ref: '#/components/schemas/authorization.Token' - title: tokens - title: CreateEntityChainFromJwtRequest - additionalProperties: false - description: |- - Example: Get Entity chains for tokens aaaaaa and bbbbbb - { - "tokens": [ - "aaaaaaa", - "bbbbbbbb" - ] - } - entityresolution.CreateEntityChainFromJwtResponse: - type: object - properties: - entityChains: - type: array - items: - $ref: '#/components/schemas/authorization.EntityChain' - title: entity_chains - title: CreateEntityChainFromJwtResponse - additionalProperties: false - description: |- - Example: Return the entity chains from the provided tokens - { - "entity_chains": [ - { - "id": "tok1", - "entities": [ - { - "clientId": "client1" - } - ] - }, - { - "id": "tok2", - "entities": [ - { - "userName": "alice", - "clientId": "client2" - } - ] - } - ] - } - entityresolution.EntityNotFoundError: - type: object - properties: - code: - type: integer - title: code - format: int32 - message: - type: string - title: message - details: - type: array - items: - $ref: '#/components/schemas/google.protobuf.Any' - title: details - entity: - type: string - title: entity - title: EntityNotFoundError - additionalProperties: false - entityresolution.EntityRepresentation: - type: object - properties: - additionalProps: - type: array - items: - $ref: '#/components/schemas/google.protobuf.Struct' - title: additional_props - originalId: - type: string - title: original_id - description: ephemeral entity id from the request - title: EntityRepresentation - additionalProperties: false - entityresolution.ResolveEntitiesRequest: - type: object - properties: - entities: - type: array - items: - $ref: '#/components/schemas/authorization.Entity' - title: entities - title: ResolveEntitiesRequest - additionalProperties: false - description: >- - Example: Get idp attributes for bob and alice (both represented using an - email address - - { - - "entities": [ - - { - - "id": "e1", - - "emailAddress": "bob@example.org" - - }, - - { - - "id": "e2", - - "emailAddress": "alice@example.org" - - } - - ] - - } - entityresolution.ResolveEntitiesResponse: - type: object - properties: - entityRepresentations: - type: array - items: - $ref: '#/components/schemas/entityresolution.EntityRepresentation' - title: entity_representations - title: ResolveEntitiesResponse - additionalProperties: false - description: |- - Example: Get idp attributes for bob and alice - { - "entity_representations": [ - { - "idp_entity_id": "e1", - "additional_props": {"someAttr1":"someValue1"} - }, - { - "idp_entity_id": "e2", - "additional_props": {"someAttr2":"someValue2"} - } - ] - } - google.protobuf.Any: - type: object - properties: - type: - type: string - value: - type: string - format: binary - debug: - type: object - additionalProperties: true - additionalProperties: true - description: >- - Contains an arbitrary serialized message along with a @type that - describes the type of the serialized message. - google.protobuf.ListValue: - type: object - properties: - values: - type: array - items: - $ref: '#/components/schemas/google.protobuf.Value' - title: values - description: Repeated field of dynamically typed values. - title: ListValue - additionalProperties: false - description: |- - `ListValue` is a wrapper around a repeated field of values. - - The JSON representation for `ListValue` is JSON array. - google.protobuf.Struct: - type: object - additionalProperties: - $ref: '#/components/schemas/google.protobuf.Value' - description: |- - `Struct` represents a structured data value, consisting of fields - which map to dynamically typed values. In some languages, `Struct` - might be supported by a native representation. For example, in - scripting languages like JS a struct is represented as an - object. The details of that representation are described together - with the proto support for the language. - - The JSON representation for `Struct` is JSON object. - google.protobuf.Struct.FieldsEntry: - type: object - properties: - key: - type: string - title: key - value: - title: value - $ref: '#/components/schemas/google.protobuf.Value' - title: FieldsEntry - additionalProperties: false - google.protobuf.Value: - oneOf: - - type: 'null' - - type: number - - type: string - - type: boolean - - type: array - - type: object - additionalProperties: true - description: |- - `Value` represents a dynamically typed value which can be either - null, a number, a string, a boolean, a recursive struct value, or a - list of values. A producer of value is expected to set one of these - variants. Absence of any variant indicates an error. - - The JSON representation for `Value` is JSON value. - connect-protocol-version: - type: number - title: Connect-Protocol-Version - enum: - - 1 - description: Define the version of the Connect protocol - const: 1 - connect-timeout-header: - type: number - title: Connect-Timeout-Ms - description: Define the timeout, in ms - connect.error: - type: object - properties: - code: - type: string - examples: - - not_found - enum: - - canceled - - unknown - - invalid_argument - - deadline_exceeded - - not_found - - already_exists - - permission_denied - - resource_exhausted - - failed_precondition - - aborted - - out_of_range - - unimplemented - - internal - - unavailable - - data_loss - - unauthenticated - description: >- - The status code, which should be an enum value of - [google.rpc.Code][google.rpc.Code]. - message: - type: string - description: >- - A developer-facing error message, which should be in English. Any - user-facing error message should be localized and sent in the - [google.rpc.Status.details][google.rpc.Status.details] field, or - localized by the client. - detail: - $ref: '#/components/schemas/google.protobuf.Any' - title: Connect Error - additionalProperties: true - description: >- - Error type returned by Connect: - https://connectrpc.com/docs/go/errors/#http-representation -security: [] -tags: - - name: entityresolution.EntityResolutionService -servers: - - url: https://example.com - description: Example OpenTDF platform URL diff --git a/specs-processed/kas/kas.openapi.yaml b/specs-processed/kas/kas.openapi.yaml deleted file mode 100644 index d1ce3dc..0000000 --- a/specs-processed/kas/kas.openapi.yaml +++ /dev/null @@ -1,511 +0,0 @@ -openapi: 3.1.0 -info: - title: kas - description: '' - version: v1 -paths: - /kas/v2/kas_public_key: - get: - tags: - - kas.AccessService - summary: PublicKey - operationId: kas.AccessService.PublicKey - parameters: - - name: algorithm - in: query - schema: - type: string - title: algorithm - - name: fmt - in: query - schema: - type: string - title: fmt - - name: v - in: query - schema: - type: string - title: v - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/kas.PublicKeyResponse' - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' - /kas/kas_public_key: - get: - tags: - - kas.AccessService - summary: LegacyPublicKey - description: buf:lint:ignore RPC_RESPONSE_STANDARD_NAME - operationId: kas.AccessService.LegacyPublicKey - parameters: - - name: algorithm - in: query - schema: - type: string - title: algorithm - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/google.protobuf.StringValue' - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' - /kas/v2/rewrap: - post: - tags: - - kas.AccessService - summary: Rewrap - operationId: kas.AccessService.Rewrap - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/kas.RewrapRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/kas.RewrapResponse' - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' -components: - schemas: - google.protobuf.NullValue: - type: string - title: NullValue - enum: - - NULL_VALUE - description: >- - `NullValue` is a singleton enumeration to represent the null value for - the - `Value` type union. - - The JSON representation for `NullValue` is JSON `null`. - google.protobuf.ListValue: - type: object - properties: - values: - type: array - items: - $ref: '#/components/schemas/google.protobuf.Value' - title: values - description: Repeated field of dynamically typed values. - title: ListValue - additionalProperties: false - description: |- - `ListValue` is a wrapper around a repeated field of values. - - The JSON representation for `ListValue` is JSON array. - google.protobuf.StringValue: - type: string - description: |- - Wrapper message for `string`. - - The JSON representation for `StringValue` is JSON string. - google.protobuf.Struct: - type: object - additionalProperties: - $ref: '#/components/schemas/google.protobuf.Value' - description: |- - `Struct` represents a structured data value, consisting of fields - which map to dynamically typed values. In some languages, `Struct` - might be supported by a native representation. For example, in - scripting languages like JS a struct is represented as an - object. The details of that representation are described together - with the proto support for the language. - - The JSON representation for `Struct` is JSON object. - google.protobuf.Struct.FieldsEntry: - type: object - properties: - key: - type: string - title: key - value: - title: value - $ref: '#/components/schemas/google.protobuf.Value' - title: FieldsEntry - additionalProperties: false - google.protobuf.Value: - oneOf: - - type: 'null' - - type: number - - type: string - - type: boolean - - type: array - - type: object - additionalProperties: true - description: |- - `Value` represents a dynamically typed value which can be either - null, a number, a string, a boolean, a recursive struct value, or a - list of values. A producer of value is expected to set one of these - variants. Absence of any variant indicates an error. - - The JSON representation for `Value` is JSON value. - kas.InfoRequest: - type: object - title: InfoRequest - additionalProperties: false - description: Intentionally empty. May include features later. - kas.InfoResponse: - type: object - properties: - version: - type: string - title: version - title: InfoResponse - additionalProperties: false - description: Service application level metadata - kas.KeyAccess: - type: object - properties: - encryptedMetadata: - type: string - title: encrypted_metadata - policyBinding: - title: policy_binding - $ref: '#/components/schemas/kas.PolicyBinding' - protocol: - type: string - title: protocol - type: - type: string - title: key_type - url: - type: string - title: kas_url - kid: - type: string - title: kid - sid: - type: string - title: split_id - wrappedKey: - type: string - title: wrapped_key - format: byte - header: - type: string - title: header - format: byte - description: header is only used for NanoTDFs - ephemeralPublicKey: - type: string - title: ephemeral_public_key - description: |- - For wrapping with an ECDH derived key, when type=ec-wrapped. - Should be a PEM-encoded PKCS#8 (asn.1) value. - title: KeyAccess - additionalProperties: false - kas.KeyAccessRewrapResult: - type: object - oneOf: - - properties: - error: - type: string - title: error - title: error - required: - - error - - properties: - kasWrappedKey: - type: string - title: kas_wrapped_key - format: byte - title: kas_wrapped_key - required: - - kasWrappedKey - properties: - metadata: - type: object - title: metadata - additionalProperties: - title: value - $ref: '#/components/schemas/google.protobuf.Value' - keyAccessObjectId: - type: string - title: key_access_object_id - status: - type: string - title: status - title: KeyAccessRewrapResult - additionalProperties: false - kas.KeyAccessRewrapResult.MetadataEntry: - type: object - properties: - key: - type: string - title: key - value: - title: value - $ref: '#/components/schemas/google.protobuf.Value' - title: MetadataEntry - additionalProperties: false - kas.LegacyPublicKeyRequest: - type: object - properties: - algorithm: - type: string - title: algorithm - title: LegacyPublicKeyRequest - additionalProperties: false - kas.PolicyBinding: - type: object - properties: - alg: - type: string - title: algorithm - hash: - type: string - title: hash - title: PolicyBinding - additionalProperties: false - kas.PolicyRewrapResult: - type: object - properties: - policyId: - type: string - title: policy_id - results: - type: array - items: - $ref: '#/components/schemas/kas.KeyAccessRewrapResult' - title: results - title: PolicyRewrapResult - additionalProperties: false - kas.PublicKeyRequest: - type: object - properties: - algorithm: - type: string - title: algorithm - fmt: - type: string - title: fmt - v: - type: string - title: v - title: PublicKeyRequest - additionalProperties: false - kas.PublicKeyResponse: - type: object - properties: - publicKey: - type: string - title: public_key - kid: - type: string - title: kid - title: PublicKeyResponse - additionalProperties: false - kas.RewrapRequest: - type: object - properties: - signedRequestToken: - type: string - title: signed_request_token - title: RewrapRequest - additionalProperties: false - kas.RewrapResponse: - type: object - properties: - metadata: - type: object - title: metadata - additionalProperties: - title: value - $ref: '#/components/schemas/google.protobuf.Value' - deprecated: true - entityWrappedKey: - type: string - title: entity_wrapped_key - format: byte - deprecated: true - sessionPublicKey: - type: string - title: session_public_key - schemaVersion: - type: string - title: schema_version - deprecated: true - responses: - type: array - items: - $ref: '#/components/schemas/kas.PolicyRewrapResult' - title: responses - description: New Rewrap API changes - title: RewrapResponse - additionalProperties: false - kas.RewrapResponse.MetadataEntry: - type: object - properties: - key: - type: string - title: key - value: - title: value - $ref: '#/components/schemas/google.protobuf.Value' - title: MetadataEntry - additionalProperties: false - kas.UnsignedRewrapRequest: - type: object - properties: - clientPublicKey: - type: string - title: client_public_key - requests: - type: array - items: - $ref: '#/components/schemas/kas.UnsignedRewrapRequest.WithPolicyRequest' - title: requests - keyAccess: - title: key_access - description: Used for legacy non-bulk requests - deprecated: true - $ref: '#/components/schemas/kas.KeyAccess' - policy: - type: string - title: policy - description: Used for legacy non-bulk requests - deprecated: true - algorithm: - type: string - title: algorithm - description: Used for legacy non-bulk requests - deprecated: true - title: UnsignedRewrapRequest - additionalProperties: false - kas.UnsignedRewrapRequest.WithKeyAccessObject: - type: object - properties: - keyAccessObjectId: - type: string - title: key_access_object_id - keyAccessObject: - title: key_access_object - $ref: '#/components/schemas/kas.KeyAccess' - title: WithKeyAccessObject - additionalProperties: false - kas.UnsignedRewrapRequest.WithPolicy: - type: object - properties: - id: - type: string - title: id - body: - type: string - title: body - title: WithPolicy - additionalProperties: false - kas.UnsignedRewrapRequest.WithPolicyRequest: - type: object - properties: - keyAccessObjects: - type: array - items: - $ref: '#/components/schemas/kas.UnsignedRewrapRequest.WithKeyAccessObject' - title: key_access_objects - policy: - title: policy - $ref: '#/components/schemas/kas.UnsignedRewrapRequest.WithPolicy' - algorithm: - type: string - title: algorithm - title: WithPolicyRequest - additionalProperties: false - connect-protocol-version: - type: number - title: Connect-Protocol-Version - enum: - - 1 - description: Define the version of the Connect protocol - const: 1 - connect-timeout-header: - type: number - title: Connect-Timeout-Ms - description: Define the timeout, in ms - connect.error: - type: object - properties: - code: - type: string - examples: - - not_found - enum: - - canceled - - unknown - - invalid_argument - - deadline_exceeded - - not_found - - already_exists - - permission_denied - - resource_exhausted - - failed_precondition - - aborted - - out_of_range - - unimplemented - - internal - - unavailable - - data_loss - - unauthenticated - description: >- - The status code, which should be an enum value of - [google.rpc.Code][google.rpc.Code]. - message: - type: string - description: >- - A developer-facing error message, which should be in English. Any - user-facing error message should be localized and sent in the - [google.rpc.Status.details][google.rpc.Status.details] field, or - localized by the client. - detail: - $ref: '#/components/schemas/google.protobuf.Any' - title: Connect Error - additionalProperties: true - description: >- - Error type returned by Connect: - https://connectrpc.com/docs/go/errors/#http-representation - google.protobuf.Any: - type: object - properties: - type: - type: string - value: - type: string - format: binary - debug: - type: object - additionalProperties: true - additionalProperties: true - description: >- - Contains an arbitrary serialized message along with a @type that - describes the type of the serialized message. -security: [] -tags: - - name: kas.AccessService - description: Get app info from the root path -servers: - - url: https://example.com - description: Example OpenTDF platform URL diff --git a/specs-processed/petstore.yaml b/specs-processed/petstore.yaml deleted file mode 100644 index c31ac04..0000000 --- a/specs-processed/petstore.yaml +++ /dev/null @@ -1,1271 +0,0 @@ -openapi: 3.0.0 -servers: - - url: https://petstore.swagger.io/v2 - description: Default server - - url: https://petstore.swagger.io/sandbox - description: Sandbox server - - url: http://127.0.0.1:4010 - description: Prism Mock API (local) -info: - description: | - This is a sample server Petstore server. - You can find out more about Swagger at - [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). - For this sample, you can use the api key `special-key` to test the authorization filters. - - ## Introduction - This API is documented in **OpenAPI format** and is based on - [Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team. - It was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo) - tool and [ReDoc](https://github.com/Redocly/redoc) documentation. In addition to standard - OpenAPI syntax we use a few [vendor extensions](https://github.com/Redocly/redoc/blob/master/docs/redoc-vendor-extensions.md). - - ## OpenAPI Specification - This API is documented in **OpenAPI format** and is based on - [Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team. - It was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo) - tool and [ReDoc](https://github.com/Redocly/redoc) documentation. In addition to standard - OpenAPI syntax we use a few [vendor extensions](https://github.com/Redocly/redoc/blob/master/docs/redoc-vendor-extensions.md). - - ## Cross-Origin Resource Sharing - This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). - And that allows cross-domain communication from the browser. - All responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site. - - ## Authentication - - Petstore offers two forms of authentication: - - API Key - - OAuth2 - - OAuth2 - an open protocol to allow secure authorization in a simple - and standard method from web, mobile and desktop applications. - - version: 2.0.0 - title: Swagger Petstore YAML - termsOfService: "http://swagger.io/terms/" - contact: - name: API Support - email: apiteam@swagger.io - url: https://github.com/Redocly/redoc - x-logo: - url: "https://redocly.github.io/redoc/petstore-logo.png" - altText: Petstore logo - x-dark-logo: - url: "/img/petstore-logo-dark.png" - altText: "Petstore dark logo" - license: - name: Apache 2.0 - url: "http://www.apache.org/licenses/LICENSE-2.0.html" -externalDocs: - description: Find out how to create Github repo for your OpenAPI spec. - url: "https://github.com/Rebilly/generator-openapi-repo" -tags: - - name: pet - description: Everything about your Pets - x-displayName: Pets - - name: store - description: Access to Petstore orders - x-displayName: Petstore Orders - - name: user - description: Operations about user - x-displayName: Users - - name: pet_model - x-displayName: The Pet Model - description: | - - - name: store_model - x-displayName: The Order Model - description: | - -x-tagGroups: - - name: General - tags: - - pet - - store - - name: User Management - tags: - - user - - name: Models - tags: - - pet_model - - store_model -paths: - /pet: - parameters: - - name: Accept-Language - in: header - description: "The language you prefer for messages. Supported values are en-AU, en-CA, en-GB, en-US" - example: en-US - required: false - schema: - type: string - default: en-AU - - name: cookieParam - in: cookie - description: Some cookie - required: true - schema: - type: integer - format: int64 - post: - tags: - - pet - summary: Add a new pet to the store - description: Add new pet to the store inventory. - operationId: addPet - responses: - "405": - description: Invalid input - security: - - petstore_auth: - - "write:pets" - - "read:pets" - - api_key: [] - - ApiKeyAuth: [] - - BasicAuth: [] - - BearerAuth: [] - - OAuth2: [] - - OpenID: [] - - x-codeSamples: - - lang: "C#" - source: | - PetStore.v1.Pet pet = new PetStore.v1.Pet(); - pet.setApiKey("your api key"); - pet.petType = PetStore.v1.Pet.TYPE_DOG; - pet.name = "Rex"; - // set other fields - PetStoreResponse response = pet.create(); - if (response.statusCode == HttpStatusCode.Created) - { - // Successfully created - } - else - { - // Something wrong -- check response for errors - Console.WriteLine(response.getRawResponse()); - } - - lang: PHP - label: Custom - source: | - $form = new \PetStore\Entities\Pet(); - $form->setPetType("Dog"); - $form->setName("Rex"); - // set other fields - try { - $pet = $client->pets()->create($form); - } catch (UnprocessableEntityException $e) { - var_dump($e->getErrors()); - } - requestBody: - $ref: "#/components/requestBodies/Pet" - put: - tags: - - pet - summary: Update an existing pet - description: "" - operationId: updatePet - responses: - "400": - description: Invalid ID supplied - "404": - description: Pet not found - "405": - description: Validation exception - security: - - petstore_auth: - - "write:pets" - - "read:pets" - x-codeSamples: - - lang: PHP - source: | - $form = new \PetStore\Entities\Pet(); - $form->setPetId(1); - $form->setPetType("Dog"); - $form->setName("Rex"); - // set other fields - try { - $pet = $client->pets()->update($form); - } catch (UnprocessableEntityException $e) { - var_dump($e->getErrors()); - } - requestBody: - $ref: "#/components/requestBodies/Pet" - "/pet/{petId}": - get: - tags: - - pet - summary: Find pet by ID - description: Returns a single pet - operationId: getPetById - parameters: - - name: petId - in: path - description: ID of pet to return - required: true - deprecated: true - schema: - type: integer - format: int64 - responses: - "200": - description: successful operation - content: - application/json: - schema: - $ref: "#/components/schemas/Pet" - application/xml: - schema: - $ref: "#/components/schemas/Pet" - - "400": - description: Invalid ID supplied - "404": - description: Pet not found - security: - - api_key: [] - post: - tags: - - pet - summary: Updates a pet in the store with form data - description: "" - operationId: updatePetWithForm - parameters: - - name: petId - in: path - description: ID of pet that needs to be updated - required: true - schema: - type: integer - format: int64 - responses: - "405": - description: Invalid input - security: - - petstore_auth: - - "write:pets" - - "read:pets" - requestBody: - content: - application/x-www-form-urlencoded: - schema: - type: object - properties: - name: - description: Updated name of the pet - type: string - status: - description: Updated status of the pet - type: string - delete: - tags: - - pet - summary: Deletes a pet - description: "" - operationId: deletePet - parameters: - - name: api_key - in: header - required: false - schema: - type: string - example: "Bearer " - - name: petId - in: path - description: Pet id to delete - required: true - schema: - type: integer - format: int64 - responses: - "400": - description: Invalid pet value - security: - - petstore_auth: - - "write:pets" - - "read:pets" - "/pet/{petId}/uploadImage": - post: - tags: - - pet - summary: uploads an image - description: "" - operationId: uploadFile - parameters: - - name: petId - in: path - description: ID of pet to update - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: successful operation - content: - application/json: - schema: - $ref: "#/components/schemas/ApiResponse" - security: - - petstore_auth: - - "write:pets" - - "read:pets" - requestBody: - content: - application/octet-stream: - schema: - type: string - format: binary - /pet/findByStatus: - get: - tags: - - pet - summary: Finds Pets by status - description: Multiple status values can be provided with comma separated strings - operationId: findPetsByStatus - parameters: - - name: status - in: query - description: Status values that need to be considered for filter - required: true - style: form - schema: - type: array - minItems: 1 - maxItems: 3 - items: - type: string - enum: - - available - - pending - - sold - default: available - responses: - "200": - description: successful operation - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/Pet" - application/xml: - schema: - type: array - items: - $ref: "#/components/schemas/Pet" - "400": - description: Invalid status value - security: - - api_key: [] - /pet/findByTags: - get: - tags: - - pet - summary: Finds Pets by tags - description: >- - Multiple tags can be provided with comma separated strings. Use tag1, - tag2, tag3 for testing. - operationId: findPetsByTags - deprecated: true - parameters: - - name: tags - in: query - description: Tags to filter by - required: true - style: form - schema: - type: array - items: - type: string - responses: - "200": - description: successful operation - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/Pet" - application/xml: - schema: - type: array - items: - $ref: "#/components/schemas/Pet" - "400": - description: Invalid tag value - security: - - petstore_auth: - - "write:pets" - - "read:pets" - /store/inventory: - get: - tags: - - store - summary: Returns pet inventories by status - description: Returns a map of status codes to quantities - operationId: getInventory - responses: - "200": - description: successful operation - content: - application/json: - schema: - type: object - additionalProperties: - type: integer - format: int32 - security: - - api_key: [] - /store/order: - post: - tags: - - store - summary: Place an order for a pet - description: "" - operationId: placeOrder - responses: - "200": - description: successful operation - content: - application/json: - schema: - $ref: "#/components/schemas/Order" - application/xml: - schema: - $ref: "#/components/schemas/Order" - "400": - description: Invalid Order - content: - application/json: - example: - status: 400 - message: "Invalid Order" - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/Order" - examples: - OrderDelivered: - summary: Order delivered - value: - quantity: 4 - shipDate: 2022-10-12 - status: delivered - requestId: 444-4444-444-4444 - OrderPlaced: - summary: Order placed - value: - quantity: 10 - shipDate: 2022-10-01 - status: placed - requestId: 111-222-333-444 - OrderApproved: - summary: Order approved - value: - quantity: 1000 - shipDate: 2022-09-01 - status: approved - requestId: 000-111-222-333 - description: order placed for purchasing the pet - required: true - "/store/order/{orderId}": - get: - tags: - - store - summary: Find purchase order by ID - description: >- - For valid response try integer IDs with value <= 5 or > 10. Other values - will generated exceptions - operationId: getOrderById - parameters: - - name: orderId - in: path - description: ID of pet that needs to be fetched - required: true - schema: - type: integer - format: int64 - minimum: 1 - maximum: 5 - responses: - "200": - description: successful operation - content: - application/json: - schema: - $ref: "#/components/schemas/Order" - application/xml: - schema: - $ref: "#/components/schemas/Order" - "400": - description: Invalid ID supplied - "404": - description: Order not found - delete: - tags: - - store - summary: Delete purchase order by ID - description: >- - For valid response try integer IDs with value < 1000. Anything above - 1000 or nonintegers will generate API errors - operationId: deleteOrder - parameters: - - name: orderId - in: path - description: ID of the order that needs to be deleted - required: true - schema: - type: string - minimum: 1 - responses: - "400": - description: Invalid ID supplied - "404": - description: Order not found - /store/subscribe: - post: - tags: - - store - summary: Subscribe to the Store events - description: Add subscription for a store events - requestBody: - content: - application/json: - schema: - type: object - properties: - callbackUrl: - type: string - format: uri - description: This URL will be called by the server when the desired event will occur - example: https://myserver.com/send/callback/here - eventName: - type: string - description: Event name for the subscription - enum: - - orderInProgress - - orderShipped - - orderDelivered - example: orderInProgress - required: - - callbackUrl - - eventName - responses: - "201": - description: Subscription added - content: - application/json: - schema: - type: object - properties: - subscriptionId: - type: string - example: AAA-123-BBB-456 - callbacks: - orderInProgress: - "{$request.body#/callbackUrl}?event={$request.body#/eventName}": - servers: - - url: //callback-url.path-level/v1 - description: Path level server 1 - - url: //callback-url.path-level/v2 - description: Path level server 2 - post: - summary: Order in Progress (Summary) - description: A callback triggered every time an Order is updated status to "inProgress" (Description) - externalDocs: - description: Find out more - url: "https://more-details.com/demo" - requestBody: - content: - application/json: - schema: - type: object - properties: - orderId: - type: string - example: "123" - timestamp: - type: string - format: date-time - example: "2018-10-19T16:46:45Z" - status: - type: string - example: "inProgress" - application/xml: - schema: - type: object - properties: - orderId: - type: string - example: "123" - example: | - - - 123 - inProgress - 2018-10-19T16:46:45Z - - responses: - "200": - description: Callback successfully processed and no retries will be performed - content: - application/json: - schema: - type: object - properties: - someProp: - type: string - example: "123" - "299": - description: Response for cancelling subscription - "500": - description: Callback processing failed and retries will be performed - x-codeSamples: - - lang: "C#" - source: | - PetStore.v1.Pet pet = new PetStore.v1.Pet(); - pet.setApiKey("your api key"); - pet.petType = PetStore.v1.Pet.TYPE_DOG; - pet.name = "Rex"; - // set other fields - PetStoreResponse response = pet.create(); - if (response.statusCode == HttpStatusCode.Created) - { - // Successfully created - } - else - { - // Something wrong -- check response for errors - Console.WriteLine(response.getRawResponse()); - } - - lang: PHP - source: | - $form = new \PetStore\Entities\Pet(); - $form->setPetType("Dog"); - $form->setName("Rex"); - // set other fields - try { - $pet = $client->pets()->create($form); - } catch (UnprocessableEntityException $e) { - var_dump($e->getErrors()); - } - put: - description: Order in Progress (Only Description) - servers: - - url: //callback-url.operation-level/v1 - description: Operation level server 1 (Operation override) - - url: //callback-url.operation-level/v2 - description: Operation level server 2 (Operation override) - requestBody: - content: - application/json: - schema: - type: object - properties: - orderId: - type: string - example: "123" - timestamp: - type: string - format: date-time - example: "2018-10-19T16:46:45Z" - status: - type: string - example: "inProgress" - application/xml: - schema: - type: object - properties: - orderId: - type: string - example: "123" - example: | - - - 123 - inProgress - 2018-10-19T16:46:45Z - - responses: - "200": - description: Callback successfully processed and no retries will be performed - content: - application/json: - schema: - type: object - properties: - someProp: - type: string - example: "123" - orderShipped: - "{$request.body#/callbackUrl}?event={$request.body#/eventName}": - post: - description: A callback triggered every time an Order is shipped to the recipient - requestBody: - content: - application/json: - schema: - type: object - properties: - orderId: - type: string - example: "123" - timestamp: - type: string - format: date-time - example: "2018-10-19T16:46:45Z" - estimatedDeliveryDate: - type: string - format: date-time - example: "2018-11-11T16:00:00Z" - responses: - "200": - description: Callback successfully processed and no retries will be performed - orderDelivered: - "http://notificationServer.com?url={$request.body#/callbackUrl}&event={$request.body#/eventName}": - post: - deprecated: true - summary: Order delivered - description: A callback triggered every time an Order is delivered to the recipient - requestBody: - content: - application/json: - schema: - type: object - properties: - orderId: - type: string - example: "123" - timestamp: - type: string - format: date-time - example: "2018-10-19T16:46:45Z" - responses: - "200": - description: Callback successfully processed and no retries will be performed - /user: - post: - tags: - - user - summary: Create user - description: This can only be done by the logged in user. - operationId: createUser - responses: - default: - description: successful operation - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/User" - description: Created user object - required: true - "/user/{username}": - get: - tags: - - user - summary: Get user by user name - description: "" - operationId: getUserByName - parameters: - - name: username - in: path - description: "The name that needs to be fetched. Use user1 for testing. " - required: true - schema: - type: string - responses: - "200": - description: successful operation - content: - application/json: - schema: - $ref: "#/components/schemas/User" - application/xml: - schema: - $ref: "#/components/schemas/User" - "400": - description: Invalid username supplied - "404": - description: User not found - put: - tags: - - user - summary: Updated user - description: This can only be done by the logged in user. - operationId: updateUser - parameters: - - name: username - in: path - description: name that need to be deleted - required: true - schema: - type: string - responses: - "400": - description: Invalid user supplied - "404": - description: User not found - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/User" - description: Updated user object - required: true - delete: - tags: - - user - summary: Delete user - description: This can only be done by the logged in user. - operationId: deleteUser - parameters: - - name: username - in: path - description: The name that needs to be deleted - required: true - schema: - type: string - responses: - "400": - description: Invalid username supplied - "404": - description: User not found - /user/createWithArray: - post: - tags: - - user - summary: Creates list of users with given input array - description: "" - operationId: createUsersWithArrayInput - responses: - default: - description: successful operation - requestBody: - $ref: "#/components/requestBodies/UserArray" - /user/createWithList: - post: - tags: - - user - summary: Creates list of users with given input list - description: "" - operationId: createUsersWithListInput - responses: - default: - description: successful operation - requestBody: - $ref: "#/components/requestBodies/UserArray" - /user/login: - get: - tags: - - user - summary: Logs user into the system - description: "" - operationId: loginUser - parameters: - - name: username - in: query - description: The user name for login - required: true - schema: - type: string - - name: password - in: query - description: The password for login in clear text - required: true - schema: - type: string - responses: - "200": - description: successful operation - headers: - X-Rate-Limit: - description: calls per hour allowed by the user - schema: - type: integer - format: int32 - X-Expires-After: - description: date in UTC when token expires - schema: - type: string - format: date-time - content: - application/json: - schema: - type: string - examples: - response: - value: OK - application/xml: - schema: - type: string - examples: - response: - value: OK - text/plain: - examples: - response: - value: OK - "400": - description: Invalid username/password supplied - /user/logout: - get: - tags: - - user - summary: Logs out current logged in user session - description: "" - operationId: logoutUser - responses: - default: - description: successful operation -components: - schemas: - ApiResponse: - type: object - properties: - code: - type: integer - format: int32 - type: - type: string - message: - type: string - Cat: - x-tags: - - pet - description: A representation of a cat - allOf: - - $ref: "#/components/schemas/Pet" - - type: object - properties: - huntingSkill: - type: string - description: The measured skill for hunting - default: lazy - example: adventurous - enum: - - clueless - - lazy - - adventurous - - aggressive - required: - - huntingSkill - Category: - type: object - properties: - id: - description: Category ID - allOf: - - $ref: "#/components/schemas/Id" - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - type: string - description: Dumb Property - xml: - name: Category - Dog: - description: A representation of a dog - allOf: - - $ref: "#/components/schemas/Pet" - - type: object - properties: - packSize: - type: integer - format: int32 - description: The size of the pack the dog is from - default: 1 - minimum: 1 - required: - - packSize - HoneyBee: - description: A representation of a honey bee - allOf: - - $ref: "#/components/schemas/Pet" - - type: object - properties: - honeyPerDay: - type: number - description: Average amount of honey produced per day in ounces - example: 3.14 - multipleOf: .01 - default: 0 - required: - - honeyPerDay - Id: - type: integer - format: int64 - readOnly: true - Order: - type: object - properties: - id: - description: Order ID - allOf: - - $ref: "#/components/schemas/Id" - petId: - description: Pet ID - allOf: - - $ref: "#/components/schemas/Id" - quantity: - type: integer - format: int32 - minimum: 1 - default: 1 - shipDate: - description: Estimated ship date - type: string - format: date-time - status: - type: string - description: Order Status - enum: - - placed - - approved - - delivered - complete: - description: Indicates whenever order was completed or not - type: boolean - default: false - readOnly: true - requestId: - description: Unique Request Id - type: string - writeOnly: true - xml: - name: Order - Pet: - type: object - required: - - name - - photoUrls - - tags - discriminator: - propertyName: petType - mapping: - cat: "#/components/schemas/Cat" - dog: "#/components/schemas/Dog" - bee: "#/components/schemas/HoneyBee" - properties: - id: - externalDocs: - description: "Find more info here" - url: "https://example.com" - description: Pet ID - allOf: - - $ref: "#/components/schemas/Id" - category: - description: Categories this pet belongs to - allOf: - - $ref: "#/components/schemas/Category" - name: - description: The name given to a pet - type: string - example: Guru - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - maxItems: 20 - xml: - name: photoUrl - wrapped: true - items: - type: string - format: url - friend: - allOf: - - $ref: "#/components/schemas/Pet" - tags: - description: Tags attached to the pet - type: array - minItems: 1 - xml: - name: tag - wrapped: true - items: - $ref: "#/components/schemas/Tag" - status: - type: string - description: Pet status in the store - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - oneOf: - - $ref: "#/components/schemas/Cat" - - $ref: "#/components/schemas/Dog" - - $ref: "#/components/schemas/HoneyBee" - xml: - name: Pet - Tag: - type: object - properties: - id: - description: Tag ID - allOf: - - $ref: "#/components/schemas/Id" - name: - description: Tag name - type: string - minLength: 1 - xml: - name: Tag - User: - type: object - properties: - id: - $ref: "#/components/schemas/Id" - pet: - oneOf: - - $ref: "#/components/schemas/Pet" - - $ref: "#/components/schemas/Tag" - username: - description: User supplied username - type: string - minLength: 4 - example: John78 - firstName: - description: User first name - type: string - minLength: 1 - example: John - lastName: - description: User last name - type: string - minLength: 1 - example: Smith - email: - description: User email address - type: string - format: email - example: john.smith@example.com - password: - type: string - description: >- - User password, MUST contain a mix of upper and lower case letters, - as well as digits - format: password - minLength: 8 - pattern: "/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/" - example: drowssaP123 - phone: - description: User phone number in international format - type: string - pattern: '/^\+(?:[0-9]-?){6,14}[0-9]$/' - example: +1-202-555-0192 - userStatus: - description: User status - type: integer - format: int32 - xml: - name: User - requestBodies: - Pet: - content: - application/json: - schema: - allOf: - - description: My Pet - title: Pettie - - $ref: "#/components/schemas/Pet" - example: - category: - name: Great Dane - sub: - prop1: Just a test property - name: Pepper - photoUrls: - - https://assets.orvis.com/is/image/orvisprd/great-dane - tags: - - name: Great Danes - status: pending - petType: - huntingSkill: lazy - application/xml: - schema: - type: "object" - properties: - name: - type: string - description: hooray - description: Pet object that needs to be added to the store - required: true - UserArray: - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/User" - description: List of user object - required: true - securitySchemes: - petstore_auth: - description: | - Get access to data while protecting your account credentials. - OAuth2 is also a safer and more secure way to give you access. - type: oauth2 - flows: - implicit: - authorizationUrl: "http://petstore.swagger.io/api/oauth/dialog" - scopes: - "write:pets": modify pets in your account - "read:pets": read your pets - api_key: - description: > - For this sample, you can use the api key `special-key` to test the - authorization filters. - type: apiKey - name: api_key - in: header - BasicAuth: - type: http - scheme: basic - BearerAuth: - type: http - scheme: bearer - ApiKeyAuth: - type: apiKey - in: header - name: X-API-Key - OpenID: - type: openIdConnect - openIdConnectUrl: https://example.com/.well-known/openid-configuration - OAuth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: https://example.com/oauth/authorize - tokenUrl: https://example.com/oauth/token - scopes: - read: Grants read access - write: Grants write access - admin: Grants access to admin operations -x-webhooks: - newPet: - post: - summary: New pet - description: Information about a new pet in the systems - operationId: newPet - tags: - - pet - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/Pet" - responses: - "200": - description: Return a 200 status to indicate that the data was received successfully diff --git a/specs-processed/wellknownconfiguration/wellknown_configuration.openapi.yaml b/specs-processed/wellknownconfiguration/wellknown_configuration.openapi.yaml deleted file mode 100644 index 2be8768..0000000 --- a/specs-processed/wellknownconfiguration/wellknown_configuration.openapi.yaml +++ /dev/null @@ -1,201 +0,0 @@ -openapi: 3.1.0 -info: - title: wellknownconfiguration - description: '' - version: v1 -paths: - /.well-known/opentdf-configuration: - get: - tags: - - wellknownconfiguration.WellKnownService - summary: GetWellKnownConfiguration - operationId: wellknownconfiguration.WellKnownService.GetWellKnownConfiguration - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: >- - #/components/schemas/wellknownconfiguration.GetWellKnownConfigurationResponse - default: - description: Error - content: - application/json: - schema: - $ref: '#/components/schemas/connect.error' -components: - schemas: - google.protobuf.NullValue: - type: string - title: NullValue - enum: - - NULL_VALUE - description: >- - `NullValue` is a singleton enumeration to represent the null value for - the - `Value` type union. - - The JSON representation for `NullValue` is JSON `null`. - google.protobuf.ListValue: - type: object - properties: - values: - type: array - items: - $ref: '#/components/schemas/google.protobuf.Value' - title: values - description: Repeated field of dynamically typed values. - title: ListValue - additionalProperties: false - description: |- - `ListValue` is a wrapper around a repeated field of values. - - The JSON representation for `ListValue` is JSON array. - google.protobuf.Struct: - type: object - additionalProperties: - $ref: '#/components/schemas/google.protobuf.Value' - description: |- - `Struct` represents a structured data value, consisting of fields - which map to dynamically typed values. In some languages, `Struct` - might be supported by a native representation. For example, in - scripting languages like JS a struct is represented as an - object. The details of that representation are described together - with the proto support for the language. - - The JSON representation for `Struct` is JSON object. - google.protobuf.Struct.FieldsEntry: - type: object - properties: - key: - type: string - title: key - value: - title: value - $ref: '#/components/schemas/google.protobuf.Value' - title: FieldsEntry - additionalProperties: false - google.protobuf.Value: - oneOf: - - type: 'null' - - type: number - - type: string - - type: boolean - - type: array - - type: object - additionalProperties: true - description: |- - `Value` represents a dynamically typed value which can be either - null, a number, a string, a boolean, a recursive struct value, or a - list of values. A producer of value is expected to set one of these - variants. Absence of any variant indicates an error. - - The JSON representation for `Value` is JSON value. - wellknownconfiguration.GetWellKnownConfigurationRequest: - type: object - title: GetWellKnownConfigurationRequest - additionalProperties: false - wellknownconfiguration.GetWellKnownConfigurationResponse: - type: object - properties: - configuration: - title: configuration - $ref: '#/components/schemas/google.protobuf.Struct' - title: GetWellKnownConfigurationResponse - additionalProperties: false - wellknownconfiguration.WellKnownConfig: - type: object - properties: - configuration: - type: object - title: configuration - additionalProperties: - title: value - $ref: '#/components/schemas/google.protobuf.Struct' - title: WellKnownConfig - additionalProperties: false - wellknownconfiguration.WellKnownConfig.ConfigurationEntry: - type: object - properties: - key: - type: string - title: key - value: - title: value - $ref: '#/components/schemas/google.protobuf.Struct' - title: ConfigurationEntry - additionalProperties: false - connect-protocol-version: - type: number - title: Connect-Protocol-Version - enum: - - 1 - description: Define the version of the Connect protocol - const: 1 - connect-timeout-header: - type: number - title: Connect-Timeout-Ms - description: Define the timeout, in ms - connect.error: - type: object - properties: - code: - type: string - examples: - - not_found - enum: - - canceled - - unknown - - invalid_argument - - deadline_exceeded - - not_found - - already_exists - - permission_denied - - resource_exhausted - - failed_precondition - - aborted - - out_of_range - - unimplemented - - internal - - unavailable - - data_loss - - unauthenticated - description: >- - The status code, which should be an enum value of - [google.rpc.Code][google.rpc.Code]. - message: - type: string - description: >- - A developer-facing error message, which should be in English. Any - user-facing error message should be localized and sent in the - [google.rpc.Status.details][google.rpc.Status.details] field, or - localized by the client. - detail: - $ref: '#/components/schemas/google.protobuf.Any' - title: Connect Error - additionalProperties: true - description: >- - Error type returned by Connect: - https://connectrpc.com/docs/go/errors/#http-representation - google.protobuf.Any: - type: object - properties: - type: - type: string - value: - type: string - format: binary - debug: - type: object - additionalProperties: true - additionalProperties: true - description: >- - Contains an arbitrary serialized message along with a @type that - describes the type of the serialized message. -security: [] -tags: - - name: wellknownconfiguration.WellKnownService -servers: - - url: https://example.com - description: Example OpenTDF platform URL From 4d47ba2f5c5d79efd6dbfd6a4ac3f3ab8bfe56a5 Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 10:44:02 -0400 Subject: [PATCH 33/37] Cleanup --- docusaurus.config.ts | 35 ++-------------------------- preprocessing.ts | 54 ++++++++++++++++++++++++++++++++++++++------ 2 files changed, 49 insertions(+), 40 deletions(-) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 4b5510f..1d11458 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -9,36 +9,12 @@ import type { Config } from "@docusaurus/types"; import type * as Preset from "@docusaurus/preset-classic"; import matter from "gray-matter"; import listRemote from "./docusaurus-lib-list-remote"; -import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs"; import { openApiSpecs, preprocessOpenApiSpecs } from "./preprocessing" import { ApiPageMetadata, SchemaPageMetadata, SidebarOptions } from "docusaurus-plugin-openapi-docs/src/types"; import type * as Plugin from "@docusaurus/types/src/plugin"; import languageTabs from "./openapi-generated-sdks"; // --- OpenAPI Config Helper --- -// We'll merge 'openApiSpecs' with 'finalConfiguration' later -let finalConfiguration: Plugin.PluginOptions = { - petstore: { - specPath: "specs-processed/petstore.yaml", - outputDir: "docs/SDK Samples/petstore", - downloadUrl: - "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/petstore.yaml", - sidebarOptions: { - groupPathsBy: "tag", - categoryLinkSource: "tag", - }, - } satisfies OpenApiPlugin.Options, - bookstore: { - specPath: "specs-processed/bookstore.yaml", - outputDir: "docs/SDK Samples/bookstore", - // downloadUrl: - // "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/bookstore.yaml", - sidebarOptions: { - groupPathsBy: "tag", - categoryLinkSource: "tag", - }, - } satisfies OpenApiPlugin.Options, -}; // Run the preprocessor before generating the config preprocessOpenApiSpecs(); @@ -55,13 +31,6 @@ openApiSpecs.forEach((spec) => { }; }); -// Merge 'openApiSpecs' into 'finalConfiguration' -Object.entries(openApiDocsConfig).forEach(([key, value]) => { - finalConfiguration[key] = { - ...(typeof value === "object" && value !== null ? value : {}), - }; -}); - // --- End OpenAPI Config Helper --- const otdfctl = listRemote.createRepo("opentdf", "otdfctl", "main"); @@ -121,7 +90,7 @@ const config: Config = { { docs: { routeBasePath: "/", - sidebarPath: "./sidebars.js", + sidebarPath: require.resolve("./sidebars.js"), docItemComponent: "@theme/ApiItem", // Derived from docusaurus-theme-openapi // Please change this to your repo. // Remove this to remove the "edit this page" links. @@ -798,7 +767,7 @@ ${updatedContent}`, { id: "api", // plugin id docsPluginId: "classic", // configured for preset-classic - config: finalConfiguration + config: openApiDocsConfig // finalConfiguration // config: openApiDocsConfig satisfies Plugin.PluginOptions, // Use the dynamically generated config }, diff --git a/preprocessing.ts b/preprocessing.ts index e3ccc16..666bf0a 100644 --- a/preprocessing.ts +++ b/preprocessing.ts @@ -1,10 +1,37 @@ import * as fs from 'fs'; import * as path from 'path'; import * as yaml from 'js-yaml'; +import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs"; +import type * as Plugin from "@docusaurus/types/src/plugin"; // Boolean to control whether we add '[Preprocessed on' timestamp ']' to the description const ADD_TIMESTAMP_TO_DESCRIPTION = false; +// We'll merge 'openApiSpecs' with 'finalConfiguration' later +let finalConfiguration: Plugin.PluginOptions = { + petstore: { + specPath: "specs-processed/petstore.yaml", + outputDir: "docs/SDK Samples/petstore", + downloadUrl: + "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/petstore.yaml", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, + } satisfies OpenApiPlugin.Options, + bookstore: { + specPath: "specs-processed/bookstore.yaml", + outputDir: "docs/SDK Samples/bookstore", + // downloadUrl: + // "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/bookstore.yaml", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, + } satisfies OpenApiPlugin.Options, +}; + + interface ApiSpecDefinition { id: string; // Unique key for the API spec, e.g., "authorization" specPath: string; @@ -22,7 +49,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "authorization", specPath: "./specs/authorization/authorization.openapi.yaml", - outputDir: "docs/SDK (OpenAPI clients)/authorization", + outputDir: "docs/SDK-OpenAPI/authorization", // specPathModified is auto-generated if not specified sidebarOptions: { groupPathsBy: "tag", @@ -32,7 +59,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "authorization_v2", specPath: "./specs/authorization/v2/authorization.openapi.yaml", - outputDir: "docs/SDK (OpenAPI clients)/authorization_v2", + outputDir: "docs/SDK-OpenAPI/authorization_v2", // Example of custom modified path: specPathModified: "./specs-processed/authorization/v2/authorization.openapi.yaml", sidebarOptions: { @@ -43,7 +70,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "common", specPath: "./specs/common/common.openapi.yaml", - outputDir: "docs/SDK (OpenAPI clients)/common", + outputDir: "docs/SDK-OpenAPI/common", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", @@ -52,7 +79,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "entity", specPath: "./specs/entity/entity.openapi.yaml", - outputDir: "docs/SDK (OpenAPI clients)/entity", + outputDir: "docs/SDK-OpenAPI/entity", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", @@ -61,7 +88,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "entityresolution", specPath: "./specs/entityresolution/entity_resolution.openapi.yaml", - outputDir: "docs/SDK (OpenAPI clients)/entityresolution", + outputDir: "docs/SDK-OpenAPI/entityresolution", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", @@ -70,7 +97,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "kas", specPath: "./specs/kas/kas.openapi.yaml", - outputDir: "docs/SDK (OpenAPI clients)/kas", + outputDir: "docs/SDK-OpenAPI/kas", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", @@ -79,7 +106,7 @@ const openApiSpecs: ApiSpecDefinition[] = [ { id: "wellknownconfiguration", specPath: "./specs/wellknownconfiguration/wellknown_configuration.openapi.yaml", - outputDir: "docs/SDK (OpenAPI clients)/wellknownconfiguration", + outputDir: "docs/SDK-OpenAPI/wellknownconfiguration", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", @@ -88,6 +115,19 @@ const openApiSpecs: ApiSpecDefinition[] = [ // Add more entries here for other OpenAPI specs ]; +// Merge 'openApiSpecs' into 'finalConfiguration' +// Object.entries(openApiSpecs).forEach(([key, value]) => { +// finalConfiguration[key] = { +// ...(typeof value === "object" && value !== null ? value : {}), +// }; +// }); + +// Merge 'finalConfiguration' into 'openApiSpecs' +Object.entries(finalConfiguration).forEach(([key, value]) => { + openApiSpecs[key] = { + ...(typeof value === "object" && value !== null ? value : {}), + }; +}); /** * Preprocesses OpenAPI YAML files before they're consumed by docusaurus-plugin-openapi-docs From 2e30edb0818c107a99f818180bdcf21a34579aa9 Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 10:53:04 -0400 Subject: [PATCH 34/37] Don't use spaces in outputDir --- preprocessing.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/preprocessing.ts b/preprocessing.ts index 666bf0a..a1ecfc4 100644 --- a/preprocessing.ts +++ b/preprocessing.ts @@ -11,7 +11,7 @@ const ADD_TIMESTAMP_TO_DESCRIPTION = false; let finalConfiguration: Plugin.PluginOptions = { petstore: { specPath: "specs-processed/petstore.yaml", - outputDir: "docs/SDK Samples/petstore", + outputDir: "docs/SDK-Samples/petstore", downloadUrl: "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/petstore.yaml", sidebarOptions: { @@ -21,7 +21,7 @@ let finalConfiguration: Plugin.PluginOptions = { } satisfies OpenApiPlugin.Options, bookstore: { specPath: "specs-processed/bookstore.yaml", - outputDir: "docs/SDK Samples/bookstore", + outputDir: "docs/SDK-Samples/bookstore", // downloadUrl: // "https://raw.githubusercontent.com/PaloAltoNetworks/docusaurus-template-openapi-docs/main/examples/bookstore.yaml", sidebarOptions: { From e4f7ec1511f262bd85a0bc814cb7de0230e2ff17 Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 09:37:56 -0400 Subject: [PATCH 35/37] Add sample files, to help debugging --- specs-processed/bookstore.yaml | 718 ++++++++++++++++++ specs-processed/petstore.yaml | 1271 ++++++++++++++++++++++++++++++++ 2 files changed, 1989 insertions(+) create mode 100644 specs-processed/bookstore.yaml create mode 100644 specs-processed/petstore.yaml diff --git a/specs-processed/bookstore.yaml b/specs-processed/bookstore.yaml new file mode 100644 index 0000000..a012b81 --- /dev/null +++ b/specs-processed/bookstore.yaml @@ -0,0 +1,718 @@ +openapi: 3.0.0 +servers: + - url: https://api.examplebookstore.com/v1 + description: Production server + - url: https://sandbox.api.examplebookstore.com/v1 + description: Sandbox server + - url: http://localhost:4010 + description: Local development mock server +info: + title: Bookstore API + version: 1.0.0 + description: | + Welcome to the Bookstore API. This API provides access to a rich collection of books, author details, and genre classifications. + You can use this API to browse our catalog, search for specific titles, and manage book-related data. + + ## Key Features: + * Access detailed information about books, including titles, ISBNs, authors, and genres. + * Manage author profiles and their literary works. + * Explore books categorized by various genres. + + This specification is written in OpenAPI 3.0.0 format. + contact: + name: Bookstore API Support + email: support@examplebookstore.com + url: https://developer.examplebookstore.com/support + license: + name: Apache 2.0 + url: "http://www.apache.org/licenses/LICENSE-2.0.html" + x-logo: + url: "https://examplebookstore.com/assets/logo.png" + altText: "Bookstore Logo" +tags: + - name: Books + description: Operations related to books in the catalog. + x-displayName: Books + - name: Authors + description: Operations related to book authors. + x-displayName: Authors + - name: Genres + description: Operations related to book genres. + x-displayName: Genres + - name: Schema-Book + x-displayName: Book Schema + description: | + + - name: Schema-Author + x-displayName: Author Schema + description: | + + - name: Schema-Genre + x-displayName: Genre Schema + description: | + +x-tagGroups: + - name: Core Resources + tags: + - Books + - Authors + - Genres + - name: Data Models + tags: + - Schema-Book + - Schema-Author + - Schema-Genre +paths: + /books: + get: + tags: + - Books + summary: List all books + description: Retrieves a paginated list of all books in the catalog. Supports filtering by genre and author. + operationId: listBooks + parameters: + - name: limit + in: query + description: Maximum number of books to return. + required: false + schema: + type: integer + format: int32 + default: 20 + minimum: 1 + maximum: 100 + - name: offset + in: query + description: Number of books to skip for pagination. + required: false + schema: + type: integer + format: int32 + default: 0 + minimum: 0 + - name: genreId + in: query + description: Filter books by a specific genre ID. + required: false + schema: + type: string + format: uuid + - name: authorId + in: query + description: Filter books by a specific author ID. + required: false + schema: + type: string + format: uuid + responses: + "200": + description: A list of books. + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Book" + "400": + description: Invalid query parameters. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + post: + tags: + - Books + summary: Add a new book + description: Adds a new book to the catalog. + operationId: createBook + requestBody: + description: Book object to be added. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/BookInput" + responses: + "201": + description: Book created successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Book" + "400": + description: Invalid input data for the book. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "409": + description: A book with the same ISBN already exists. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "/books/{bookId}": + parameters: + - name: bookId + in: path + required: true + description: Unique identifier of the book. + schema: + type: string + format: uuid + get: + tags: + - Books + summary: Get book by ID + description: Retrieves detailed information for a specific book. + operationId: getBookById + responses: + "200": + description: Detailed information about the book. + content: + application/json: + schema: + $ref: "#/components/schemas/Book" + "404": + description: Book not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + put: + tags: + - Books + summary: Update an existing book + description: Updates the information for an existing book. + operationId: updateBook + requestBody: + description: Book object with updated information. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/BookInput" + responses: + "200": + description: Book updated successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Book" + "400": + description: Invalid input data for the book. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Book not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + delete: + tags: + - Books + summary: Delete a book + description: Removes a book from the catalog. + operationId: deleteBook + responses: + "204": + description: Book deleted successfully. + "404": + description: Book not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /authors: + get: + tags: + - Authors + summary: List all authors + description: Retrieves a list of all authors. + operationId: listAuthors + parameters: + - name: limit + in: query + description: Maximum number of authors to return. + required: false + schema: + type: integer + format: int32 + default: 20 + - name: offset + in: query + description: Number of authors to skip for pagination. + required: false + schema: + type: integer + format: int32 + default: 0 + responses: + "200": + description: A list of authors. + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Author" + post: + tags: + - Authors + summary: Add a new author + description: Adds a new author to the system. + operationId: createAuthor + requestBody: + description: Author object to be added. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/AuthorInput" + responses: + "201": + description: Author created successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Author" + "400": + description: Invalid input data for the author. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "/authors/{authorId}": + parameters: + - name: authorId + in: path + required: true + description: Unique identifier of the author. + schema: + type: string + format: uuid + get: + tags: + - Authors + summary: Get author by ID + description: Retrieves detailed information for a specific author. + operationId: getAuthorById + responses: + "200": + description: Detailed information about the author. + content: + application/json: + schema: + $ref: "#/components/schemas/Author" + "404": + description: Author not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + put: + tags: + - Authors + summary: Update an existing author + description: Updates the information for an existing author. + operationId: updateAuthor + requestBody: + description: Author object with updated information. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/AuthorInput" + responses: + "200": + description: Author updated successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Author" + "400": + description: Invalid input data for the author. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Author not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + delete: + tags: + - Authors + summary: Delete an author + description: Removes an author from the system. Associated books may need to be handled or re-assigned. + operationId: deleteAuthor + responses: + "204": + description: Author deleted successfully. + "404": + description: Author not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /genres: + get: + tags: + - Genres + summary: List all genres + description: Retrieves a list of all book genres. + operationId: listGenres + responses: + "200": + description: A list of genres. + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Genre" + post: + tags: + - Genres + summary: Add a new genre + description: Adds a new genre to the system. + operationId: createGenre + requestBody: + description: Genre object to be added. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/GenreInput" + responses: + "201": + description: Genre created successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Genre" + "400": + description: Invalid input data for the genre. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "409": + description: A genre with the same name already exists. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "/genres/{genreId}": + parameters: + - name: genreId + in: path + required: true + description: Unique identifier of the genre. + schema: + type: string + format: uuid + get: + tags: + - Genres + summary: Get genre by ID + description: Retrieves detailed information for a specific genre. + operationId: getGenreById + responses: + "200": + description: Detailed information about the genre. + content: + application/json: + schema: + $ref: "#/components/schemas/Genre" + "404": + description: Genre not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + put: + tags: + - Genres + summary: Update an existing genre + description: Updates the information for an existing genre. + operationId: updateGenre + requestBody: + description: Genre object with updated information. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/GenreInput" + responses: + "200": + description: Genre updated successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Genre" + "400": + description: Invalid input data for the genre. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Genre not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + delete: + tags: + - Genres + summary: Delete a genre + description: Removes a genre from the system. + operationId: deleteGenre + responses: + "204": + description: Genre deleted successfully. + "404": + description: Genre not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" +components: + schemas: + Book: + type: object + required: + - id + - title + - isbn + - authorIds + - genreIds + properties: + id: + type: string + format: uuid + description: Unique identifier for the book. + readOnly: true + example: "d290f1ee-6c54-4b01-90e6-d701748f0851" + title: + type: string + description: The title of the book. + example: "The Great Novel" + isbn: + type: string + description: International Standard Book Number. + example: "978-3-16-148410-0" + publicationDate: + type: string + format: date + description: The date the book was published. + example: "2023-05-15" + description: + type: string + description: A short summary or description of the book. + example: "An epic tale of adventure and discovery." + coverImageUrl: + type: string + format: url + description: URL to the book's cover image. + example: "https://examplebookstore.com/covers/great-novel.jpg" + authorIds: + type: array + description: List of author IDs associated with this book. + items: + type: string + format: uuid + example: "a1b2c3d4-e5f6-7890-1234-567890abcdef" + genreIds: + type: array + description: List of genre IDs this book belongs to. + items: + type: string + format: uuid + example: "f0e1d2c3-b4a5-6789-0123-456789abcdef" + BookInput: + type: object + required: + - title + - isbn + - authorIds + - genreIds + properties: + title: + type: string + description: The title of the book. + example: "The Great Novel" + isbn: + type: string + description: International Standard Book Number. + example: "978-3-16-148410-0" + publicationDate: + type: string + format: date + description: The date the book was published. + example: "2023-05-15" + description: + type: string + description: A short summary or description of the book. + example: "An epic tale of adventure and discovery." + coverImageUrl: + type: string + format: url + description: URL to the book's cover image. + example: "https://examplebookstore.com/covers/great-novel.jpg" + authorIds: + type: array + description: List of author IDs associated with this book. + items: + type: string + format: uuid + example: "a1b2c3d4-e5f6-7890-1234-567890abcdef" + genreIds: + type: array + description: List of genre IDs this book belongs to. + items: + type: string + format: uuid + example: "f0e1d2c3-b4a5-6789-0123-456789abcdef" + Author: + type: object + required: + - id + - firstName + - lastName + properties: + id: + type: string + format: uuid + description: Unique identifier for the author. + readOnly: true + example: "a1b2c3d4-e5f6-7890-1234-567890abcdef" + firstName: + type: string + description: Author's first name. + example: "Jane" + lastName: + type: string + description: Author's last name. + example: "Doe" + biography: + type: string + description: A short biography of the author. + example: "Jane Doe is a renowned author of contemporary fiction." + birthDate: + type: string + format: date + description: Author's date of birth. + example: "1980-01-20" + AuthorInput: + type: object + required: + - firstName + - lastName + properties: + firstName: + type: string + description: Author's first name. + example: "Jane" + lastName: + type: string + description: Author's last name. + example: "Doe" + biography: + type: string + description: A short biography of the author. + example: "Jane Doe is a renowned author of contemporary fiction." + birthDate: + type: string + format: date + description: Author's date of birth. + example: "1980-01-20" + Genre: + type: object + required: + - id + - name + properties: + id: + type: string + format: uuid + description: Unique identifier for the genre. + readOnly: true + example: "f0e1d2c3-b4a5-6789-0123-456789abcdef" + name: + type: string + description: The name of the genre. + example: "Science Fiction" + description: + type: string + description: A brief description of the genre. + example: "Literature that explores imaginative concepts based on scientific or technological advancements." + GenreInput: + type: object + required: + - name + properties: + name: + type: string + description: The name of the genre. + example: "Science Fiction" + description: + type: string + description: A brief description of the genre. + example: "Literature that explores imaginative concepts based on scientific or technological advancements." + Error: + type: object + required: + - code + - message + properties: + code: + type: string + description: An error code. + example: "NOT_FOUND" + message: + type: string + description: A human-readable error message. + example: "The requested resource was not found." + details: + type: object + additionalProperties: true + description: Additional details about the error. + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-KEY + description: API key for authentication. Use `test-api-key` for testing purposes. + BearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + description: Bearer token for authentication using JWT. + OAuth2Flow: + type: oauth2 + description: OAuth2 authentication for accessing protected resources. + flows: + authorizationCode: + authorizationUrl: https://auth.examplebookstore.com/oauth/authorize + tokenUrl: https://auth.examplebookstore.com/oauth/token + scopes: + "books:read": Read access to books + "books:write": Write access to books + "authors:read": Read access to authors + "authors:write": Write access to authors + "genres:read": Read access to genres + "genres:write": Write access to genres +security: + - ApiKeyAuth: [] + - BearerAuth: [] + - OAuth2Flow: + - "books:read" + - "authors:read" + - "genres:read" \ No newline at end of file diff --git a/specs-processed/petstore.yaml b/specs-processed/petstore.yaml new file mode 100644 index 0000000..c31ac04 --- /dev/null +++ b/specs-processed/petstore.yaml @@ -0,0 +1,1271 @@ +openapi: 3.0.0 +servers: + - url: https://petstore.swagger.io/v2 + description: Default server + - url: https://petstore.swagger.io/sandbox + description: Sandbox server + - url: http://127.0.0.1:4010 + description: Prism Mock API (local) +info: + description: | + This is a sample server Petstore server. + You can find out more about Swagger at + [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). + For this sample, you can use the api key `special-key` to test the authorization filters. + + ## Introduction + This API is documented in **OpenAPI format** and is based on + [Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team. + It was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo) + tool and [ReDoc](https://github.com/Redocly/redoc) documentation. In addition to standard + OpenAPI syntax we use a few [vendor extensions](https://github.com/Redocly/redoc/blob/master/docs/redoc-vendor-extensions.md). + + ## OpenAPI Specification + This API is documented in **OpenAPI format** and is based on + [Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team. + It was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo) + tool and [ReDoc](https://github.com/Redocly/redoc) documentation. In addition to standard + OpenAPI syntax we use a few [vendor extensions](https://github.com/Redocly/redoc/blob/master/docs/redoc-vendor-extensions.md). + + ## Cross-Origin Resource Sharing + This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). + And that allows cross-domain communication from the browser. + All responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site. + + ## Authentication + + Petstore offers two forms of authentication: + - API Key + - OAuth2 + + OAuth2 - an open protocol to allow secure authorization in a simple + and standard method from web, mobile and desktop applications. + + version: 2.0.0 + title: Swagger Petstore YAML + termsOfService: "http://swagger.io/terms/" + contact: + name: API Support + email: apiteam@swagger.io + url: https://github.com/Redocly/redoc + x-logo: + url: "https://redocly.github.io/redoc/petstore-logo.png" + altText: Petstore logo + x-dark-logo: + url: "/img/petstore-logo-dark.png" + altText: "Petstore dark logo" + license: + name: Apache 2.0 + url: "http://www.apache.org/licenses/LICENSE-2.0.html" +externalDocs: + description: Find out how to create Github repo for your OpenAPI spec. + url: "https://github.com/Rebilly/generator-openapi-repo" +tags: + - name: pet + description: Everything about your Pets + x-displayName: Pets + - name: store + description: Access to Petstore orders + x-displayName: Petstore Orders + - name: user + description: Operations about user + x-displayName: Users + - name: pet_model + x-displayName: The Pet Model + description: | + + - name: store_model + x-displayName: The Order Model + description: | + +x-tagGroups: + - name: General + tags: + - pet + - store + - name: User Management + tags: + - user + - name: Models + tags: + - pet_model + - store_model +paths: + /pet: + parameters: + - name: Accept-Language + in: header + description: "The language you prefer for messages. Supported values are en-AU, en-CA, en-GB, en-US" + example: en-US + required: false + schema: + type: string + default: en-AU + - name: cookieParam + in: cookie + description: Some cookie + required: true + schema: + type: integer + format: int64 + post: + tags: + - pet + summary: Add a new pet to the store + description: Add new pet to the store inventory. + operationId: addPet + responses: + "405": + description: Invalid input + security: + - petstore_auth: + - "write:pets" + - "read:pets" + - api_key: [] + - ApiKeyAuth: [] + - BasicAuth: [] + - BearerAuth: [] + - OAuth2: [] + - OpenID: [] + + x-codeSamples: + - lang: "C#" + source: | + PetStore.v1.Pet pet = new PetStore.v1.Pet(); + pet.setApiKey("your api key"); + pet.petType = PetStore.v1.Pet.TYPE_DOG; + pet.name = "Rex"; + // set other fields + PetStoreResponse response = pet.create(); + if (response.statusCode == HttpStatusCode.Created) + { + // Successfully created + } + else + { + // Something wrong -- check response for errors + Console.WriteLine(response.getRawResponse()); + } + - lang: PHP + label: Custom + source: | + $form = new \PetStore\Entities\Pet(); + $form->setPetType("Dog"); + $form->setName("Rex"); + // set other fields + try { + $pet = $client->pets()->create($form); + } catch (UnprocessableEntityException $e) { + var_dump($e->getErrors()); + } + requestBody: + $ref: "#/components/requestBodies/Pet" + put: + tags: + - pet + summary: Update an existing pet + description: "" + operationId: updatePet + responses: + "400": + description: Invalid ID supplied + "404": + description: Pet not found + "405": + description: Validation exception + security: + - petstore_auth: + - "write:pets" + - "read:pets" + x-codeSamples: + - lang: PHP + source: | + $form = new \PetStore\Entities\Pet(); + $form->setPetId(1); + $form->setPetType("Dog"); + $form->setName("Rex"); + // set other fields + try { + $pet = $client->pets()->update($form); + } catch (UnprocessableEntityException $e) { + var_dump($e->getErrors()); + } + requestBody: + $ref: "#/components/requestBodies/Pet" + "/pet/{petId}": + get: + tags: + - pet + summary: Find pet by ID + description: Returns a single pet + operationId: getPetById + parameters: + - name: petId + in: path + description: ID of pet to return + required: true + deprecated: true + schema: + type: integer + format: int64 + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + $ref: "#/components/schemas/Pet" + + "400": + description: Invalid ID supplied + "404": + description: Pet not found + security: + - api_key: [] + post: + tags: + - pet + summary: Updates a pet in the store with form data + description: "" + operationId: updatePetWithForm + parameters: + - name: petId + in: path + description: ID of pet that needs to be updated + required: true + schema: + type: integer + format: int64 + responses: + "405": + description: Invalid input + security: + - petstore_auth: + - "write:pets" + - "read:pets" + requestBody: + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + name: + description: Updated name of the pet + type: string + status: + description: Updated status of the pet + type: string + delete: + tags: + - pet + summary: Deletes a pet + description: "" + operationId: deletePet + parameters: + - name: api_key + in: header + required: false + schema: + type: string + example: "Bearer " + - name: petId + in: path + description: Pet id to delete + required: true + schema: + type: integer + format: int64 + responses: + "400": + description: Invalid pet value + security: + - petstore_auth: + - "write:pets" + - "read:pets" + "/pet/{petId}/uploadImage": + post: + tags: + - pet + summary: uploads an image + description: "" + operationId: uploadFile + parameters: + - name: petId + in: path + description: ID of pet to update + required: true + schema: + type: integer + format: int64 + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/ApiResponse" + security: + - petstore_auth: + - "write:pets" + - "read:pets" + requestBody: + content: + application/octet-stream: + schema: + type: string + format: binary + /pet/findByStatus: + get: + tags: + - pet + summary: Finds Pets by status + description: Multiple status values can be provided with comma separated strings + operationId: findPetsByStatus + parameters: + - name: status + in: query + description: Status values that need to be considered for filter + required: true + style: form + schema: + type: array + minItems: 1 + maxItems: 3 + items: + type: string + enum: + - available + - pending + - sold + default: available + responses: + "200": + description: successful operation + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + type: array + items: + $ref: "#/components/schemas/Pet" + "400": + description: Invalid status value + security: + - api_key: [] + /pet/findByTags: + get: + tags: + - pet + summary: Finds Pets by tags + description: >- + Multiple tags can be provided with comma separated strings. Use tag1, + tag2, tag3 for testing. + operationId: findPetsByTags + deprecated: true + parameters: + - name: tags + in: query + description: Tags to filter by + required: true + style: form + schema: + type: array + items: + type: string + responses: + "200": + description: successful operation + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + type: array + items: + $ref: "#/components/schemas/Pet" + "400": + description: Invalid tag value + security: + - petstore_auth: + - "write:pets" + - "read:pets" + /store/inventory: + get: + tags: + - store + summary: Returns pet inventories by status + description: Returns a map of status codes to quantities + operationId: getInventory + responses: + "200": + description: successful operation + content: + application/json: + schema: + type: object + additionalProperties: + type: integer + format: int32 + security: + - api_key: [] + /store/order: + post: + tags: + - store + summary: Place an order for a pet + description: "" + operationId: placeOrder + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/Order" + application/xml: + schema: + $ref: "#/components/schemas/Order" + "400": + description: Invalid Order + content: + application/json: + example: + status: 400 + message: "Invalid Order" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Order" + examples: + OrderDelivered: + summary: Order delivered + value: + quantity: 4 + shipDate: 2022-10-12 + status: delivered + requestId: 444-4444-444-4444 + OrderPlaced: + summary: Order placed + value: + quantity: 10 + shipDate: 2022-10-01 + status: placed + requestId: 111-222-333-444 + OrderApproved: + summary: Order approved + value: + quantity: 1000 + shipDate: 2022-09-01 + status: approved + requestId: 000-111-222-333 + description: order placed for purchasing the pet + required: true + "/store/order/{orderId}": + get: + tags: + - store + summary: Find purchase order by ID + description: >- + For valid response try integer IDs with value <= 5 or > 10. Other values + will generated exceptions + operationId: getOrderById + parameters: + - name: orderId + in: path + description: ID of pet that needs to be fetched + required: true + schema: + type: integer + format: int64 + minimum: 1 + maximum: 5 + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/Order" + application/xml: + schema: + $ref: "#/components/schemas/Order" + "400": + description: Invalid ID supplied + "404": + description: Order not found + delete: + tags: + - store + summary: Delete purchase order by ID + description: >- + For valid response try integer IDs with value < 1000. Anything above + 1000 or nonintegers will generate API errors + operationId: deleteOrder + parameters: + - name: orderId + in: path + description: ID of the order that needs to be deleted + required: true + schema: + type: string + minimum: 1 + responses: + "400": + description: Invalid ID supplied + "404": + description: Order not found + /store/subscribe: + post: + tags: + - store + summary: Subscribe to the Store events + description: Add subscription for a store events + requestBody: + content: + application/json: + schema: + type: object + properties: + callbackUrl: + type: string + format: uri + description: This URL will be called by the server when the desired event will occur + example: https://myserver.com/send/callback/here + eventName: + type: string + description: Event name for the subscription + enum: + - orderInProgress + - orderShipped + - orderDelivered + example: orderInProgress + required: + - callbackUrl + - eventName + responses: + "201": + description: Subscription added + content: + application/json: + schema: + type: object + properties: + subscriptionId: + type: string + example: AAA-123-BBB-456 + callbacks: + orderInProgress: + "{$request.body#/callbackUrl}?event={$request.body#/eventName}": + servers: + - url: //callback-url.path-level/v1 + description: Path level server 1 + - url: //callback-url.path-level/v2 + description: Path level server 2 + post: + summary: Order in Progress (Summary) + description: A callback triggered every time an Order is updated status to "inProgress" (Description) + externalDocs: + description: Find out more + url: "https://more-details.com/demo" + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + example: "123" + timestamp: + type: string + format: date-time + example: "2018-10-19T16:46:45Z" + status: + type: string + example: "inProgress" + application/xml: + schema: + type: object + properties: + orderId: + type: string + example: "123" + example: | + + + 123 + inProgress + 2018-10-19T16:46:45Z + + responses: + "200": + description: Callback successfully processed and no retries will be performed + content: + application/json: + schema: + type: object + properties: + someProp: + type: string + example: "123" + "299": + description: Response for cancelling subscription + "500": + description: Callback processing failed and retries will be performed + x-codeSamples: + - lang: "C#" + source: | + PetStore.v1.Pet pet = new PetStore.v1.Pet(); + pet.setApiKey("your api key"); + pet.petType = PetStore.v1.Pet.TYPE_DOG; + pet.name = "Rex"; + // set other fields + PetStoreResponse response = pet.create(); + if (response.statusCode == HttpStatusCode.Created) + { + // Successfully created + } + else + { + // Something wrong -- check response for errors + Console.WriteLine(response.getRawResponse()); + } + - lang: PHP + source: | + $form = new \PetStore\Entities\Pet(); + $form->setPetType("Dog"); + $form->setName("Rex"); + // set other fields + try { + $pet = $client->pets()->create($form); + } catch (UnprocessableEntityException $e) { + var_dump($e->getErrors()); + } + put: + description: Order in Progress (Only Description) + servers: + - url: //callback-url.operation-level/v1 + description: Operation level server 1 (Operation override) + - url: //callback-url.operation-level/v2 + description: Operation level server 2 (Operation override) + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + example: "123" + timestamp: + type: string + format: date-time + example: "2018-10-19T16:46:45Z" + status: + type: string + example: "inProgress" + application/xml: + schema: + type: object + properties: + orderId: + type: string + example: "123" + example: | + + + 123 + inProgress + 2018-10-19T16:46:45Z + + responses: + "200": + description: Callback successfully processed and no retries will be performed + content: + application/json: + schema: + type: object + properties: + someProp: + type: string + example: "123" + orderShipped: + "{$request.body#/callbackUrl}?event={$request.body#/eventName}": + post: + description: A callback triggered every time an Order is shipped to the recipient + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + example: "123" + timestamp: + type: string + format: date-time + example: "2018-10-19T16:46:45Z" + estimatedDeliveryDate: + type: string + format: date-time + example: "2018-11-11T16:00:00Z" + responses: + "200": + description: Callback successfully processed and no retries will be performed + orderDelivered: + "http://notificationServer.com?url={$request.body#/callbackUrl}&event={$request.body#/eventName}": + post: + deprecated: true + summary: Order delivered + description: A callback triggered every time an Order is delivered to the recipient + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + example: "123" + timestamp: + type: string + format: date-time + example: "2018-10-19T16:46:45Z" + responses: + "200": + description: Callback successfully processed and no retries will be performed + /user: + post: + tags: + - user + summary: Create user + description: This can only be done by the logged in user. + operationId: createUser + responses: + default: + description: successful operation + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/User" + description: Created user object + required: true + "/user/{username}": + get: + tags: + - user + summary: Get user by user name + description: "" + operationId: getUserByName + parameters: + - name: username + in: path + description: "The name that needs to be fetched. Use user1 for testing. " + required: true + schema: + type: string + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/User" + application/xml: + schema: + $ref: "#/components/schemas/User" + "400": + description: Invalid username supplied + "404": + description: User not found + put: + tags: + - user + summary: Updated user + description: This can only be done by the logged in user. + operationId: updateUser + parameters: + - name: username + in: path + description: name that need to be deleted + required: true + schema: + type: string + responses: + "400": + description: Invalid user supplied + "404": + description: User not found + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/User" + description: Updated user object + required: true + delete: + tags: + - user + summary: Delete user + description: This can only be done by the logged in user. + operationId: deleteUser + parameters: + - name: username + in: path + description: The name that needs to be deleted + required: true + schema: + type: string + responses: + "400": + description: Invalid username supplied + "404": + description: User not found + /user/createWithArray: + post: + tags: + - user + summary: Creates list of users with given input array + description: "" + operationId: createUsersWithArrayInput + responses: + default: + description: successful operation + requestBody: + $ref: "#/components/requestBodies/UserArray" + /user/createWithList: + post: + tags: + - user + summary: Creates list of users with given input list + description: "" + operationId: createUsersWithListInput + responses: + default: + description: successful operation + requestBody: + $ref: "#/components/requestBodies/UserArray" + /user/login: + get: + tags: + - user + summary: Logs user into the system + description: "" + operationId: loginUser + parameters: + - name: username + in: query + description: The user name for login + required: true + schema: + type: string + - name: password + in: query + description: The password for login in clear text + required: true + schema: + type: string + responses: + "200": + description: successful operation + headers: + X-Rate-Limit: + description: calls per hour allowed by the user + schema: + type: integer + format: int32 + X-Expires-After: + description: date in UTC when token expires + schema: + type: string + format: date-time + content: + application/json: + schema: + type: string + examples: + response: + value: OK + application/xml: + schema: + type: string + examples: + response: + value: OK + text/plain: + examples: + response: + value: OK + "400": + description: Invalid username/password supplied + /user/logout: + get: + tags: + - user + summary: Logs out current logged in user session + description: "" + operationId: logoutUser + responses: + default: + description: successful operation +components: + schemas: + ApiResponse: + type: object + properties: + code: + type: integer + format: int32 + type: + type: string + message: + type: string + Cat: + x-tags: + - pet + description: A representation of a cat + allOf: + - $ref: "#/components/schemas/Pet" + - type: object + properties: + huntingSkill: + type: string + description: The measured skill for hunting + default: lazy + example: adventurous + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - huntingSkill + Category: + type: object + properties: + id: + description: Category ID + allOf: + - $ref: "#/components/schemas/Id" + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + type: string + description: Dumb Property + xml: + name: Category + Dog: + description: A representation of a dog + allOf: + - $ref: "#/components/schemas/Pet" + - type: object + properties: + packSize: + type: integer + format: int32 + description: The size of the pack the dog is from + default: 1 + minimum: 1 + required: + - packSize + HoneyBee: + description: A representation of a honey bee + allOf: + - $ref: "#/components/schemas/Pet" + - type: object + properties: + honeyPerDay: + type: number + description: Average amount of honey produced per day in ounces + example: 3.14 + multipleOf: .01 + default: 0 + required: + - honeyPerDay + Id: + type: integer + format: int64 + readOnly: true + Order: + type: object + properties: + id: + description: Order ID + allOf: + - $ref: "#/components/schemas/Id" + petId: + description: Pet ID + allOf: + - $ref: "#/components/schemas/Id" + quantity: + type: integer + format: int32 + minimum: 1 + default: 1 + shipDate: + description: Estimated ship date + type: string + format: date-time + status: + type: string + description: Order Status + enum: + - placed + - approved + - delivered + complete: + description: Indicates whenever order was completed or not + type: boolean + default: false + readOnly: true + requestId: + description: Unique Request Id + type: string + writeOnly: true + xml: + name: Order + Pet: + type: object + required: + - name + - photoUrls + - tags + discriminator: + propertyName: petType + mapping: + cat: "#/components/schemas/Cat" + dog: "#/components/schemas/Dog" + bee: "#/components/schemas/HoneyBee" + properties: + id: + externalDocs: + description: "Find more info here" + url: "https://example.com" + description: Pet ID + allOf: + - $ref: "#/components/schemas/Id" + category: + description: Categories this pet belongs to + allOf: + - $ref: "#/components/schemas/Category" + name: + description: The name given to a pet + type: string + example: Guru + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + maxItems: 20 + xml: + name: photoUrl + wrapped: true + items: + type: string + format: url + friend: + allOf: + - $ref: "#/components/schemas/Pet" + tags: + description: Tags attached to the pet + type: array + minItems: 1 + xml: + name: tag + wrapped: true + items: + $ref: "#/components/schemas/Tag" + status: + type: string + description: Pet status in the store + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + oneOf: + - $ref: "#/components/schemas/Cat" + - $ref: "#/components/schemas/Dog" + - $ref: "#/components/schemas/HoneyBee" + xml: + name: Pet + Tag: + type: object + properties: + id: + description: Tag ID + allOf: + - $ref: "#/components/schemas/Id" + name: + description: Tag name + type: string + minLength: 1 + xml: + name: Tag + User: + type: object + properties: + id: + $ref: "#/components/schemas/Id" + pet: + oneOf: + - $ref: "#/components/schemas/Pet" + - $ref: "#/components/schemas/Tag" + username: + description: User supplied username + type: string + minLength: 4 + example: John78 + firstName: + description: User first name + type: string + minLength: 1 + example: John + lastName: + description: User last name + type: string + minLength: 1 + example: Smith + email: + description: User email address + type: string + format: email + example: john.smith@example.com + password: + type: string + description: >- + User password, MUST contain a mix of upper and lower case letters, + as well as digits + format: password + minLength: 8 + pattern: "/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/" + example: drowssaP123 + phone: + description: User phone number in international format + type: string + pattern: '/^\+(?:[0-9]-?){6,14}[0-9]$/' + example: +1-202-555-0192 + userStatus: + description: User status + type: integer + format: int32 + xml: + name: User + requestBodies: + Pet: + content: + application/json: + schema: + allOf: + - description: My Pet + title: Pettie + - $ref: "#/components/schemas/Pet" + example: + category: + name: Great Dane + sub: + prop1: Just a test property + name: Pepper + photoUrls: + - https://assets.orvis.com/is/image/orvisprd/great-dane + tags: + - name: Great Danes + status: pending + petType: + huntingSkill: lazy + application/xml: + schema: + type: "object" + properties: + name: + type: string + description: hooray + description: Pet object that needs to be added to the store + required: true + UserArray: + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/User" + description: List of user object + required: true + securitySchemes: + petstore_auth: + description: | + Get access to data while protecting your account credentials. + OAuth2 is also a safer and more secure way to give you access. + type: oauth2 + flows: + implicit: + authorizationUrl: "http://petstore.swagger.io/api/oauth/dialog" + scopes: + "write:pets": modify pets in your account + "read:pets": read your pets + api_key: + description: > + For this sample, you can use the api key `special-key` to test the + authorization filters. + type: apiKey + name: api_key + in: header + BasicAuth: + type: http + scheme: basic + BearerAuth: + type: http + scheme: bearer + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key + OpenID: + type: openIdConnect + openIdConnectUrl: https://example.com/.well-known/openid-configuration + OAuth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: https://example.com/oauth/authorize + tokenUrl: https://example.com/oauth/token + scopes: + read: Grants read access + write: Grants write access + admin: Grants access to admin operations +x-webhooks: + newPet: + post: + summary: New pet + description: Information about a new pet in the systems + operationId: newPet + tags: + - pet + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Pet" + responses: + "200": + description: Return a 200 status to indicate that the data was received successfully From 49ed16301d3292346b95b831f220f6b0014cc189 Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 10:59:42 -0400 Subject: [PATCH 36/37] Add sample files, to help debugging --- specs/bookstore.yaml | 718 ++++++++++++++++++++++++ specs/petstore.yaml | 1271 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1989 insertions(+) create mode 100644 specs/bookstore.yaml create mode 100644 specs/petstore.yaml diff --git a/specs/bookstore.yaml b/specs/bookstore.yaml new file mode 100644 index 0000000..a012b81 --- /dev/null +++ b/specs/bookstore.yaml @@ -0,0 +1,718 @@ +openapi: 3.0.0 +servers: + - url: https://api.examplebookstore.com/v1 + description: Production server + - url: https://sandbox.api.examplebookstore.com/v1 + description: Sandbox server + - url: http://localhost:4010 + description: Local development mock server +info: + title: Bookstore API + version: 1.0.0 + description: | + Welcome to the Bookstore API. This API provides access to a rich collection of books, author details, and genre classifications. + You can use this API to browse our catalog, search for specific titles, and manage book-related data. + + ## Key Features: + * Access detailed information about books, including titles, ISBNs, authors, and genres. + * Manage author profiles and their literary works. + * Explore books categorized by various genres. + + This specification is written in OpenAPI 3.0.0 format. + contact: + name: Bookstore API Support + email: support@examplebookstore.com + url: https://developer.examplebookstore.com/support + license: + name: Apache 2.0 + url: "http://www.apache.org/licenses/LICENSE-2.0.html" + x-logo: + url: "https://examplebookstore.com/assets/logo.png" + altText: "Bookstore Logo" +tags: + - name: Books + description: Operations related to books in the catalog. + x-displayName: Books + - name: Authors + description: Operations related to book authors. + x-displayName: Authors + - name: Genres + description: Operations related to book genres. + x-displayName: Genres + - name: Schema-Book + x-displayName: Book Schema + description: | + + - name: Schema-Author + x-displayName: Author Schema + description: | + + - name: Schema-Genre + x-displayName: Genre Schema + description: | + +x-tagGroups: + - name: Core Resources + tags: + - Books + - Authors + - Genres + - name: Data Models + tags: + - Schema-Book + - Schema-Author + - Schema-Genre +paths: + /books: + get: + tags: + - Books + summary: List all books + description: Retrieves a paginated list of all books in the catalog. Supports filtering by genre and author. + operationId: listBooks + parameters: + - name: limit + in: query + description: Maximum number of books to return. + required: false + schema: + type: integer + format: int32 + default: 20 + minimum: 1 + maximum: 100 + - name: offset + in: query + description: Number of books to skip for pagination. + required: false + schema: + type: integer + format: int32 + default: 0 + minimum: 0 + - name: genreId + in: query + description: Filter books by a specific genre ID. + required: false + schema: + type: string + format: uuid + - name: authorId + in: query + description: Filter books by a specific author ID. + required: false + schema: + type: string + format: uuid + responses: + "200": + description: A list of books. + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Book" + "400": + description: Invalid query parameters. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + post: + tags: + - Books + summary: Add a new book + description: Adds a new book to the catalog. + operationId: createBook + requestBody: + description: Book object to be added. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/BookInput" + responses: + "201": + description: Book created successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Book" + "400": + description: Invalid input data for the book. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "409": + description: A book with the same ISBN already exists. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "/books/{bookId}": + parameters: + - name: bookId + in: path + required: true + description: Unique identifier of the book. + schema: + type: string + format: uuid + get: + tags: + - Books + summary: Get book by ID + description: Retrieves detailed information for a specific book. + operationId: getBookById + responses: + "200": + description: Detailed information about the book. + content: + application/json: + schema: + $ref: "#/components/schemas/Book" + "404": + description: Book not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + put: + tags: + - Books + summary: Update an existing book + description: Updates the information for an existing book. + operationId: updateBook + requestBody: + description: Book object with updated information. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/BookInput" + responses: + "200": + description: Book updated successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Book" + "400": + description: Invalid input data for the book. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Book not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + delete: + tags: + - Books + summary: Delete a book + description: Removes a book from the catalog. + operationId: deleteBook + responses: + "204": + description: Book deleted successfully. + "404": + description: Book not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /authors: + get: + tags: + - Authors + summary: List all authors + description: Retrieves a list of all authors. + operationId: listAuthors + parameters: + - name: limit + in: query + description: Maximum number of authors to return. + required: false + schema: + type: integer + format: int32 + default: 20 + - name: offset + in: query + description: Number of authors to skip for pagination. + required: false + schema: + type: integer + format: int32 + default: 0 + responses: + "200": + description: A list of authors. + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Author" + post: + tags: + - Authors + summary: Add a new author + description: Adds a new author to the system. + operationId: createAuthor + requestBody: + description: Author object to be added. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/AuthorInput" + responses: + "201": + description: Author created successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Author" + "400": + description: Invalid input data for the author. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "/authors/{authorId}": + parameters: + - name: authorId + in: path + required: true + description: Unique identifier of the author. + schema: + type: string + format: uuid + get: + tags: + - Authors + summary: Get author by ID + description: Retrieves detailed information for a specific author. + operationId: getAuthorById + responses: + "200": + description: Detailed information about the author. + content: + application/json: + schema: + $ref: "#/components/schemas/Author" + "404": + description: Author not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + put: + tags: + - Authors + summary: Update an existing author + description: Updates the information for an existing author. + operationId: updateAuthor + requestBody: + description: Author object with updated information. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/AuthorInput" + responses: + "200": + description: Author updated successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Author" + "400": + description: Invalid input data for the author. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Author not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + delete: + tags: + - Authors + summary: Delete an author + description: Removes an author from the system. Associated books may need to be handled or re-assigned. + operationId: deleteAuthor + responses: + "204": + description: Author deleted successfully. + "404": + description: Author not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + /genres: + get: + tags: + - Genres + summary: List all genres + description: Retrieves a list of all book genres. + operationId: listGenres + responses: + "200": + description: A list of genres. + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Genre" + post: + tags: + - Genres + summary: Add a new genre + description: Adds a new genre to the system. + operationId: createGenre + requestBody: + description: Genre object to be added. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/GenreInput" + responses: + "201": + description: Genre created successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Genre" + "400": + description: Invalid input data for the genre. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "409": + description: A genre with the same name already exists. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "/genres/{genreId}": + parameters: + - name: genreId + in: path + required: true + description: Unique identifier of the genre. + schema: + type: string + format: uuid + get: + tags: + - Genres + summary: Get genre by ID + description: Retrieves detailed information for a specific genre. + operationId: getGenreById + responses: + "200": + description: Detailed information about the genre. + content: + application/json: + schema: + $ref: "#/components/schemas/Genre" + "404": + description: Genre not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + put: + tags: + - Genres + summary: Update an existing genre + description: Updates the information for an existing genre. + operationId: updateGenre + requestBody: + description: Genre object with updated information. + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/GenreInput" + responses: + "200": + description: Genre updated successfully. + content: + application/json: + schema: + $ref: "#/components/schemas/Genre" + "400": + description: Invalid input data for the genre. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + "404": + description: Genre not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + delete: + tags: + - Genres + summary: Delete a genre + description: Removes a genre from the system. + operationId: deleteGenre + responses: + "204": + description: Genre deleted successfully. + "404": + description: Genre not found. + content: + application/json: + schema: + $ref: "#/components/schemas/Error" +components: + schemas: + Book: + type: object + required: + - id + - title + - isbn + - authorIds + - genreIds + properties: + id: + type: string + format: uuid + description: Unique identifier for the book. + readOnly: true + example: "d290f1ee-6c54-4b01-90e6-d701748f0851" + title: + type: string + description: The title of the book. + example: "The Great Novel" + isbn: + type: string + description: International Standard Book Number. + example: "978-3-16-148410-0" + publicationDate: + type: string + format: date + description: The date the book was published. + example: "2023-05-15" + description: + type: string + description: A short summary or description of the book. + example: "An epic tale of adventure and discovery." + coverImageUrl: + type: string + format: url + description: URL to the book's cover image. + example: "https://examplebookstore.com/covers/great-novel.jpg" + authorIds: + type: array + description: List of author IDs associated with this book. + items: + type: string + format: uuid + example: "a1b2c3d4-e5f6-7890-1234-567890abcdef" + genreIds: + type: array + description: List of genre IDs this book belongs to. + items: + type: string + format: uuid + example: "f0e1d2c3-b4a5-6789-0123-456789abcdef" + BookInput: + type: object + required: + - title + - isbn + - authorIds + - genreIds + properties: + title: + type: string + description: The title of the book. + example: "The Great Novel" + isbn: + type: string + description: International Standard Book Number. + example: "978-3-16-148410-0" + publicationDate: + type: string + format: date + description: The date the book was published. + example: "2023-05-15" + description: + type: string + description: A short summary or description of the book. + example: "An epic tale of adventure and discovery." + coverImageUrl: + type: string + format: url + description: URL to the book's cover image. + example: "https://examplebookstore.com/covers/great-novel.jpg" + authorIds: + type: array + description: List of author IDs associated with this book. + items: + type: string + format: uuid + example: "a1b2c3d4-e5f6-7890-1234-567890abcdef" + genreIds: + type: array + description: List of genre IDs this book belongs to. + items: + type: string + format: uuid + example: "f0e1d2c3-b4a5-6789-0123-456789abcdef" + Author: + type: object + required: + - id + - firstName + - lastName + properties: + id: + type: string + format: uuid + description: Unique identifier for the author. + readOnly: true + example: "a1b2c3d4-e5f6-7890-1234-567890abcdef" + firstName: + type: string + description: Author's first name. + example: "Jane" + lastName: + type: string + description: Author's last name. + example: "Doe" + biography: + type: string + description: A short biography of the author. + example: "Jane Doe is a renowned author of contemporary fiction." + birthDate: + type: string + format: date + description: Author's date of birth. + example: "1980-01-20" + AuthorInput: + type: object + required: + - firstName + - lastName + properties: + firstName: + type: string + description: Author's first name. + example: "Jane" + lastName: + type: string + description: Author's last name. + example: "Doe" + biography: + type: string + description: A short biography of the author. + example: "Jane Doe is a renowned author of contemporary fiction." + birthDate: + type: string + format: date + description: Author's date of birth. + example: "1980-01-20" + Genre: + type: object + required: + - id + - name + properties: + id: + type: string + format: uuid + description: Unique identifier for the genre. + readOnly: true + example: "f0e1d2c3-b4a5-6789-0123-456789abcdef" + name: + type: string + description: The name of the genre. + example: "Science Fiction" + description: + type: string + description: A brief description of the genre. + example: "Literature that explores imaginative concepts based on scientific or technological advancements." + GenreInput: + type: object + required: + - name + properties: + name: + type: string + description: The name of the genre. + example: "Science Fiction" + description: + type: string + description: A brief description of the genre. + example: "Literature that explores imaginative concepts based on scientific or technological advancements." + Error: + type: object + required: + - code + - message + properties: + code: + type: string + description: An error code. + example: "NOT_FOUND" + message: + type: string + description: A human-readable error message. + example: "The requested resource was not found." + details: + type: object + additionalProperties: true + description: Additional details about the error. + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-API-KEY + description: API key for authentication. Use `test-api-key` for testing purposes. + BearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + description: Bearer token for authentication using JWT. + OAuth2Flow: + type: oauth2 + description: OAuth2 authentication for accessing protected resources. + flows: + authorizationCode: + authorizationUrl: https://auth.examplebookstore.com/oauth/authorize + tokenUrl: https://auth.examplebookstore.com/oauth/token + scopes: + "books:read": Read access to books + "books:write": Write access to books + "authors:read": Read access to authors + "authors:write": Write access to authors + "genres:read": Read access to genres + "genres:write": Write access to genres +security: + - ApiKeyAuth: [] + - BearerAuth: [] + - OAuth2Flow: + - "books:read" + - "authors:read" + - "genres:read" \ No newline at end of file diff --git a/specs/petstore.yaml b/specs/petstore.yaml new file mode 100644 index 0000000..c31ac04 --- /dev/null +++ b/specs/petstore.yaml @@ -0,0 +1,1271 @@ +openapi: 3.0.0 +servers: + - url: https://petstore.swagger.io/v2 + description: Default server + - url: https://petstore.swagger.io/sandbox + description: Sandbox server + - url: http://127.0.0.1:4010 + description: Prism Mock API (local) +info: + description: | + This is a sample server Petstore server. + You can find out more about Swagger at + [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). + For this sample, you can use the api key `special-key` to test the authorization filters. + + ## Introduction + This API is documented in **OpenAPI format** and is based on + [Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team. + It was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo) + tool and [ReDoc](https://github.com/Redocly/redoc) documentation. In addition to standard + OpenAPI syntax we use a few [vendor extensions](https://github.com/Redocly/redoc/blob/master/docs/redoc-vendor-extensions.md). + + ## OpenAPI Specification + This API is documented in **OpenAPI format** and is based on + [Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team. + It was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo) + tool and [ReDoc](https://github.com/Redocly/redoc) documentation. In addition to standard + OpenAPI syntax we use a few [vendor extensions](https://github.com/Redocly/redoc/blob/master/docs/redoc-vendor-extensions.md). + + ## Cross-Origin Resource Sharing + This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/). + And that allows cross-domain communication from the browser. + All responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site. + + ## Authentication + + Petstore offers two forms of authentication: + - API Key + - OAuth2 + + OAuth2 - an open protocol to allow secure authorization in a simple + and standard method from web, mobile and desktop applications. + + version: 2.0.0 + title: Swagger Petstore YAML + termsOfService: "http://swagger.io/terms/" + contact: + name: API Support + email: apiteam@swagger.io + url: https://github.com/Redocly/redoc + x-logo: + url: "https://redocly.github.io/redoc/petstore-logo.png" + altText: Petstore logo + x-dark-logo: + url: "/img/petstore-logo-dark.png" + altText: "Petstore dark logo" + license: + name: Apache 2.0 + url: "http://www.apache.org/licenses/LICENSE-2.0.html" +externalDocs: + description: Find out how to create Github repo for your OpenAPI spec. + url: "https://github.com/Rebilly/generator-openapi-repo" +tags: + - name: pet + description: Everything about your Pets + x-displayName: Pets + - name: store + description: Access to Petstore orders + x-displayName: Petstore Orders + - name: user + description: Operations about user + x-displayName: Users + - name: pet_model + x-displayName: The Pet Model + description: | + + - name: store_model + x-displayName: The Order Model + description: | + +x-tagGroups: + - name: General + tags: + - pet + - store + - name: User Management + tags: + - user + - name: Models + tags: + - pet_model + - store_model +paths: + /pet: + parameters: + - name: Accept-Language + in: header + description: "The language you prefer for messages. Supported values are en-AU, en-CA, en-GB, en-US" + example: en-US + required: false + schema: + type: string + default: en-AU + - name: cookieParam + in: cookie + description: Some cookie + required: true + schema: + type: integer + format: int64 + post: + tags: + - pet + summary: Add a new pet to the store + description: Add new pet to the store inventory. + operationId: addPet + responses: + "405": + description: Invalid input + security: + - petstore_auth: + - "write:pets" + - "read:pets" + - api_key: [] + - ApiKeyAuth: [] + - BasicAuth: [] + - BearerAuth: [] + - OAuth2: [] + - OpenID: [] + + x-codeSamples: + - lang: "C#" + source: | + PetStore.v1.Pet pet = new PetStore.v1.Pet(); + pet.setApiKey("your api key"); + pet.petType = PetStore.v1.Pet.TYPE_DOG; + pet.name = "Rex"; + // set other fields + PetStoreResponse response = pet.create(); + if (response.statusCode == HttpStatusCode.Created) + { + // Successfully created + } + else + { + // Something wrong -- check response for errors + Console.WriteLine(response.getRawResponse()); + } + - lang: PHP + label: Custom + source: | + $form = new \PetStore\Entities\Pet(); + $form->setPetType("Dog"); + $form->setName("Rex"); + // set other fields + try { + $pet = $client->pets()->create($form); + } catch (UnprocessableEntityException $e) { + var_dump($e->getErrors()); + } + requestBody: + $ref: "#/components/requestBodies/Pet" + put: + tags: + - pet + summary: Update an existing pet + description: "" + operationId: updatePet + responses: + "400": + description: Invalid ID supplied + "404": + description: Pet not found + "405": + description: Validation exception + security: + - petstore_auth: + - "write:pets" + - "read:pets" + x-codeSamples: + - lang: PHP + source: | + $form = new \PetStore\Entities\Pet(); + $form->setPetId(1); + $form->setPetType("Dog"); + $form->setName("Rex"); + // set other fields + try { + $pet = $client->pets()->update($form); + } catch (UnprocessableEntityException $e) { + var_dump($e->getErrors()); + } + requestBody: + $ref: "#/components/requestBodies/Pet" + "/pet/{petId}": + get: + tags: + - pet + summary: Find pet by ID + description: Returns a single pet + operationId: getPetById + parameters: + - name: petId + in: path + description: ID of pet to return + required: true + deprecated: true + schema: + type: integer + format: int64 + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + $ref: "#/components/schemas/Pet" + + "400": + description: Invalid ID supplied + "404": + description: Pet not found + security: + - api_key: [] + post: + tags: + - pet + summary: Updates a pet in the store with form data + description: "" + operationId: updatePetWithForm + parameters: + - name: petId + in: path + description: ID of pet that needs to be updated + required: true + schema: + type: integer + format: int64 + responses: + "405": + description: Invalid input + security: + - petstore_auth: + - "write:pets" + - "read:pets" + requestBody: + content: + application/x-www-form-urlencoded: + schema: + type: object + properties: + name: + description: Updated name of the pet + type: string + status: + description: Updated status of the pet + type: string + delete: + tags: + - pet + summary: Deletes a pet + description: "" + operationId: deletePet + parameters: + - name: api_key + in: header + required: false + schema: + type: string + example: "Bearer " + - name: petId + in: path + description: Pet id to delete + required: true + schema: + type: integer + format: int64 + responses: + "400": + description: Invalid pet value + security: + - petstore_auth: + - "write:pets" + - "read:pets" + "/pet/{petId}/uploadImage": + post: + tags: + - pet + summary: uploads an image + description: "" + operationId: uploadFile + parameters: + - name: petId + in: path + description: ID of pet to update + required: true + schema: + type: integer + format: int64 + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/ApiResponse" + security: + - petstore_auth: + - "write:pets" + - "read:pets" + requestBody: + content: + application/octet-stream: + schema: + type: string + format: binary + /pet/findByStatus: + get: + tags: + - pet + summary: Finds Pets by status + description: Multiple status values can be provided with comma separated strings + operationId: findPetsByStatus + parameters: + - name: status + in: query + description: Status values that need to be considered for filter + required: true + style: form + schema: + type: array + minItems: 1 + maxItems: 3 + items: + type: string + enum: + - available + - pending + - sold + default: available + responses: + "200": + description: successful operation + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + type: array + items: + $ref: "#/components/schemas/Pet" + "400": + description: Invalid status value + security: + - api_key: [] + /pet/findByTags: + get: + tags: + - pet + summary: Finds Pets by tags + description: >- + Multiple tags can be provided with comma separated strings. Use tag1, + tag2, tag3 for testing. + operationId: findPetsByTags + deprecated: true + parameters: + - name: tags + in: query + description: Tags to filter by + required: true + style: form + schema: + type: array + items: + type: string + responses: + "200": + description: successful operation + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/Pet" + application/xml: + schema: + type: array + items: + $ref: "#/components/schemas/Pet" + "400": + description: Invalid tag value + security: + - petstore_auth: + - "write:pets" + - "read:pets" + /store/inventory: + get: + tags: + - store + summary: Returns pet inventories by status + description: Returns a map of status codes to quantities + operationId: getInventory + responses: + "200": + description: successful operation + content: + application/json: + schema: + type: object + additionalProperties: + type: integer + format: int32 + security: + - api_key: [] + /store/order: + post: + tags: + - store + summary: Place an order for a pet + description: "" + operationId: placeOrder + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/Order" + application/xml: + schema: + $ref: "#/components/schemas/Order" + "400": + description: Invalid Order + content: + application/json: + example: + status: 400 + message: "Invalid Order" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Order" + examples: + OrderDelivered: + summary: Order delivered + value: + quantity: 4 + shipDate: 2022-10-12 + status: delivered + requestId: 444-4444-444-4444 + OrderPlaced: + summary: Order placed + value: + quantity: 10 + shipDate: 2022-10-01 + status: placed + requestId: 111-222-333-444 + OrderApproved: + summary: Order approved + value: + quantity: 1000 + shipDate: 2022-09-01 + status: approved + requestId: 000-111-222-333 + description: order placed for purchasing the pet + required: true + "/store/order/{orderId}": + get: + tags: + - store + summary: Find purchase order by ID + description: >- + For valid response try integer IDs with value <= 5 or > 10. Other values + will generated exceptions + operationId: getOrderById + parameters: + - name: orderId + in: path + description: ID of pet that needs to be fetched + required: true + schema: + type: integer + format: int64 + minimum: 1 + maximum: 5 + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/Order" + application/xml: + schema: + $ref: "#/components/schemas/Order" + "400": + description: Invalid ID supplied + "404": + description: Order not found + delete: + tags: + - store + summary: Delete purchase order by ID + description: >- + For valid response try integer IDs with value < 1000. Anything above + 1000 or nonintegers will generate API errors + operationId: deleteOrder + parameters: + - name: orderId + in: path + description: ID of the order that needs to be deleted + required: true + schema: + type: string + minimum: 1 + responses: + "400": + description: Invalid ID supplied + "404": + description: Order not found + /store/subscribe: + post: + tags: + - store + summary: Subscribe to the Store events + description: Add subscription for a store events + requestBody: + content: + application/json: + schema: + type: object + properties: + callbackUrl: + type: string + format: uri + description: This URL will be called by the server when the desired event will occur + example: https://myserver.com/send/callback/here + eventName: + type: string + description: Event name for the subscription + enum: + - orderInProgress + - orderShipped + - orderDelivered + example: orderInProgress + required: + - callbackUrl + - eventName + responses: + "201": + description: Subscription added + content: + application/json: + schema: + type: object + properties: + subscriptionId: + type: string + example: AAA-123-BBB-456 + callbacks: + orderInProgress: + "{$request.body#/callbackUrl}?event={$request.body#/eventName}": + servers: + - url: //callback-url.path-level/v1 + description: Path level server 1 + - url: //callback-url.path-level/v2 + description: Path level server 2 + post: + summary: Order in Progress (Summary) + description: A callback triggered every time an Order is updated status to "inProgress" (Description) + externalDocs: + description: Find out more + url: "https://more-details.com/demo" + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + example: "123" + timestamp: + type: string + format: date-time + example: "2018-10-19T16:46:45Z" + status: + type: string + example: "inProgress" + application/xml: + schema: + type: object + properties: + orderId: + type: string + example: "123" + example: | + + + 123 + inProgress + 2018-10-19T16:46:45Z + + responses: + "200": + description: Callback successfully processed and no retries will be performed + content: + application/json: + schema: + type: object + properties: + someProp: + type: string + example: "123" + "299": + description: Response for cancelling subscription + "500": + description: Callback processing failed and retries will be performed + x-codeSamples: + - lang: "C#" + source: | + PetStore.v1.Pet pet = new PetStore.v1.Pet(); + pet.setApiKey("your api key"); + pet.petType = PetStore.v1.Pet.TYPE_DOG; + pet.name = "Rex"; + // set other fields + PetStoreResponse response = pet.create(); + if (response.statusCode == HttpStatusCode.Created) + { + // Successfully created + } + else + { + // Something wrong -- check response for errors + Console.WriteLine(response.getRawResponse()); + } + - lang: PHP + source: | + $form = new \PetStore\Entities\Pet(); + $form->setPetType("Dog"); + $form->setName("Rex"); + // set other fields + try { + $pet = $client->pets()->create($form); + } catch (UnprocessableEntityException $e) { + var_dump($e->getErrors()); + } + put: + description: Order in Progress (Only Description) + servers: + - url: //callback-url.operation-level/v1 + description: Operation level server 1 (Operation override) + - url: //callback-url.operation-level/v2 + description: Operation level server 2 (Operation override) + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + example: "123" + timestamp: + type: string + format: date-time + example: "2018-10-19T16:46:45Z" + status: + type: string + example: "inProgress" + application/xml: + schema: + type: object + properties: + orderId: + type: string + example: "123" + example: | + + + 123 + inProgress + 2018-10-19T16:46:45Z + + responses: + "200": + description: Callback successfully processed and no retries will be performed + content: + application/json: + schema: + type: object + properties: + someProp: + type: string + example: "123" + orderShipped: + "{$request.body#/callbackUrl}?event={$request.body#/eventName}": + post: + description: A callback triggered every time an Order is shipped to the recipient + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + example: "123" + timestamp: + type: string + format: date-time + example: "2018-10-19T16:46:45Z" + estimatedDeliveryDate: + type: string + format: date-time + example: "2018-11-11T16:00:00Z" + responses: + "200": + description: Callback successfully processed and no retries will be performed + orderDelivered: + "http://notificationServer.com?url={$request.body#/callbackUrl}&event={$request.body#/eventName}": + post: + deprecated: true + summary: Order delivered + description: A callback triggered every time an Order is delivered to the recipient + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + example: "123" + timestamp: + type: string + format: date-time + example: "2018-10-19T16:46:45Z" + responses: + "200": + description: Callback successfully processed and no retries will be performed + /user: + post: + tags: + - user + summary: Create user + description: This can only be done by the logged in user. + operationId: createUser + responses: + default: + description: successful operation + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/User" + description: Created user object + required: true + "/user/{username}": + get: + tags: + - user + summary: Get user by user name + description: "" + operationId: getUserByName + parameters: + - name: username + in: path + description: "The name that needs to be fetched. Use user1 for testing. " + required: true + schema: + type: string + responses: + "200": + description: successful operation + content: + application/json: + schema: + $ref: "#/components/schemas/User" + application/xml: + schema: + $ref: "#/components/schemas/User" + "400": + description: Invalid username supplied + "404": + description: User not found + put: + tags: + - user + summary: Updated user + description: This can only be done by the logged in user. + operationId: updateUser + parameters: + - name: username + in: path + description: name that need to be deleted + required: true + schema: + type: string + responses: + "400": + description: Invalid user supplied + "404": + description: User not found + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/User" + description: Updated user object + required: true + delete: + tags: + - user + summary: Delete user + description: This can only be done by the logged in user. + operationId: deleteUser + parameters: + - name: username + in: path + description: The name that needs to be deleted + required: true + schema: + type: string + responses: + "400": + description: Invalid username supplied + "404": + description: User not found + /user/createWithArray: + post: + tags: + - user + summary: Creates list of users with given input array + description: "" + operationId: createUsersWithArrayInput + responses: + default: + description: successful operation + requestBody: + $ref: "#/components/requestBodies/UserArray" + /user/createWithList: + post: + tags: + - user + summary: Creates list of users with given input list + description: "" + operationId: createUsersWithListInput + responses: + default: + description: successful operation + requestBody: + $ref: "#/components/requestBodies/UserArray" + /user/login: + get: + tags: + - user + summary: Logs user into the system + description: "" + operationId: loginUser + parameters: + - name: username + in: query + description: The user name for login + required: true + schema: + type: string + - name: password + in: query + description: The password for login in clear text + required: true + schema: + type: string + responses: + "200": + description: successful operation + headers: + X-Rate-Limit: + description: calls per hour allowed by the user + schema: + type: integer + format: int32 + X-Expires-After: + description: date in UTC when token expires + schema: + type: string + format: date-time + content: + application/json: + schema: + type: string + examples: + response: + value: OK + application/xml: + schema: + type: string + examples: + response: + value: OK + text/plain: + examples: + response: + value: OK + "400": + description: Invalid username/password supplied + /user/logout: + get: + tags: + - user + summary: Logs out current logged in user session + description: "" + operationId: logoutUser + responses: + default: + description: successful operation +components: + schemas: + ApiResponse: + type: object + properties: + code: + type: integer + format: int32 + type: + type: string + message: + type: string + Cat: + x-tags: + - pet + description: A representation of a cat + allOf: + - $ref: "#/components/schemas/Pet" + - type: object + properties: + huntingSkill: + type: string + description: The measured skill for hunting + default: lazy + example: adventurous + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - huntingSkill + Category: + type: object + properties: + id: + description: Category ID + allOf: + - $ref: "#/components/schemas/Id" + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + type: string + description: Dumb Property + xml: + name: Category + Dog: + description: A representation of a dog + allOf: + - $ref: "#/components/schemas/Pet" + - type: object + properties: + packSize: + type: integer + format: int32 + description: The size of the pack the dog is from + default: 1 + minimum: 1 + required: + - packSize + HoneyBee: + description: A representation of a honey bee + allOf: + - $ref: "#/components/schemas/Pet" + - type: object + properties: + honeyPerDay: + type: number + description: Average amount of honey produced per day in ounces + example: 3.14 + multipleOf: .01 + default: 0 + required: + - honeyPerDay + Id: + type: integer + format: int64 + readOnly: true + Order: + type: object + properties: + id: + description: Order ID + allOf: + - $ref: "#/components/schemas/Id" + petId: + description: Pet ID + allOf: + - $ref: "#/components/schemas/Id" + quantity: + type: integer + format: int32 + minimum: 1 + default: 1 + shipDate: + description: Estimated ship date + type: string + format: date-time + status: + type: string + description: Order Status + enum: + - placed + - approved + - delivered + complete: + description: Indicates whenever order was completed or not + type: boolean + default: false + readOnly: true + requestId: + description: Unique Request Id + type: string + writeOnly: true + xml: + name: Order + Pet: + type: object + required: + - name + - photoUrls + - tags + discriminator: + propertyName: petType + mapping: + cat: "#/components/schemas/Cat" + dog: "#/components/schemas/Dog" + bee: "#/components/schemas/HoneyBee" + properties: + id: + externalDocs: + description: "Find more info here" + url: "https://example.com" + description: Pet ID + allOf: + - $ref: "#/components/schemas/Id" + category: + description: Categories this pet belongs to + allOf: + - $ref: "#/components/schemas/Category" + name: + description: The name given to a pet + type: string + example: Guru + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + maxItems: 20 + xml: + name: photoUrl + wrapped: true + items: + type: string + format: url + friend: + allOf: + - $ref: "#/components/schemas/Pet" + tags: + description: Tags attached to the pet + type: array + minItems: 1 + xml: + name: tag + wrapped: true + items: + $ref: "#/components/schemas/Tag" + status: + type: string + description: Pet status in the store + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + oneOf: + - $ref: "#/components/schemas/Cat" + - $ref: "#/components/schemas/Dog" + - $ref: "#/components/schemas/HoneyBee" + xml: + name: Pet + Tag: + type: object + properties: + id: + description: Tag ID + allOf: + - $ref: "#/components/schemas/Id" + name: + description: Tag name + type: string + minLength: 1 + xml: + name: Tag + User: + type: object + properties: + id: + $ref: "#/components/schemas/Id" + pet: + oneOf: + - $ref: "#/components/schemas/Pet" + - $ref: "#/components/schemas/Tag" + username: + description: User supplied username + type: string + minLength: 4 + example: John78 + firstName: + description: User first name + type: string + minLength: 1 + example: John + lastName: + description: User last name + type: string + minLength: 1 + example: Smith + email: + description: User email address + type: string + format: email + example: john.smith@example.com + password: + type: string + description: >- + User password, MUST contain a mix of upper and lower case letters, + as well as digits + format: password + minLength: 8 + pattern: "/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/" + example: drowssaP123 + phone: + description: User phone number in international format + type: string + pattern: '/^\+(?:[0-9]-?){6,14}[0-9]$/' + example: +1-202-555-0192 + userStatus: + description: User status + type: integer + format: int32 + xml: + name: User + requestBodies: + Pet: + content: + application/json: + schema: + allOf: + - description: My Pet + title: Pettie + - $ref: "#/components/schemas/Pet" + example: + category: + name: Great Dane + sub: + prop1: Just a test property + name: Pepper + photoUrls: + - https://assets.orvis.com/is/image/orvisprd/great-dane + tags: + - name: Great Danes + status: pending + petType: + huntingSkill: lazy + application/xml: + schema: + type: "object" + properties: + name: + type: string + description: hooray + description: Pet object that needs to be added to the store + required: true + UserArray: + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/User" + description: List of user object + required: true + securitySchemes: + petstore_auth: + description: | + Get access to data while protecting your account credentials. + OAuth2 is also a safer and more secure way to give you access. + type: oauth2 + flows: + implicit: + authorizationUrl: "http://petstore.swagger.io/api/oauth/dialog" + scopes: + "write:pets": modify pets in your account + "read:pets": read your pets + api_key: + description: > + For this sample, you can use the api key `special-key` to test the + authorization filters. + type: apiKey + name: api_key + in: header + BasicAuth: + type: http + scheme: basic + BearerAuth: + type: http + scheme: bearer + ApiKeyAuth: + type: apiKey + in: header + name: X-API-Key + OpenID: + type: openIdConnect + openIdConnectUrl: https://example.com/.well-known/openid-configuration + OAuth2: + type: oauth2 + flows: + authorizationCode: + authorizationUrl: https://example.com/oauth/authorize + tokenUrl: https://example.com/oauth/token + scopes: + read: Grants read access + write: Grants write access + admin: Grants access to admin operations +x-webhooks: + newPet: + post: + summary: New pet + description: Information about a new pet in the systems + operationId: newPet + tags: + - pet + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/Pet" + responses: + "200": + description: Return a 200 status to indicate that the data was received successfully From e14e675b1a241f46ed30bf61f3409cc6d805a73c Mon Sep 17 00:00:00 2001 From: b-long Date: Wed, 11 Jun 2025 11:07:04 -0400 Subject: [PATCH 37/37] Fix preprocessing --- preprocessing.ts | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/preprocessing.ts b/preprocessing.ts index a1ecfc4..9bf87dc 100644 --- a/preprocessing.ts +++ b/preprocessing.ts @@ -115,18 +115,22 @@ const openApiSpecs: ApiSpecDefinition[] = [ // Add more entries here for other OpenAPI specs ]; -// Merge 'openApiSpecs' into 'finalConfiguration' -// Object.entries(openApiSpecs).forEach(([key, value]) => { -// finalConfiguration[key] = { -// ...(typeof value === "object" && value !== null ? value : {}), -// }; -// }); - // Merge 'finalConfiguration' into 'openApiSpecs' -Object.entries(finalConfiguration).forEach(([key, value]) => { - openApiSpecs[key] = { - ...(typeof value === "object" && value !== null ? value : {}), - }; +Object.entries(finalConfiguration).forEach(([id, specDetails]) => { + if (typeof specDetails === 'object' && specDetails !== null) { + // Ensure specDetails has all required fields of ApiSpecDefinition or cast appropriately + // The structure of OpenApiPlugin.Options (used in finalConfiguration) + // is similar enough to ApiSpecDefinition for this to work if 'id' is added. + const apiSpecDef: ApiSpecDefinition = { + id: id, + specPath: (specDetails as any).specPath, + outputDir: (specDetails as any).outputDir, + // specPathModified will be auto-generated if not present in specDetails + specPathModified: (specDetails as any).specPathModified, + sidebarOptions: (specDetails as any).sidebarOptions, + }; + openApiSpecs.push(apiSpecDef); + } }); /**