@redocly/realm 0.129.0 → 0.130.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/cli/eject/resolveEjectParams.js +1 -1
  3. package/dist/client/app/Sidebar/Sidebar.js +1 -1
  4. package/dist/client/app/Sidebar/helpers/filter-out-versioned-items.d.ts +23 -0
  5. package/dist/client/app/Sidebar/helpers/filter-out-versioned-items.js +1 -0
  6. package/dist/client/app/Sidebar/useSidebarItems.d.ts +2 -2
  7. package/dist/client/app/Sidebar/useSidebarItems.js +1 -1
  8. package/dist/client/app/hooks/codeHighlight/useCodeHighlight.js +1 -1
  9. package/dist/constants/l10n/langs/ar.js +1 -1
  10. package/dist/constants/l10n/langs/de.js +1 -1
  11. package/dist/constants/l10n/langs/en.js +1 -1
  12. package/dist/constants/l10n/langs/es.js +1 -1
  13. package/dist/constants/l10n/langs/fr.js +1 -1
  14. package/dist/constants/l10n/langs/hi.js +1 -1
  15. package/dist/constants/l10n/langs/it.js +1 -1
  16. package/dist/constants/l10n/langs/ja.js +1 -1
  17. package/dist/constants/l10n/langs/ko.js +1 -1
  18. package/dist/constants/l10n/langs/pl.js +1 -1
  19. package/dist/constants/l10n/langs/pt-BR.js +1 -1
  20. package/dist/constants/l10n/langs/pt.js +1 -1
  21. package/dist/constants/l10n/langs/ru.js +1 -1
  22. package/dist/constants/l10n/langs/uk.js +1 -1
  23. package/dist/constants/l10n/langs/zh.js +1 -1
  24. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-bff-repository.js +8 -8
  25. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-read-repository.js +6 -11
  26. package/dist/server/plugins/openapi-docs/decorators.d.ts +3 -0
  27. package/dist/server/plugins/openapi-docs/decorators.js +1 -1
  28. package/dist/server/providers/database/database-initialization-strategy.js +1 -1
  29. package/dist/server/providers/database/sqld-not-running-error.d.ts +5 -0
  30. package/dist/server/providers/database/sqld-not-running-error.js +1 -0
  31. package/package.json +10 -10
@@ -1 +1 @@
1
- const e={"dev.newApp":"\u65B0\u5E94\u7528\u7A0B\u5E8F","dev.newApp.text":"\u521B\u5EFA\u60A8\u7684\u7B2C\u4E00\u4E2A\u5E94\u7528\u7A0B\u5E8F","dev.sidebar.header":"\u6211\u7684\u5E94\u7528\u7A0B\u5E8F","dev.sidebar.footer.text":"\u65B0\u5E94\u7528\u7A0B\u5E8F","dev.create.app.dialog.appName.placeholder":"\u5E94\u7528\u7A0B\u5E8F\u540D\u79F0","dev.create.app.dialog.appName.error":"\u540D\u79F0\u5FC5\u987B\u4EE5\u5B57\u6BCD\u5F00\u5934\uFF0C\u5E76\u4E14\u53EA\u80FD\u5305\u542B\uFF1A\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u7A7A\u683C\u3001.\u3001_\u3001-\u3001$\u3001%\u3001#","dev.create.app.dialog.selectAPIs":"\u9009\u62E9 API","dev.create.app.dialog.description":"\u63CF\u8FF0","dev.create.app.dialog.description.placeholder":"\u7A7A","dev.create.app.dialog.create":"\u521B\u5EFA\u5E94\u7528\u7A0B\u5E8F","dev.create.app.dialog.cancel":"\u53D6\u6D88","dev.main.tab.appKeys":"API \u5BC6\u94A5","dev.main.tab.logs":"\u65E5\u5FD7","dev.app.description.title":"\u63CF\u8FF0","dev.edit.description.dialog.title":"\u66F4\u6539\u63CF\u8FF0","dev.edit.description.dialog.save":"\u4FDD\u5B58\u66F4\u6539","dev.edit.description.dialog.cancel":"\u53D6\u6D88","dev.edit.apis.dialog.selectedAPIs":"\u9009\u5B9A\u7684 API","dev.app.key.create":"\u521B\u5EFA\u5BC6\u94A5","dev.create.key.dialog.title":"\u521B\u5EFA\u5BC6\u94A5","dev.create.key.dialog.create":"\u521B\u5EFA\u5BC6\u94A5","dev.create.key.dialog.cancel":"\u53D6\u6D88","dev.app.edit":"\u7F16\u8F91","dev.app.delete":"\u5220\u9664","dev.edit.app.dialog.title":"\u66F4\u6539\u663E\u793A\u540D\u79F0","dev.edit.app.dialog.save":"\u4FDD\u5B58\u66F4\u6539","dev.edit.app.dialog.cancel":"\u53D6\u6D88","dev.delete.app.dialog.title":"\u5220\u9664\u5E94\u7528\u7A0B\u5E8F","dev.delete.app.dialog.confirmation":"\u60A8\u786E\u5B9A\u8981\u5220\u9664\u6B64\u5E94\u7528\u7A0B\u5E8F\u5417\uFF1F","dev.delete.app.dialog.delete":"\u5220\u9664\u5E94\u7528\u7A0B\u5E8F","dev.delete.app.dialog.cancel":"\u53D6\u6D88","dev.app.key.roll":"\u8F6E\u6362 API \u5BC6\u94A5","dev.roll.key.dialog.title":"\u8F6E\u6362 API \u5BC6\u94A5","dev.roll.key.dialog.apiKey":"API key","dev.roll.key.dialog.expires":"\u5230\u671F","dev.roll.key.dialog.confirmation":"\u60A8\u786E\u5B9A\u8981\u8F6E\u6362\u6B64 API \u5BC6\u94A5\u5417\uFF1F","dev.roll.key.dialog.cancel":"\u53D6\u6D88","dev.roll.key.dialog.roll":"\u8F6E\u6362 API \u5BC6\u94A5","dev.update.key.dialog.title":"\u66F4\u65B0\u5BC6\u94A5","dev.update.key.dialog.update":"\u66F4\u65B0\u5BC6\u94A5","dev.update.key.dialog.cancel":"\u53D6\u6D88","dev.app.key.api.name":"API \u540D\u79F0","dev.app.key.api.status":"\u72B6\u6001","dev.app.key.api.edit":"\u7F16\u8F91 API","dev.edit.apis.dialog.title":"\u7F16\u8F91 API","dev.edit.apis.dialog.apiKey":"API key","dev.edit.apis.dialog.save":"\u4FDD\u5B58","dev.edit.apis.dialog.cancel":"\u53D6\u6D88","dev.select.placeholder":"\u7A7A","dev.app.overview.status.pending":"\u5F85\u5904\u7406","dev.app.overview.status.approved":"\u5DF2\u6279\u51C6","dev.app.overview.status.revoked":"\u5DF2\u64A4\u9500","dev.app.overview.status":"\u72B6\u6001","dev.app.overview.non-production":"\u6D4B\u8BD5","dev.app.overview.production":"\u751F\u4EA7","dev.app.overview.clientId":"\u5BC6\u94A5","dev.app.overview.apiKey":"API key","dev.app.key.revoke":"\u64A4\u9500 API \u5BC6\u94A5","dev.revoke.key.dialog.title":"\u64A4\u9500 API \u5BC6\u94A5","dev.revoke.key.dialog.apiKey":"API key","dev.revoke.key.dialog.expires":"\u5230\u671F","dev.revoke.key.dialog.confirmation":"\u60A8\u786E\u5B9A\u8981\u64A4\u9500\u6B64 API \u5BC6\u94A5\u5417\uFF1F","dev.revoke.key.dialog.revoke":"\u64A4\u9500 API \u5BC6\u94A5","dev.revoke.key.dialog.cancel":"\u53D6\u6D88","dev.app.overview.expires":"\u5230\u671F","dev.app.overview.created":"\u5DF2\u521B\u5EFA","dev.app.overview.visibilityToggle.hide":"\u9690\u85CF","dev.app.overview.visibilityToggle.show":"\u663E\u793A","search.loading":"\u52A0\u8F7D\u4E2D...","search.noResults.title":"\u65E0\u7ED3\u679C","search.keys.navigate":"\u5BFC\u822A","search.keys.select":"\u9009\u62E9","search.keys.exit":"\u9000\u51FA","search.searchItem.deprecated":"\u5DF2\u5F03\u7528","search.label":"\u641C\u7D22\u6587\u6863...","search.cancel":"\u53D6\u6D88","search.recent":"\u6700\u8FD1\u641C\u7D22","search.navbar.label":"\u641C\u7D22","search.suggested":"\u5EFA\u8BAE\u9875\u9762","search.groups.all":"\u5168\u90E8","search.showMore":"\u663E\u793A\u66F4\u591A","search.filter.title":"\u9AD8\u7EA7\u7B5B\u9009","search.filter.reset":"\u91CD\u7F6E\u7B5B\u9009","search.filter.field.reset":"\u91CD\u7F6E","search.filter.field.footer":"\u641C\u7D22\u4EE5\u663E\u793A\u66F4\u591A\u9879\u76EE...","search.ai.newConversation":"\u65B0\u5BF9\u8BDD","search.ai.welcomeText":"\u6B22\u8FCE\u4F7F\u7528 AI \u641C\u7D22\uFF01\u60A8\u53EF\u4EE5\u95EE\u6211\u4EFB\u4F55\u95EE\u9898\u3002\u6211\u80FD\u4E3A\u60A8\u63D0\u4F9B\u4EC0\u4E48\u5E2E\u52A9\uFF1F","search.ai.placeholder":"\u63D0\u95EE...","search.ai.back":"\u8FD4\u56DE","search.ai.generatingResponse":"\u6B63\u5728\u751F\u6210\u56DE\u590D...","search.ai.followUpQuestion":"\u63D0\u51FA\u540E\u7EED\u95EE\u9898\uFF1F","search.ai.suggestionsTitle":"\u5EFA\u8BAE","search.ai.thinkingText":"\u601D\u8003\u4E2D...","search.ai.resourcesFound":"\u627E\u5230\u8D44\u6E90","search.ai.resourcesFound.basedOn":"\u57FA\u4E8E","search.ai.resourcesFound.resources":"\u8D44\u6E90","search.ai.feedback.title":"\u60A8\u4E0D\u559C\u6B22\u6B64\u56DE\u590D\u7684\u54EA\u4E9B\u65B9\u9762\uFF1F","search.ai.feedback.detailsPlaceholder":"\u6DFB\u52A0\u5177\u4F53\u7EC6\u8282","search.ai.feedback.thanks":"\u611F\u8C22\u60A8\u7684\u53CD\u9988\uFF01","search.ai.feedback.more":"\u66F4\u591A...","search.ai.label":"\u8BE2\u95EE AI \u52A9\u624B","search.ai.button":"\u4F7F\u7528 AI \u641C\u7D22","search.ai.backToSearch":"\u8FD4\u56DE\u641C\u7D22","search.ai.disclaimer":"AI \u641C\u7D22\u53EF\u80FD\u63D0\u4F9B\u4E0D\u5B8C\u6574\u6216\u4E0D\u6B63\u786E\u7684\u7ED3\u679C\u3002\u8BF7\u6838\u5B9E\u91CD\u8981\u4FE1\u606F\u3002","search.ai.error.description":"\u6211\u4EEC\u5728\u5904\u7406\u60A8\u7684\u641C\u7D22\u65F6\u9047\u5230\u95EE\u9898\u3002\u8BF7\u7A0D\u540E\u518D\u8BD5\u6216\u4F18\u5316\u60A8\u7684\u67E5\u8BE2\u3002\u5982\u679C\u95EE\u9898\u4ECD\u7136\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB Redocly \u652F\u6301\u3002","search.ai.error.description.forbidden":"AI \u641C\u7D22\u5F53\u524D\u4E0D\u53EF\u7528\u3002","search.ai.error.description.unauthorized":"\u60A8\u65E0\u6743\u4F7F\u7528 AI \u641C\u7D22\u3002","search.ai.error.header":"\u54CE\u5440\uFF01\u51FA\u9519\u4E86\u3002","search.ai.error.header.forbidden":"\u529F\u80FD\u4E0D\u53EF\u7528","search.ai.error.header.unauthorized":"\u9700\u8981\u8EAB\u4EFD\u9A8C\u8BC1","aiAssistant.trigger":"\u8BE2\u95EE AI","toc.header":"\u5728\u672C\u9875","footer.copyrightText":"","page.homeButton":"\u8FD4\u56DE\u9996\u9875","page.forbidden.title":"\u7981\u6B62\u8BBF\u95EE","page.notFound.title":"\u5185\u5BB9\u4E22\u5931\u4E86...","page.notFound.description":"\u60A8\u5C1D\u8BD5\u8BBF\u95EE\u7684\u9875\u9762\u4E0D\u5B58\u5728\u6216\u53EF\u80FD\u5DF2\u88AB\u79FB\u52A8\u3002\u60A8\u53EF\u4EE5\u8FD4\u56DE\u4E0A\u4E00\u9875\u3001\u8FD4\u56DE\u9996\u9875\u6216\u4F7F\u7528\u641C\u7D22\u680F\u67E5\u627E\u6240\u9700\u5185\u5BB9\u3002","page.lastUpdated.timeago":"\u6700\u540E\u66F4\u65B0\u4E8E","page.lastUpdated.on":"\u6700\u540E\u66F4\u65B0\u4E8E","catalog.filters.title":"\u7B5B\u9009\u5668","catalog.filters.add":"\u6DFB\u52A0\u7B5B\u9009\u5668","catalog.filters.placeholder":"\u8F93\u5165\u4EE5\u7B5B\u9009...","catalog.filters.clearAll":"\u6E05\u9664\u6240\u6709\u7B5B\u9009\u5668","catalog.filters.select.addFilter":"\u6DFB\u52A0\u7B5B\u9009\u5668","catalog.filters.select.all":"\u5168\u90E8","catalog.filters.done":"\u5B8C\u6210","filter.dateRange.from":"\u4ECE:","filter.dateRange.to":"\u5230:","sidebar.menu.backLabel":"\u8FD4\u56DE","sidebar.menu.backToLabel":"\u8FD4\u56DE {{value}}","sidebar.actions.show":"\u663E\u793A\u4FA7\u8FB9\u680F","sidebar.actions.hide":"\u9690\u85CF\u4FA7\u8FB9\u680F","sidebar.actions.changeToSingleColumn":"\u5207\u6362\u5230\u5355\u5217","sidebar.actions.changeToTwoColumns":"\u5207\u6362\u5230\u53CC\u5217","sidebar.actions.singleColumn":"\u5355\u5217","sidebar.actions.twoColumns":"\u4E24\u5217","versionPicker.label":"\u7248\u672C\uFF1A","versionPicker.unversioned":"\u6240\u6709\u7248\u672C","codeSnippet.copy.buttonText":"\u5DF2\u590D\u5236\uFF01","codeSnippet.copy.tooltipText":"\u590D\u5236\u5230\u526A\u8D34\u677F","codeSnippet.copy.toasterText":"\u590D\u5236","codeSnippet.expand.tooltipText":"\u5168\u90E8\u5C55\u5F00","codeSnippet.collapse.tooltipText":"\u5168\u90E8\u6298\u53E0","markdown.editPage.text":"\u7F16\u8F91","feedback.settings.comment.submitText":"\u611F\u8C22\u60A8\u5E2E\u52A9\u6539\u8FDB\u6211\u4EEC\u7684\u6587\u6863\uFF01","feedback.settings.comment.label":"\u8BF7\u4E0E\u6211\u4EEC\u5206\u4EAB\u60A8\u7684\u53CD\u9988\u3002","feedback.settings.comment.send":"\u53D1\u9001","feedback.settings.comment.cancel":"\u53D6\u6D88","feedback.settings.comment.satisfiedLabel":"\u6700\u6709\u5E2E\u52A9\u7684\u662F\u4EC0\u4E48\uFF1F","feedback.settings.comment.neutralLabel":"\u6211\u4EEC\u53EF\u4EE5\u6539\u8FDB\u4EC0\u4E48\uFF1F","feedback.settings.comment.dissatisfiedLabel":"\u6211\u4EEC\u53EF\u4EE5\u6539\u8FDB\u4EC0\u4E48\uFF1F","feedback.settings.submitText":"\u611F\u8C22\u60A8\u7684\u53CD\u9988\uFF01","feedback.settings.label":"\u8FD9\u6709\u5E2E\u52A9\u5417\uFF1F","feedback.settings.reasons.label":"\u54EA\u9879\u9648\u8FF0\u63CF\u8FF0\u4E86\u60A8\u5BF9\u6B64\u9875\u9762\u7684\u770B\u6CD5\uFF1F","feedback.submit":"\u63D0\u4EA4","feedback.cancel":"\u53D6\u6D88","feedback.settings.comment.likeLabel":"\u6700\u6709\u5E2E\u52A9\u7684\u662F\u4EC0\u4E48\uFF1F","feedback.settings.comment.dislikeLabel":"\u6211\u4EEC\u53EF\u4EE5\u6539\u8FDB\u4EC0\u4E48\uFF1F","feedback.sentiment.thumbUp":"\u8D5E","feedback.sentiment.thumbDown":"\u8E29","feedback.settings.leftScaleLabel":"\u5B8C\u5168\u6CA1\u6709\u5E2E\u52A9","feedback.settings.rightScaleLabel":"\u975E\u5E38\u6709\u5E2E\u52A9","feedback.settings.optionalEmail.label":"\u60A8\u7684\u7535\u5B50\u90AE\u4EF6\uFF08\u53EF\u9009\uFF0C\u7528\u4E8E\u8DDF\u8FDB\uFF09","feedback.settings.optionalEmail.placeholder":"yourname@example.com","codeSnippet.report.buttonText":"\u62A5\u544A","codeSnippet.report.tooltipText":"\u62A5\u544A\u95EE\u9898","codeSnippet.report.label":"\u6B64\u4EE3\u7801\u6709\u4EC0\u4E48\u95EE\u9898\uFF1F","userMenu.login":"\u767B\u5F55","userMenu.logout":"\u6CE8\u9500","userMenu.devOnboardingLabel":"\u6211\u7684\u5E94\u7528\u7A0B\u5E8F","mobileMenu.mainMenu":"\u4E3B\u83DC\u5355","mobileMenu.previous":"\u4E0A\u4E00\u6B65","mobileMenu.products":"\u4EA7\u54C1","mobileMenu.version":"\u7248\u672C","page.nextButton":"\u4E0B\u4E00\u9875","page.previousButton":"\u4E0A\u4E00\u9875","page.actions.copyButtonText":"\u590D\u5236","page.actions.copyTitle":"\u4E3A LLM \u590D\u5236","page.actions.copyDescription":"\u5C06\u9875\u9762\u590D\u5236\u4E3A LLM \u7684 Markdown \u683C\u5F0F","page.actions.viewAsMdButtonText":"\u67E5\u770B Markdown","page.actions.viewAsMdTitle":"\u67E5\u770B Markdown","page.actions.viewAsMdDescription":"\u4EE5 Markdown \u683C\u5F0F\u6253\u5F00\u6B64\u9875\u9762","page.actions.chatGptButtonText":"\u5728 ChatGPT \u4E2D\u6253\u5F00","page.actions.chatGptTitle":"\u5728 ChatGPT \u4E2D\u6253\u5F00","page.actions.chatGptDescription":"\u4ECE ChatGPT \u83B7\u53D6\u89C1\u89E3","page.actions.claudeButtonText":"\u5728 Claude \u4E2D\u6253\u5F00","page.actions.claudeTitle":"\u5728 Claude \u4E2D\u6253\u5F00","page.actions.claudeDescription":"\u4ECE Claude \u83B7\u53D6\u89C1\u89E3","page.actions.cursorMcpButtonText":"\u8FDE\u63A5\u5230 Cursor","page.actions.cursorMcpTitle":"\u8FDE\u63A5\u5230 Cursor","page.actions.cursorMcpDescription":"\u5728 Cursor \u4E0A\u5B89\u88C5 MCP \u670D\u52A1\u5668","page.actions.connectMcp":"\u8FDE\u63A5 MCP","page.actions.connectMcp.cursor":"\u8FDE\u63A5\u5230 Cursor","page.actions.connectMcp.cursorDescription":"\u5728 Cursor \u4E0A\u5B89\u88C5 MCP \u670D\u52A1\u5668","page.actions.connectMcp.vscode":"\u8FDE\u63A5\u5230 VS Code","page.actions.connectMcp.vscodeDescription":"\u5728 VS Code \u4E0A\u5B89\u88C5 MCP \u670D\u52A1\u5668","page.actions.connectMcp.copyConfig":"\u590D\u5236 MCP \u914D\u7F6E","page.actions.connectMcp.copyConfigDescription":"\u590D\u5236 MCP JSON \u914D\u7F6E","navbar.products":"\u4EA7\u54C1","openapi.download.description.title":"\u4E0B\u8F7D OpenAPI \u63CF\u8FF0","openapi.info.title":"\u6982\u8FF0","openapi.info.contact.url":"URL","openapi.info.contact.name":"\u7535\u5B50\u90AE\u4EF6","openapi.info.license":"\u8BB8\u53EF\u8BC1","openapi.info.termsOfService":"\u670D\u52A1\u6761\u6B3E","openapi.info.metadata.title":"\u5143\u6570\u636E","openapi.key":"\u952E","openapi.value":"\u503C","openapi.enum":"\u679A\u4E3E","openapi.items":"\u9879","openapi.default":"\u9ED8\u8BA4\u503C","openapi.variable":"\u53D8\u91CF","openapi.variables":"\u53D8\u91CF","openapi.actions.show":"\u663E\u793A","openapi.actions.hide":"\u9690\u85CF","openapi.actions.more":"\u66F4\u591A","openapi.languages.title":"\u8BED\u8A00","openapi.servers.title":"\u670D\u52A1\u5668","openapi.operations":"\u64CD\u4F5C","openapi.webhooks":"Webhook","openapi.description":"\u63CF\u8FF0","openapi.badges.deprecated":"\u5DF2\u5F03\u7528","openapi.badges.required":"\u5FC5\u9700","openapi.badges.webhook":"Webhook","openapi.request":"\u8BF7\u6C42","openapi.path":"\u8DEF\u5F84","openapi.query":"\u67E5\u8BE2","openapi.cookie":"Cookie","openapi.header":"\u6807\u5934","openapi.body":"\u6B63\u6587","openapi.responses":"\u54CD\u5E94","openapi.response":"\u54CD\u5E94","openapi.callbacks":"\u56DE\u8C03","openapi.callbackRequest":"\u56DE\u8C03\u8BF7\u6C42","openapi.callbackResponse":"\u56DE\u8C03\u54CD\u5E94","openapi.payload":"\u8BF7\u6C42\u4F53","openapi.discriminator":"\u9274\u522B\u5668","openapi.contentType":"\u5185\u5BB9\u7C7B\u578B","openapi.tryIt":"\u8BD5\u7528","openapi.loading":"\u52A0\u8F7D\u4E2D...","openapi.example":"\u793A\u4F8B","openapi.examples":"\u793A\u4F8B","openapi.additionalProperties":"\u9644\u52A0\u5C5E\u6027","openapi.patternProperties":"\u6A21\u5F0F\u5C5E\u6027","openapi.required":"\u5FC5\u9700","openapi.recursive":"\u9012\u5F52","openapi.complex":"\u590D\u6742","openapi.hideExample":"\u9690\u85CF\u793A\u4F8B","openapi.showExample":"\u663E\u793A\u793A\u4F8B","openapi.expandAll":"\u5168\u90E8\u5C55\u5F00","openapi.collapseAll":"\u5168\u90E8\u6298\u53E0","openapi.viewSecurityDetails":"\u67E5\u770B\u5B89\u5168\u8BE6\u60C5","openapi.noResponseExample":"\u65E0\u54CD\u5E94\u793A\u4F8B","openapi.discriminator.searchPlaceholder":"\u641C\u7D22\u9879\u76EE","openapi.discriminator.searchNoResults":"\u672A\u627E\u5230\u9879\u76EE","openapi.discriminator.defaultMapping":"\u9ED8\u8BA4\u6620\u5C04","openapi.discriminator.defaultMappingTooltip":"OpenAPI 3.2\uFF1A\u5F53\u5176\u4ED6\u6620\u5C04\u4E0D\u5339\u914D\u65F6\u4F7F\u7528\u9ED8\u8BA4\u6620\u5C04\u3002","openapi.noResponseContent":"\u65E0\u5185\u5BB9","openapi.noRequestPayload":"\u65E0\u8BF7\u6C42\u6709\u6548\u8D1F\u8F7D","openapi.hidePattern":"\u9690\u85CF\u6A21\u5F0F","openapi.showPattern":"\u663E\u793A\u6A21\u5F0F","openapi.authorizationUrl":"\u6388\u6743 URL","openapi.tokenUrl":"\u4EE4\u724C URL","openapi.refreshUrl":"\u5237\u65B0 URL","openapi.showOptionalScopes":"\u663E\u793A\u53EF\u9009\u8303\u56F4","openapi.hideOptionalScopes":"\u9690\u85CF\u53EF\u9009\u8303\u56F4","openapi.security":"\u5B89\u5168","openapi.httpAuthorizationScheme":"HTTP \u6388\u6743\u65B9\u6848","openapi.bearerFormat":"Bearer \u683C\u5F0F","openapi.parameterName":"\u53C2\u6570\u540D\u79F0","openapi.flowType":"\u6D41\u7C7B\u578B","openapi.connectUrl":"\u8FDE\u63A5 URL","openapi.requiredScopes":"\u5FC5\u9700\u8303\u56F4","openapi.unsupportedLanguage":"\u4E0D\u652F\u6301\u8BE5\u8BED\u8A00\u3002","openapi.failedToGenerateCodeSample":"\u65E0\u6CD5\u751F\u6210\u4EE3\u7801\u793A\u4F8B\u3002","openapi.schemaCatalogLink.title":"\u5171\u4EAB\u67B6\u6784","openapi.schemaCatalogLink.copyButtonTooltip":"\u590D\u5236\u5230\u526A\u8D34\u677F","openapi.schemaCatalogLink.copiedTooltip":"\u5DF2\u590D\u5236\uFF01","openapi.mcp.title":"MCP server","openapi.mcp.endpoint":"Endpoint","openapi.mcp.tools":"MCP \u5DE5\u5177","openapi.mcp.protocolVersion":"\u534F\u8BAE\u7248\u672C","openapi.mcp.capabilities":"\u80FD\u529B","openapi.mcp.experimentalCapabilities":"\u5B9E\u9A8C\u6027\u80FD\u529B","openapi.mcp.inputSchema":"\u8F93\u5165\u67B6\u6784","openapi.mcp.inputExample":"\u8F93\u5165\u793A\u4F8B","openapi.mcp.outputSchema":"\u8F93\u51FA\u67B6\u6784","openapi.mcp.outputExample":"\u8F93\u51FA\u793A\u4F8B","asyncapi.download.description.title":"\u4E0B\u8F7D AsyncAPI \u63CF\u8FF0","asyncapi.info.title":"\u6982\u8FF0","graphql.download.description.title":"\u4E0B\u8F7D GraphQL \u67B6\u6784","graphql.info.title":"\u6982\u8FF0","graphql.info.contact.url":"URL","graphql.info.contact.name":"\u7535\u5B50\u90AE\u4EF6","graphql.info.license":"\u8BB8\u53EF\u8BC1","graphql.info.termsOfService":"\u670D\u52A1\u6761\u6B3E","graphql.overview":"GraphQL \u6982\u8FF0","graphql.metadata":"\u5143\u6570\u636E","graphql.key":"\u952E","graphql.value":"\u503C","graphql.queries":"\u67E5\u8BE2","graphql.mutations":"\u53D8\u66F4","graphql.subscriptions":"\u8BA2\u9605","graphql.directives":"\u6307\u4EE4","graphql.objects":"\u5BF9\u8C61","graphql.interfaces":"\u63A5\u53E3","graphql.unions":"\u8054\u5408","graphql.enums":"\u679A\u4E3E","graphql.inputs":"\u8F93\u5165","graphql.scalars":"\u6807\u91CF","graphql.arguments.label":"\u53C2\u6570","graphql.arguments.show":"\u663E\u793A\u53C2\u6570","graphql.arguments.hide":"\u9690\u85CF\u53C2\u6570","graphql.arguments.here":"\u53C2\u6570\u5728\u6B64","graphql.returnTypes.label":"\u7ED3\u679C\u7C7B\u578B","graphql.returnTypes.show":"\u663E\u793A\u7ED3\u679C\u7C7B\u578B","graphql.returnTypes.hide":"\u9690\u85CF\u7ED3\u679C\u7C7B\u578B","graphql.possibleTypes":"\u53EF\u80FD\u7684\u7C7B\u578B","graphql.defaultValue":"\u9ED8\u8BA4\u503C","graphql.deprecationReason":"\u5F03\u7528\u539F\u56E0","graphql.requiredScopes":"\u5FC5\u9700\u8303\u56F4","graphql.viewSecurityDetails":"\u67E5\u770B\u8BE6\u7EC6\u4FE1\u606F","graphql.objectScopes":"\u5BF9\u8C61\u8303\u56F4","graphql.fieldScopes":"\u5B57\u6BB5\u8303\u56F4","graphql.implementedInterfaces":"\u5B9E\u73B0\u7684\u63A5\u53E3","graphql.nonNull":"\u975E\u7A7A","graphql.required":"\u5FC5\u9700","graphql.deprecated":"\u5DF2\u5F03\u7528","graphql.variables":"\u53D8\u91CF","graphql.querySample":"\u67E5\u8BE2\u793A\u4F8B","graphql.mutationSample":"\u53D8\u66F4\u793A\u4F8B","graphql.subscriptionSample":"\u8BA2\u9605\u793A\u4F8B","graphql.responseSample":"\u54CD\u5E94\u793A\u4F8B","graphql.locations":"\u4F4D\u7F6E","graphql.sample":"\u793A\u4F8B","graphql.referenced":"\u5F15\u7528\u4F4D\u7F6E","graphql.content.fragment":"\u7247\u6BB5","codeWalkthrough.preview":"\u9884\u89C8","codeWalkthrough.download":"\u4E0B\u8F7D","time.justNow":"\u521A\u624D","time.past.second":"1 \u79D2\u524D","time.past.seconds":"{{value}} \u79D2\u524D","time.past.minute":"1 \u5206\u949F\u524D","time.past.minutes":"{{value}} \u5206\u949F\u524D","time.past.hour":"1 \u5C0F\u65F6\u524D","time.past.hours":"{{value}} \u5C0F\u65F6\u524D","time.past.day":"1 \u5929\u524D","time.past.days":"{{value}} \u5929\u524D","time.past.week":"1 \u5468\u524D","time.past.weeks":"{{value}} \u5468\u524D","time.past.month":"1 \u4E2A\u6708\u524D","time.past.months":"{{value}} \u4E2A\u6708\u524D","time.past.year":"1 \u5E74\u524D","time.past.years":"{{value}} \u5E74\u524D","page.internalServerError.title":"\u5185\u90E8\u670D\u52A1\u5668\u9519\u8BEF","page.internalServerError.description":"\u6211\u4EEC\u7684\u670D\u52A1\u5668\u51FA\u9519\u4E86\u3002\u8BF7\u7A0D\u540E\u518D\u8BD5\uFF0C\u5982\u679C\u95EE\u9898\u4ECD\u7136\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u652F\u6301\u4EBA\u5458\u3002","page.skipToContent.label":"\u8DF3\u8F6C\u5230\u5185\u5BB9","catalog.catalogs.label":"\u76EE\u5F55","catalog.catalogs.all.title":"\u5168\u90E8","catalog.catalogs.all.description":"\u6240\u6709\u5B9E\u4F53","catalog.catalogs.all.switcherLabel":"\u5168\u90E8","catalog.catalogs.service.title":"\u670D\u52A1","catalog.catalogs.service.description":"\u670D\u52A1\u5B9E\u4F53","catalog.catalogs.service.switcherLabel":"\u670D\u52A1","catalog.catalogs.user.title":"\u7528\u6237","catalog.catalogs.user.description":"\u7528\u6237\u5B9E\u4F53","catalog.catalogs.user.switcherLabel":"\u7528\u6237","catalog.catalogs.team.title":"\u56E2\u961F","catalog.catalogs.team.description":"\u56E2\u961F\u5B9E\u4F53","catalog.catalogs.team.switcherLabel":"\u56E2\u961F","catalog.catalogs.domain.title":"\u57DF","catalog.catalogs.domain.description":"\u57DF\u5B9E\u4F53","catalog.catalogs.domain.switcherLabel":"\u57DF","catalog.catalogs.apiDescription.title":"API \u63CF\u8FF0","catalog.catalogs.apiDescription.description":"API \u63CF\u8FF0\u5B9E\u4F53","catalog.catalogs.apiDescription.switcherLabel":"API \u63CF\u8FF0","catalog.catalogs.dataSchema.title":"\u6570\u636E\u6A21\u5F0F","catalog.catalogs.dataSchema.description":"\u6570\u636E\u6A21\u5F0F\u5B9E\u4F53","catalog.catalogs.dataSchema.switcherLabel":"\u6570\u636E\u6A21\u5F0F","catalog.catalogs.apiOperation.title":"API \u64CD\u4F5C","catalog.catalogs.apiOperation.description":"API \u64CD\u4F5C\u5B9E\u4F53","catalog.catalogs.apiOperation.switcherLabel":"API \u64CD\u4F5C","catalog.entity.metadata.title":"\u5143\u6570\u636E","catalog.entity.schema.title":"\u6A21\u5F0F","catalog.entity.properties.apiDescription.title":"API \u63CF\u8FF0","catalog.backToAllLabel":"\u76EE\u5F55","catalog.tags.label":"\u6807\u7B7E","catalog.tags.more":"\u66F4\u591A","catalog.owners.label":"\u6240\u6709\u8005","catalog.repositories.label":"\u4ED3\u5E93","catalog.email.label":"\u7535\u5B50\u90AE\u4EF6","catalog.format.label":"\u683C\u5F0F","catalog.entityType.label":"\u5B9E\u4F53\u7C7B\u578B","catalog.domains.label":"\u57DF","catalog.contact.label":"Slack \u9891\u9053","catalog.methodAndPath.label":"\u65B9\u6CD5\u548C\u8DEF\u5F84","catalog.links.label":"\u94FE\u63A5","catalog.metadata.domains":"\u57DF:","catalog.metadata.owners":"\u6240\u6709\u8005:","catalog.sort":"\u6392\u5E8F","catalog.history.button.label":"\u7248\u672C\u5386\u53F2","catalog.history.sidebar.title":"\u7248\u672C\u5386\u53F2","catalog.history.sidebar.close":"\u5173\u95ED\u7248\u672C\u5386\u53F2","catalog.history.version.label":"\u7248\u672C","catalog.history.version.notSpecified":"\u672A\u6307\u5B9A","catalog.history.version.default":"\u9ED8\u8BA4","catalog.history.revisions.limitMessage":"\u4E0D\u5B58\u50A8\u8F83\u65E7\u7684\u4FEE\u8BA2\u7248\u672C\u3002","catalog.history.revision.current":"\u5F53\u524D","catalog.history.revisions.showLess":"\u663E\u793A\u66F4\u5C11","catalog.history.revisions.showMore":"\u663E\u793A\u66F4\u591A{{count}}\u9879","select.noResults":"\u65E0\u7ED3\u679C","loaders.loading":"\u52A0\u8F7D\u4E2D..."};export{e as zh};
1
+ const e={"dev.newApp":"\u65B0\u5E94\u7528\u7A0B\u5E8F","dev.newApp.text":"\u521B\u5EFA\u60A8\u7684\u7B2C\u4E00\u4E2A\u5E94\u7528\u7A0B\u5E8F","dev.sidebar.header":"\u6211\u7684\u5E94\u7528\u7A0B\u5E8F","dev.sidebar.footer.text":"\u65B0\u5E94\u7528\u7A0B\u5E8F","dev.create.app.dialog.appName.placeholder":"\u5E94\u7528\u7A0B\u5E8F\u540D\u79F0","dev.create.app.dialog.appName.error":"\u540D\u79F0\u5FC5\u987B\u4EE5\u5B57\u6BCD\u5F00\u5934\uFF0C\u5E76\u4E14\u53EA\u80FD\u5305\u542B\uFF1A\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u7A7A\u683C\u3001.\u3001_\u3001-\u3001$\u3001%\u3001#","dev.create.app.dialog.selectAPIs":"\u9009\u62E9 API","dev.create.app.dialog.description":"\u63CF\u8FF0","dev.create.app.dialog.description.placeholder":"\u7A7A","dev.create.app.dialog.create":"\u521B\u5EFA\u5E94\u7528\u7A0B\u5E8F","dev.create.app.dialog.cancel":"\u53D6\u6D88","dev.main.tab.appKeys":"API \u5BC6\u94A5","dev.main.tab.logs":"\u65E5\u5FD7","dev.app.description.title":"\u63CF\u8FF0","dev.edit.description.dialog.title":"\u66F4\u6539\u63CF\u8FF0","dev.edit.description.dialog.save":"\u4FDD\u5B58\u66F4\u6539","dev.edit.description.dialog.cancel":"\u53D6\u6D88","dev.edit.apis.dialog.selectedAPIs":"\u9009\u5B9A\u7684 API","dev.app.key.create":"\u521B\u5EFA\u5BC6\u94A5","dev.create.key.dialog.title":"\u521B\u5EFA\u5BC6\u94A5","dev.create.key.dialog.create":"\u521B\u5EFA\u5BC6\u94A5","dev.create.key.dialog.cancel":"\u53D6\u6D88","dev.app.edit":"\u7F16\u8F91","dev.app.delete":"\u5220\u9664","dev.edit.app.dialog.title":"\u66F4\u6539\u663E\u793A\u540D\u79F0","dev.edit.app.dialog.save":"\u4FDD\u5B58\u66F4\u6539","dev.edit.app.dialog.cancel":"\u53D6\u6D88","dev.delete.app.dialog.title":"\u5220\u9664\u5E94\u7528\u7A0B\u5E8F","dev.delete.app.dialog.confirmation":"\u60A8\u786E\u5B9A\u8981\u5220\u9664\u6B64\u5E94\u7528\u7A0B\u5E8F\u5417\uFF1F","dev.delete.app.dialog.delete":"\u5220\u9664\u5E94\u7528\u7A0B\u5E8F","dev.delete.app.dialog.cancel":"\u53D6\u6D88","dev.app.key.roll":"\u8F6E\u6362 API \u5BC6\u94A5","dev.roll.key.dialog.title":"\u8F6E\u6362 API \u5BC6\u94A5","dev.roll.key.dialog.apiKey":"API key","dev.roll.key.dialog.expires":"\u5230\u671F","dev.roll.key.dialog.confirmation":"\u60A8\u786E\u5B9A\u8981\u8F6E\u6362\u6B64 API \u5BC6\u94A5\u5417\uFF1F","dev.roll.key.dialog.cancel":"\u53D6\u6D88","dev.roll.key.dialog.roll":"\u8F6E\u6362 API \u5BC6\u94A5","dev.update.key.dialog.title":"\u66F4\u65B0\u5BC6\u94A5","dev.update.key.dialog.update":"\u66F4\u65B0\u5BC6\u94A5","dev.update.key.dialog.cancel":"\u53D6\u6D88","dev.app.key.api.name":"API \u540D\u79F0","dev.app.key.api.status":"\u72B6\u6001","dev.app.key.api.edit":"\u7F16\u8F91 API","dev.edit.apis.dialog.title":"\u7F16\u8F91 API","dev.edit.apis.dialog.apiKey":"API key","dev.edit.apis.dialog.save":"\u4FDD\u5B58","dev.edit.apis.dialog.cancel":"\u53D6\u6D88","dev.select.placeholder":"\u7A7A","dev.app.overview.status.pending":"\u5F85\u5904\u7406","dev.app.overview.status.approved":"\u5DF2\u6279\u51C6","dev.app.overview.status.revoked":"\u5DF2\u64A4\u9500","dev.app.overview.status":"\u72B6\u6001","dev.app.overview.non-production":"\u6D4B\u8BD5","dev.app.overview.production":"\u751F\u4EA7","dev.app.overview.clientId":"\u5BC6\u94A5","dev.app.overview.apiKey":"API key","dev.app.key.revoke":"\u64A4\u9500 API \u5BC6\u94A5","dev.revoke.key.dialog.title":"\u64A4\u9500 API \u5BC6\u94A5","dev.revoke.key.dialog.apiKey":"API key","dev.revoke.key.dialog.expires":"\u5230\u671F","dev.revoke.key.dialog.confirmation":"\u60A8\u786E\u5B9A\u8981\u64A4\u9500\u6B64 API \u5BC6\u94A5\u5417\uFF1F","dev.revoke.key.dialog.revoke":"\u64A4\u9500 API \u5BC6\u94A5","dev.revoke.key.dialog.cancel":"\u53D6\u6D88","dev.app.overview.expires":"\u5230\u671F","dev.app.overview.created":"\u5DF2\u521B\u5EFA","dev.app.overview.visibilityToggle.hide":"\u9690\u85CF","dev.app.overview.visibilityToggle.show":"\u663E\u793A","search.loading":"\u52A0\u8F7D\u4E2D...","search.noResults.title":"\u65E0\u7ED3\u679C","search.keys.navigate":"\u5BFC\u822A","search.keys.select":"\u9009\u62E9","search.keys.exit":"\u9000\u51FA","search.searchItem.deprecated":"\u5DF2\u5F03\u7528","search.label":"\u641C\u7D22\u6587\u6863...","search.cancel":"\u53D6\u6D88","search.recent":"\u6700\u8FD1\u641C\u7D22","search.navbar.label":"\u641C\u7D22","search.suggested":"\u5EFA\u8BAE\u9875\u9762","search.groups.all":"\u5168\u90E8","search.showMore":"\u663E\u793A\u66F4\u591A","search.filter.title":"\u9AD8\u7EA7\u7B5B\u9009","search.filter.reset":"\u91CD\u7F6E\u7B5B\u9009","search.filter.field.reset":"\u91CD\u7F6E","search.filter.field.footer":"\u641C\u7D22\u4EE5\u663E\u793A\u66F4\u591A\u9879\u76EE...","search.ai.newConversation":"\u65B0\u5BF9\u8BDD","search.ai.welcomeText":"\u6B22\u8FCE\u4F7F\u7528 AI \u641C\u7D22\uFF01\u60A8\u53EF\u4EE5\u95EE\u6211\u4EFB\u4F55\u95EE\u9898\u3002\u6211\u80FD\u4E3A\u60A8\u63D0\u4F9B\u4EC0\u4E48\u5E2E\u52A9\uFF1F","search.ai.placeholder":"\u63D0\u95EE...","search.ai.back":"\u8FD4\u56DE","search.ai.generatingResponse":"\u6B63\u5728\u751F\u6210\u56DE\u590D...","search.ai.followUpQuestion":"\u63D0\u51FA\u540E\u7EED\u95EE\u9898\uFF1F","search.ai.suggestionsTitle":"\u5EFA\u8BAE","search.ai.thinkingText":"\u601D\u8003\u4E2D...","search.ai.resourcesFound":"\u627E\u5230\u8D44\u6E90","search.ai.resourcesFound.basedOn":"\u57FA\u4E8E","search.ai.resourcesFound.resources":"\u8D44\u6E90","search.ai.feedback.title":"\u60A8\u4E0D\u559C\u6B22\u6B64\u56DE\u590D\u7684\u54EA\u4E9B\u65B9\u9762\uFF1F","search.ai.feedback.detailsPlaceholder":"\u6DFB\u52A0\u5177\u4F53\u7EC6\u8282","search.ai.feedback.thanks":"\u611F\u8C22\u60A8\u7684\u53CD\u9988\uFF01","search.ai.feedback.more":"\u66F4\u591A...","search.ai.label":"\u8BE2\u95EE AI \u52A9\u624B","search.ai.button":"\u4F7F\u7528 AI \u641C\u7D22","search.ai.backToSearch":"\u8FD4\u56DE\u641C\u7D22","search.ai.disclaimer":"AI \u641C\u7D22\u53EF\u80FD\u63D0\u4F9B\u4E0D\u5B8C\u6574\u6216\u4E0D\u6B63\u786E\u7684\u7ED3\u679C\u3002\u8BF7\u6838\u5B9E\u91CD\u8981\u4FE1\u606F\u3002","search.ai.error.description":"\u6211\u4EEC\u5728\u5904\u7406\u60A8\u7684\u641C\u7D22\u65F6\u9047\u5230\u95EE\u9898\u3002\u8BF7\u7A0D\u540E\u518D\u8BD5\u6216\u4F18\u5316\u60A8\u7684\u67E5\u8BE2\u3002\u5982\u679C\u95EE\u9898\u4ECD\u7136\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB Redocly \u652F\u6301\u3002","search.ai.error.description.forbidden":"AI \u641C\u7D22\u5F53\u524D\u4E0D\u53EF\u7528\u3002","search.ai.error.description.unauthorized":"\u60A8\u65E0\u6743\u4F7F\u7528 AI \u641C\u7D22\u3002","search.ai.error.header":"\u54CE\u5440\uFF01\u51FA\u9519\u4E86\u3002","search.ai.error.header.forbidden":"\u529F\u80FD\u4E0D\u53EF\u7528","search.ai.error.header.unauthorized":"\u9700\u8981\u8EAB\u4EFD\u9A8C\u8BC1","aiAssistant.trigger":"\u8BE2\u95EE AI","toc.header":"\u5728\u672C\u9875","footer.copyrightText":"","page.homeButton":"\u8FD4\u56DE\u9996\u9875","page.forbidden.title":"\u7981\u6B62\u8BBF\u95EE","page.forbidden.description":"\u60A8\u6CA1\u6709\u6743\u9650\u8BBF\u95EE\u6B64\u9875\u9762\u3002\u5982\u679C\u60A8\u8BA4\u4E3A\u8FD9\u662F\u4E00\u4E2A\u9519\u8BEF\uFF0C\u8054\u7CFB\u60A8\u7684\u7BA1\u7406\u5458\u6216\u8FD4\u56DE\u9996\u9875\u3002","page.notFound.title":"\u5185\u5BB9\u4E22\u5931\u4E86...","page.notFound.description":"\u60A8\u5C1D\u8BD5\u8BBF\u95EE\u7684\u9875\u9762\u4E0D\u5B58\u5728\u6216\u53EF\u80FD\u5DF2\u88AB\u79FB\u52A8\u3002\u60A8\u53EF\u4EE5\u8FD4\u56DE\u4E0A\u4E00\u9875\u3001\u8FD4\u56DE\u9996\u9875\u6216\u4F7F\u7528\u641C\u7D22\u680F\u67E5\u627E\u6240\u9700\u5185\u5BB9\u3002","page.lastUpdated.timeago":"\u6700\u540E\u66F4\u65B0\u4E8E","page.lastUpdated.on":"\u6700\u540E\u66F4\u65B0\u4E8E","catalog.filters.title":"\u7B5B\u9009\u5668","catalog.filters.add":"\u6DFB\u52A0\u7B5B\u9009\u5668","catalog.filters.placeholder":"\u8F93\u5165\u4EE5\u7B5B\u9009...","catalog.filters.clearAll":"\u6E05\u9664\u6240\u6709\u7B5B\u9009\u5668","catalog.filters.select.addFilter":"\u6DFB\u52A0\u7B5B\u9009\u5668","catalog.filters.select.all":"\u5168\u90E8","catalog.filters.done":"\u5B8C\u6210","filter.dateRange.from":"\u4ECE:","filter.dateRange.to":"\u5230:","sidebar.menu.backLabel":"\u8FD4\u56DE","sidebar.menu.backToLabel":"\u8FD4\u56DE {{value}}","sidebar.actions.show":"\u663E\u793A\u4FA7\u8FB9\u680F","sidebar.actions.hide":"\u9690\u85CF\u4FA7\u8FB9\u680F","sidebar.actions.changeToSingleColumn":"\u5207\u6362\u5230\u5355\u5217","sidebar.actions.changeToTwoColumns":"\u5207\u6362\u5230\u53CC\u5217","sidebar.actions.singleColumn":"\u5355\u5217","sidebar.actions.twoColumns":"\u4E24\u5217","versionPicker.label":"\u7248\u672C\uFF1A","versionPicker.unversioned":"\u6240\u6709\u7248\u672C","codeSnippet.copy.buttonText":"\u5DF2\u590D\u5236\uFF01","codeSnippet.copy.tooltipText":"\u590D\u5236\u5230\u526A\u8D34\u677F","codeSnippet.copy.toasterText":"\u590D\u5236","codeSnippet.expand.tooltipText":"\u5168\u90E8\u5C55\u5F00","codeSnippet.collapse.tooltipText":"\u5168\u90E8\u6298\u53E0","markdown.editPage.text":"\u7F16\u8F91","feedback.settings.comment.submitText":"\u611F\u8C22\u60A8\u5E2E\u52A9\u6539\u8FDB\u6211\u4EEC\u7684\u6587\u6863\uFF01","feedback.settings.comment.label":"\u8BF7\u4E0E\u6211\u4EEC\u5206\u4EAB\u60A8\u7684\u53CD\u9988\u3002","feedback.settings.comment.send":"\u53D1\u9001","feedback.settings.comment.cancel":"\u53D6\u6D88","feedback.settings.comment.satisfiedLabel":"\u6700\u6709\u5E2E\u52A9\u7684\u662F\u4EC0\u4E48\uFF1F","feedback.settings.comment.neutralLabel":"\u6211\u4EEC\u53EF\u4EE5\u6539\u8FDB\u4EC0\u4E48\uFF1F","feedback.settings.comment.dissatisfiedLabel":"\u6211\u4EEC\u53EF\u4EE5\u6539\u8FDB\u4EC0\u4E48\uFF1F","feedback.settings.submitText":"\u611F\u8C22\u60A8\u7684\u53CD\u9988\uFF01","feedback.settings.label":"\u8FD9\u6709\u5E2E\u52A9\u5417\uFF1F","feedback.settings.reasons.label":"\u54EA\u9879\u9648\u8FF0\u63CF\u8FF0\u4E86\u60A8\u5BF9\u6B64\u9875\u9762\u7684\u770B\u6CD5\uFF1F","feedback.submit":"\u63D0\u4EA4","feedback.cancel":"\u53D6\u6D88","feedback.settings.comment.likeLabel":"\u6700\u6709\u5E2E\u52A9\u7684\u662F\u4EC0\u4E48\uFF1F","feedback.settings.comment.dislikeLabel":"\u6211\u4EEC\u53EF\u4EE5\u6539\u8FDB\u4EC0\u4E48\uFF1F","feedback.sentiment.thumbUp":"\u8D5E","feedback.sentiment.thumbDown":"\u8E29","feedback.settings.leftScaleLabel":"\u5B8C\u5168\u6CA1\u6709\u5E2E\u52A9","feedback.settings.rightScaleLabel":"\u975E\u5E38\u6709\u5E2E\u52A9","feedback.settings.optionalEmail.label":"\u60A8\u7684\u7535\u5B50\u90AE\u4EF6\uFF08\u53EF\u9009\uFF0C\u7528\u4E8E\u8DDF\u8FDB\uFF09","feedback.settings.optionalEmail.placeholder":"yourname@example.com","codeSnippet.report.buttonText":"\u62A5\u544A","codeSnippet.report.tooltipText":"\u62A5\u544A\u95EE\u9898","codeSnippet.report.label":"\u6B64\u4EE3\u7801\u6709\u4EC0\u4E48\u95EE\u9898\uFF1F","userMenu.login":"\u767B\u5F55","userMenu.logout":"\u6CE8\u9500","userMenu.devOnboardingLabel":"\u6211\u7684\u5E94\u7528\u7A0B\u5E8F","mobileMenu.mainMenu":"\u4E3B\u83DC\u5355","mobileMenu.previous":"\u4E0A\u4E00\u6B65","mobileMenu.products":"\u4EA7\u54C1","mobileMenu.version":"\u7248\u672C","page.nextButton":"\u4E0B\u4E00\u9875","page.previousButton":"\u4E0A\u4E00\u9875","page.actions.copyButtonText":"\u590D\u5236","page.actions.copyTitle":"\u4E3A LLM \u590D\u5236","page.actions.copyDescription":"\u5C06\u9875\u9762\u590D\u5236\u4E3A LLM \u7684 Markdown \u683C\u5F0F","page.actions.viewAsMdButtonText":"\u67E5\u770B Markdown","page.actions.viewAsMdTitle":"\u67E5\u770B Markdown","page.actions.viewAsMdDescription":"\u4EE5 Markdown \u683C\u5F0F\u6253\u5F00\u6B64\u9875\u9762","page.actions.chatGptButtonText":"\u5728 ChatGPT \u4E2D\u6253\u5F00","page.actions.chatGptTitle":"\u5728 ChatGPT \u4E2D\u6253\u5F00","page.actions.chatGptDescription":"\u4ECE ChatGPT \u83B7\u53D6\u89C1\u89E3","page.actions.claudeButtonText":"\u5728 Claude \u4E2D\u6253\u5F00","page.actions.claudeTitle":"\u5728 Claude \u4E2D\u6253\u5F00","page.actions.claudeDescription":"\u4ECE Claude \u83B7\u53D6\u89C1\u89E3","page.actions.cursorMcpButtonText":"\u8FDE\u63A5\u5230 Cursor","page.actions.cursorMcpTitle":"\u8FDE\u63A5\u5230 Cursor","page.actions.cursorMcpDescription":"\u5728 Cursor \u4E0A\u5B89\u88C5 MCP \u670D\u52A1\u5668","page.actions.connectMcp":"\u8FDE\u63A5 MCP","page.actions.connectMcp.cursor":"\u8FDE\u63A5\u5230 Cursor","page.actions.connectMcp.cursorDescription":"\u5728 Cursor \u4E0A\u5B89\u88C5 MCP \u670D\u52A1\u5668","page.actions.connectMcp.vscode":"\u8FDE\u63A5\u5230 VS Code","page.actions.connectMcp.vscodeDescription":"\u5728 VS Code \u4E0A\u5B89\u88C5 MCP \u670D\u52A1\u5668","page.actions.connectMcp.copyConfig":"\u590D\u5236 MCP \u914D\u7F6E","page.actions.connectMcp.copyConfigDescription":"\u590D\u5236 MCP JSON \u914D\u7F6E","navbar.products":"\u4EA7\u54C1","openapi.download.description.title":"\u4E0B\u8F7D OpenAPI \u63CF\u8FF0","openapi.info.title":"\u6982\u8FF0","openapi.info.contact.url":"URL","openapi.info.contact.name":"\u7535\u5B50\u90AE\u4EF6","openapi.info.license":"\u8BB8\u53EF\u8BC1","openapi.info.termsOfService":"\u670D\u52A1\u6761\u6B3E","openapi.info.metadata.title":"\u5143\u6570\u636E","openapi.key":"\u952E","openapi.value":"\u503C","openapi.enum":"\u679A\u4E3E","openapi.items":"\u9879","openapi.default":"\u9ED8\u8BA4\u503C","openapi.variable":"\u53D8\u91CF","openapi.variables":"\u53D8\u91CF","openapi.actions.show":"\u663E\u793A","openapi.actions.hide":"\u9690\u85CF","openapi.actions.more":"\u66F4\u591A","openapi.languages.title":"\u8BED\u8A00","openapi.servers.title":"\u670D\u52A1\u5668","openapi.operations":"\u64CD\u4F5C","openapi.webhooks":"Webhook","openapi.description":"\u63CF\u8FF0","openapi.badges.deprecated":"\u5DF2\u5F03\u7528","openapi.badges.required":"\u5FC5\u9700","openapi.badges.webhook":"Webhook","openapi.request":"\u8BF7\u6C42","openapi.path":"\u8DEF\u5F84","openapi.query":"\u67E5\u8BE2","openapi.cookie":"Cookie","openapi.header":"\u6807\u5934","openapi.body":"\u6B63\u6587","openapi.responses":"\u54CD\u5E94","openapi.response":"\u54CD\u5E94","openapi.callbacks":"\u56DE\u8C03","openapi.callbackRequest":"\u56DE\u8C03\u8BF7\u6C42","openapi.callbackResponse":"\u56DE\u8C03\u54CD\u5E94","openapi.payload":"\u8BF7\u6C42\u4F53","openapi.discriminator":"\u9274\u522B\u5668","openapi.contentType":"\u5185\u5BB9\u7C7B\u578B","openapi.tryIt":"\u8BD5\u7528","openapi.loading":"\u52A0\u8F7D\u4E2D...","openapi.example":"\u793A\u4F8B","openapi.examples":"\u793A\u4F8B","openapi.additionalProperties":"\u9644\u52A0\u5C5E\u6027","openapi.patternProperties":"\u6A21\u5F0F\u5C5E\u6027","openapi.required":"\u5FC5\u9700","openapi.recursive":"\u9012\u5F52","openapi.complex":"\u590D\u6742","openapi.hideExample":"\u9690\u85CF\u793A\u4F8B","openapi.showExample":"\u663E\u793A\u793A\u4F8B","openapi.expandAll":"\u5168\u90E8\u5C55\u5F00","openapi.collapseAll":"\u5168\u90E8\u6298\u53E0","openapi.viewSecurityDetails":"\u67E5\u770B\u5B89\u5168\u8BE6\u60C5","openapi.noResponseExample":"\u65E0\u54CD\u5E94\u793A\u4F8B","openapi.discriminator.searchPlaceholder":"\u641C\u7D22\u9879\u76EE","openapi.discriminator.searchNoResults":"\u672A\u627E\u5230\u9879\u76EE","openapi.discriminator.defaultMapping":"\u9ED8\u8BA4\u6620\u5C04","openapi.discriminator.defaultMappingTooltip":"OpenAPI 3.2\uFF1A\u5F53\u5176\u4ED6\u6620\u5C04\u4E0D\u5339\u914D\u65F6\u4F7F\u7528\u9ED8\u8BA4\u6620\u5C04\u3002","openapi.noResponseContent":"\u65E0\u5185\u5BB9","openapi.noRequestPayload":"\u65E0\u8BF7\u6C42\u6709\u6548\u8D1F\u8F7D","openapi.hidePattern":"\u9690\u85CF\u6A21\u5F0F","openapi.showPattern":"\u663E\u793A\u6A21\u5F0F","openapi.authorizationUrl":"\u6388\u6743 URL","openapi.tokenUrl":"\u4EE4\u724C URL","openapi.refreshUrl":"\u5237\u65B0 URL","openapi.showOptionalScopes":"\u663E\u793A\u53EF\u9009\u8303\u56F4","openapi.hideOptionalScopes":"\u9690\u85CF\u53EF\u9009\u8303\u56F4","openapi.security":"\u5B89\u5168","openapi.httpAuthorizationScheme":"HTTP \u6388\u6743\u65B9\u6848","openapi.bearerFormat":"Bearer \u683C\u5F0F","openapi.parameterName":"\u53C2\u6570\u540D\u79F0","openapi.flowType":"\u6D41\u7C7B\u578B","openapi.connectUrl":"\u8FDE\u63A5 URL","openapi.requiredScopes":"\u5FC5\u9700\u8303\u56F4","openapi.unsupportedLanguage":"\u4E0D\u652F\u6301\u8BE5\u8BED\u8A00\u3002","openapi.failedToGenerateCodeSample":"\u65E0\u6CD5\u751F\u6210\u4EE3\u7801\u793A\u4F8B\u3002","openapi.schemaCatalogLink.title":"\u5171\u4EAB\u67B6\u6784","openapi.schemaCatalogLink.copyButtonTooltip":"\u590D\u5236\u5230\u526A\u8D34\u677F","openapi.schemaCatalogLink.copiedTooltip":"\u5DF2\u590D\u5236\uFF01","openapi.mcp.title":"MCP server","openapi.mcp.endpoint":"Endpoint","openapi.mcp.tools":"MCP \u5DE5\u5177","openapi.mcp.protocolVersion":"\u534F\u8BAE\u7248\u672C","openapi.mcp.capabilities":"\u80FD\u529B","openapi.mcp.experimentalCapabilities":"\u5B9E\u9A8C\u6027\u80FD\u529B","openapi.mcp.inputSchema":"\u8F93\u5165\u67B6\u6784","openapi.mcp.inputExample":"\u8F93\u5165\u793A\u4F8B","openapi.mcp.outputSchema":"\u8F93\u51FA\u67B6\u6784","openapi.mcp.outputExample":"\u8F93\u51FA\u793A\u4F8B","asyncapi.download.description.title":"\u4E0B\u8F7D AsyncAPI \u63CF\u8FF0","asyncapi.info.title":"\u6982\u8FF0","graphql.download.description.title":"\u4E0B\u8F7D GraphQL \u67B6\u6784","graphql.info.title":"\u6982\u8FF0","graphql.info.contact.url":"URL","graphql.info.contact.name":"\u7535\u5B50\u90AE\u4EF6","graphql.info.license":"\u8BB8\u53EF\u8BC1","graphql.info.termsOfService":"\u670D\u52A1\u6761\u6B3E","graphql.overview":"GraphQL \u6982\u8FF0","graphql.metadata":"\u5143\u6570\u636E","graphql.key":"\u952E","graphql.value":"\u503C","graphql.queries":"\u67E5\u8BE2","graphql.mutations":"\u53D8\u66F4","graphql.subscriptions":"\u8BA2\u9605","graphql.directives":"\u6307\u4EE4","graphql.objects":"\u5BF9\u8C61","graphql.interfaces":"\u63A5\u53E3","graphql.unions":"\u8054\u5408","graphql.enums":"\u679A\u4E3E","graphql.inputs":"\u8F93\u5165","graphql.scalars":"\u6807\u91CF","graphql.arguments.label":"\u53C2\u6570","graphql.arguments.show":"\u663E\u793A\u53C2\u6570","graphql.arguments.hide":"\u9690\u85CF\u53C2\u6570","graphql.arguments.here":"\u53C2\u6570\u5728\u6B64","graphql.returnTypes.label":"\u7ED3\u679C\u7C7B\u578B","graphql.returnTypes.show":"\u663E\u793A\u7ED3\u679C\u7C7B\u578B","graphql.returnTypes.hide":"\u9690\u85CF\u7ED3\u679C\u7C7B\u578B","graphql.possibleTypes":"\u53EF\u80FD\u7684\u7C7B\u578B","graphql.defaultValue":"\u9ED8\u8BA4\u503C","graphql.deprecationReason":"\u5F03\u7528\u539F\u56E0","graphql.requiredScopes":"\u5FC5\u9700\u8303\u56F4","graphql.viewSecurityDetails":"\u67E5\u770B\u8BE6\u7EC6\u4FE1\u606F","graphql.objectScopes":"\u5BF9\u8C61\u8303\u56F4","graphql.fieldScopes":"\u5B57\u6BB5\u8303\u56F4","graphql.implementedInterfaces":"\u5B9E\u73B0\u7684\u63A5\u53E3","graphql.nonNull":"\u975E\u7A7A","graphql.required":"\u5FC5\u9700","graphql.deprecated":"\u5DF2\u5F03\u7528","graphql.variables":"\u53D8\u91CF","graphql.querySample":"\u67E5\u8BE2\u793A\u4F8B","graphql.mutationSample":"\u53D8\u66F4\u793A\u4F8B","graphql.subscriptionSample":"\u8BA2\u9605\u793A\u4F8B","graphql.responseSample":"\u54CD\u5E94\u793A\u4F8B","graphql.locations":"\u4F4D\u7F6E","graphql.sample":"\u793A\u4F8B","graphql.referenced":"\u5F15\u7528\u4F4D\u7F6E","graphql.content.fragment":"\u7247\u6BB5","codeWalkthrough.preview":"\u9884\u89C8","codeWalkthrough.download":"\u4E0B\u8F7D","time.justNow":"\u521A\u624D","time.past.second":"1 \u79D2\u524D","time.past.seconds":"{{value}} \u79D2\u524D","time.past.minute":"1 \u5206\u949F\u524D","time.past.minutes":"{{value}} \u5206\u949F\u524D","time.past.hour":"1 \u5C0F\u65F6\u524D","time.past.hours":"{{value}} \u5C0F\u65F6\u524D","time.past.day":"1 \u5929\u524D","time.past.days":"{{value}} \u5929\u524D","time.past.week":"1 \u5468\u524D","time.past.weeks":"{{value}} \u5468\u524D","time.past.month":"1 \u4E2A\u6708\u524D","time.past.months":"{{value}} \u4E2A\u6708\u524D","time.past.year":"1 \u5E74\u524D","time.past.years":"{{value}} \u5E74\u524D","page.internalServerError.title":"\u5185\u90E8\u670D\u52A1\u5668\u9519\u8BEF","page.internalServerError.description":"\u6211\u4EEC\u7684\u670D\u52A1\u5668\u51FA\u9519\u4E86\u3002\u8BF7\u7A0D\u540E\u518D\u8BD5\uFF0C\u5982\u679C\u95EE\u9898\u4ECD\u7136\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u652F\u6301\u4EBA\u5458\u3002","page.skipToContent.label":"\u8DF3\u8F6C\u5230\u5185\u5BB9","catalog.catalogs.label":"\u76EE\u5F55","catalog.catalogs.all.title":"\u5168\u90E8","catalog.catalogs.all.description":"\u6240\u6709\u5B9E\u4F53","catalog.catalogs.all.switcherLabel":"\u5168\u90E8","catalog.catalogs.service.title":"\u670D\u52A1","catalog.catalogs.service.description":"\u670D\u52A1\u5B9E\u4F53","catalog.catalogs.service.switcherLabel":"\u670D\u52A1","catalog.catalogs.user.title":"\u7528\u6237","catalog.catalogs.user.description":"\u7528\u6237\u5B9E\u4F53","catalog.catalogs.user.switcherLabel":"\u7528\u6237","catalog.catalogs.team.title":"\u56E2\u961F","catalog.catalogs.team.description":"\u56E2\u961F\u5B9E\u4F53","catalog.catalogs.team.switcherLabel":"\u56E2\u961F","catalog.catalogs.domain.title":"\u57DF","catalog.catalogs.domain.description":"\u57DF\u5B9E\u4F53","catalog.catalogs.domain.switcherLabel":"\u57DF","catalog.catalogs.apiDescription.title":"API \u63CF\u8FF0","catalog.catalogs.apiDescription.description":"API \u63CF\u8FF0\u5B9E\u4F53","catalog.catalogs.apiDescription.switcherLabel":"API \u63CF\u8FF0","catalog.catalogs.dataSchema.title":"\u6570\u636E\u6A21\u5F0F","catalog.catalogs.dataSchema.description":"\u6570\u636E\u6A21\u5F0F\u5B9E\u4F53","catalog.catalogs.dataSchema.switcherLabel":"\u6570\u636E\u6A21\u5F0F","catalog.catalogs.apiOperation.title":"API \u64CD\u4F5C","catalog.catalogs.apiOperation.description":"API \u64CD\u4F5C\u5B9E\u4F53","catalog.catalogs.apiOperation.switcherLabel":"API \u64CD\u4F5C","catalog.entity.metadata.title":"\u5143\u6570\u636E","catalog.entity.schema.title":"\u6A21\u5F0F","catalog.entity.properties.apiDescription.title":"API \u63CF\u8FF0","catalog.backToAllLabel":"\u76EE\u5F55","catalog.tags.label":"\u6807\u7B7E","catalog.tags.more":"\u66F4\u591A","catalog.owners.label":"\u6240\u6709\u8005","catalog.repositories.label":"\u4ED3\u5E93","catalog.email.label":"\u7535\u5B50\u90AE\u4EF6","catalog.format.label":"\u683C\u5F0F","catalog.entityType.label":"\u5B9E\u4F53\u7C7B\u578B","catalog.domains.label":"\u57DF","catalog.contact.label":"Slack \u9891\u9053","catalog.methodAndPath.label":"\u65B9\u6CD5\u548C\u8DEF\u5F84","catalog.links.label":"\u94FE\u63A5","catalog.metadata.domains":"\u57DF:","catalog.metadata.owners":"\u6240\u6709\u8005:","catalog.sort":"\u6392\u5E8F","catalog.history.button.label":"\u7248\u672C\u5386\u53F2","catalog.history.sidebar.title":"\u7248\u672C\u5386\u53F2","catalog.history.sidebar.close":"\u5173\u95ED\u7248\u672C\u5386\u53F2","catalog.history.version.label":"\u7248\u672C","catalog.history.version.notSpecified":"\u672A\u6307\u5B9A","catalog.history.version.default":"\u9ED8\u8BA4","catalog.history.revisions.limitMessage":"\u4E0D\u5B58\u50A8\u8F83\u65E7\u7684\u4FEE\u8BA2\u7248\u672C\u3002","catalog.history.revision.current":"\u5F53\u524D","catalog.history.revisions.showLess":"\u663E\u793A\u66F4\u5C11","catalog.history.revisions.showMore":"\u663E\u793A\u66F4\u591A{{count}}\u9879","select.noResults":"\u65E0\u7ED3\u679C","loaders.loading":"\u52A0\u8F7D\u4E2D..."};export{e as zh};
@@ -1,38 +1,38 @@
1
- import{and as c,desc as H,eq as s,notExists as v,sql as e}from"drizzle-orm";import{unionAll as C}from"drizzle-orm/sqlite-core";import{logger as M}from"../../../../../tools/notifiers/logger.js";import{entitiesTable as i}from"../../../../../providers/database/databases/catalog-sqlite/schemas/entities-table.js";import{entitiesRelationsTable as k}from"../../../../../providers/database/databases/catalog-sqlite/schemas/entities-relations-table.js";import{applyPagination as S}from"../../../../../providers/database/pagination/index.js";import{applyFilter as q,excludeFieldsFromFilter as j,getAllFilterFieldValues as O}from"../../../../../providers/database/pagination/filter.js";import{createBffEntity as A}from"../../mappers/create-bff-entity.js";import{FIELDS_TO_SELECT_FOR_ENTITY as n,FIELDS_TO_SELECT_FOR_ENTITY_RELATION as $,createEntityFieldsForSelect as W}from"../utils.js";class Z{#e;#t;constructor(t,o){this.#e=t,this.#t=o}async getEntitiesWithRelations(t={}){const o=O(t.filter,"owners");if(o.length>0)return this.#c(t,o);const m=O(t.filter,"domains");return m.length>0?this.#l(t,m):this.#a(t)}async#c(t,o){const m=this.#s(),l=this.#n(),d=this.#o(),y=l.as("combined_relations"),u=d.as("combined_target_entities"),h=o.map(r=>e`
1
+ import{and as c,desc as M,eq as s,notExists as $,sql as e}from"drizzle-orm";import{unionAll as C}from"drizzle-orm/sqlite-core";import{logger as Q}from"../../../../../tools/notifiers/logger.js";import{entitiesTable as i}from"../../../../../providers/database/databases/catalog-sqlite/schemas/entities-table.js";import{entitiesRelationsTable as T}from"../../../../../providers/database/databases/catalog-sqlite/schemas/entities-relations-table.js";import{applyPagination as D}from"../../../../../providers/database/pagination/index.js";import{applyFilter as j,excludeFieldsFromFilter as H,getAllFilterFieldValues as S}from"../../../../../providers/database/pagination/filter.js";import{createBffEntity as O}from"../../mappers/create-bff-entity.js";import{FIELDS_TO_SELECT_FOR_ENTITY as n,FIELDS_TO_SELECT_FOR_ENTITY_RELATION as R,createEntityFieldsForSelect as A}from"../utils.js";class U{#e;#t;constructor(t,o){this.#e=t,this.#t=o}async getEntitiesWithRelations(t={}){const o=S(t.filter,"owners");if(o.length>0)return this.#c(t,o);const d=S(t.filter,"domains");return d.length>0?this.#l(t,d):this.#a(t)}async#c(t,o){const d=this.#s(),l=this.#n(),m=this.#o(),y=l.as("combined_relations"),u=m.as("combined_target_entities"),h=o.map(r=>e`
2
2
  EXISTS (
3
3
  SELECT 1 FROM (${l}) cr
4
4
  WHERE cr.source_key = ${r}
5
5
  AND cr.source_to_target_relation = 'owns'
6
6
  AND cr.target_key = base_entities.key
7
7
  )
8
- `),_=h.length===1?h[0]:e`(${e.join(h,e` OR `)})`,b=O(t.filter,"domains");let w=_;if(b.length>0){const r=b.map(a=>e`
8
+ `),_=h.length===1?h[0]:e`(${e.join(h,e` OR `)})`,b=S(t.filter,"domains");let w=_;if(b.length>0){const r=b.map(a=>e`
9
9
  EXISTS (
10
10
  SELECT 1 FROM (${l}) cr
11
- JOIN (${d}) d ON d.key = ${a}
11
+ JOIN (${m}) d ON d.key = ${a}
12
12
  WHERE d.type = 'domain'
13
13
  AND d.is_current = 1
14
14
  AND cr.source_key = ${a}
15
15
  AND cr.target_key = base_entities.key
16
16
  AND cr.source_to_target_relation = 'hasParts'
17
17
  )
18
- `),f=r.length===1?r[0]:e`(${e.join(r,e` OR `)})`;w=e`(${_} AND ${f})`}const R=j(t.filter,["owners","domains"]),g={...t,filter:R,baseWhereCondition:w},E=this.#e.client.select(n).from(m.as("base_entities")).$dynamic();try{const r=this.#e.client.select(n).from(m.as("base_entities")).$dynamic();S(r,{...g,limit:void 0,skip:void 0,after:void 0,before:void 0});const f=this.#e.client.select({count:e`count(*)`}).from(r.as("count_subquery")),a=t.limit||10;S(E,{...g,limit:a+1});const p=E.as("paged_entities"),N=this.#e.client.with(y,u,p).select({...W("paged_entities"),domains:this.#i("paged_entities").as("domains"),owners:this.#r("paged_entities").as("owners")}).from(p),[F,I]=await Promise.all([N.run(),f.run()]),D=F.rows,L=Number(I.rows[0]?.count||0),Q=D.length>a;return{items:D.slice(0,a).map(T=>A(T)).filter(T=>T!==null),hasMore:Q,total:L}}catch(r){return M.error("Error getting entities with relations (owner optimized path):",r),{items:[],hasMore:!1,total:0}}}async#l(t,o){const m=this.#s(),l=this.#n(),d=this.#o(),y=l.as("combined_relations"),u=d.as("combined_target_entities"),h=o.map(r=>e`
18
+ `),f=r.length===1?r[0]:e`(${e.join(r,e` OR `)})`;w=e`(${_} AND ${f})`}const p=H(t.filter,["owners","domains"]),g={...t,filter:p,baseWhereCondition:w},E=this.#e.client.select(n).from(d.as("base_entities")).$dynamic();try{const r=this.#e.client.select(n).from(d.as("base_entities")).$dynamic();D(r,{...g,limit:void 0,skip:void 0,after:void 0,before:void 0});const f=this.#e.client.$count(r),a=t.limit||10;D(E,{...g,limit:a+1});const v=E.as("paged_entities"),W=this.#e.client.with(y,u,v).select({...A("paged_entities"),domains:this.#i("paged_entities").as("domains"),owners:this.#r("paged_entities").as("owners")}).from(v),[F,I]=await Promise.all([W.run(),f]),k=F.rows,L=k.length>a;return{items:k.slice(0,a).map(N=>O(N)).filter(N=>N!==null),hasMore:L,total:I}}catch(r){return Q.error("Error getting entities with relations (owner optimized path):",r),{items:[],hasMore:!1,total:0}}}async#l(t,o){const d=this.#s(),l=this.#n(),m=this.#o(),y=l.as("combined_relations"),u=m.as("combined_target_entities"),h=o.map(r=>e`
19
19
  EXISTS (
20
20
  SELECT 1 FROM (${l}) cr
21
- JOIN (${d}) d ON d.key = ${r}
21
+ JOIN (${m}) d ON d.key = ${r}
22
22
  WHERE d.type = 'domain'
23
23
  AND d.is_current = 1
24
24
  AND cr.source_key = ${r}
25
25
  AND cr.target_key = base_entities.key
26
26
  AND cr.source_to_target_relation = 'hasParts'
27
27
  )
28
- `),_=h.length===1?h[0]:e`(${e.join(h,e` OR `)})`,b=O(t.filter,"owners");let w=_;if(b.length>0){const r=b.map(a=>e`
28
+ `),_=h.length===1?h[0]:e`(${e.join(h,e` OR `)})`,b=S(t.filter,"owners");let w=_;if(b.length>0){const r=b.map(a=>e`
29
29
  EXISTS (
30
30
  SELECT 1 FROM (${l}) cr
31
31
  WHERE cr.source_key = ${a}
32
32
  AND cr.source_to_target_relation = 'owns'
33
33
  AND cr.target_key = base_entities.key
34
34
  )
35
- `),f=r.length===1?r[0]:e`(${e.join(r,e` OR `)})`;w=e`(${_} AND ${f})`}const R=j(t.filter,["domains","owners"]),g={...t,filter:R,baseWhereCondition:w},E=this.#e.client.select(n).from(m.as("base_entities")).$dynamic();try{const r=this.#e.client.select(n).from(m.as("base_entities")).$dynamic();S(r,{...g,limit:void 0,skip:void 0,after:void 0,before:void 0});const f=this.#e.client.select({count:e`count(*)`}).from(r.as("count_subquery")),a=t.limit||10;S(E,{...g,limit:a+1});const p=E.as("paged_entities"),N=this.#e.client.with(y,u,p).select({...W("paged_entities"),domains:this.#i("paged_entities").as("domains"),owners:this.#r("paged_entities").as("owners")}).from(p),[F,I]=await Promise.all([N.run(),f.run()]),D=F.rows,L=Number(I.rows[0]?.count||0),Q=D.length>a;return{items:D.slice(0,a).map(T=>A(T)).filter(T=>T!==null),hasMore:Q,total:L}}catch(r){return M.error("Error getting entities with relations (domain optimized path):",r),{items:[],hasMore:!1,total:0}}}async#a(t){const o=this.#s(),m=this.#n(),l=this.#o(),d=m.as("combined_relations"),y=l.as("combined_target_entities"),u=this.#e.client.select(n).from(o.as("base_entities")).$dynamic(),{whereCondition:h}=q(u,t.filter);h&&u.where(h);try{const _=this.#e.client.select(n).from(o.as("base_entities_count")).$dynamic();h&&_.where(h);const b=this.#e.client.select({count:e`count(*)`}).from(_.as("count_subquery")),w=t.limit||10;S(u,{...t,limit:w+1});const R=u.as("paged_entities"),g=this.#e.client.with(d,y,R).select({...W("paged_entities"),domains:this.#i("paged_entities").as("domains"),owners:this.#r("paged_entities").as("owners")}).from(R),[E,r]=await Promise.all([g.run(),b.run()]),f=E.rows,a=Number(r.rows[0]?.count||0),p=f.length>w;return{items:f.slice(0,w).map(N=>A(N)).filter(N=>N!==null),hasMore:p,total:a}}catch(_){return M.error("Error getting entities with relations (optimized path):",_),{items:[],hasMore:!1,total:0}}}#s(){return this.#t?C(this.#e.client.select(n).from(e`remote.entities`).where(c(s(e.raw("is_current"),1),s(e.raw("is_deleted"),!1))),this.#e.client.select(n).from(i).where(c(s(i.isCurrent,!0),s(i.isDeleted,!1),v(this.#e.client.select({id:n.id}).from(e`remote.entities as remote`).where(c(e`remote.key = ${i.key}`,e`remote.is_current = 1`)))))):this.#e.client.select(n).from(i).where(c(s(i.isCurrent,!0),s(i.isDeleted,!1)))}#n(){return this.#t?C(this.#e.client.select($).from(e`remote.entities_relations`),this.#e.client.select($).from(k).where(v(this.#e.client.select({id:$.id}).from(e`remote.entities_relations as remote`).where(e`remote.source_key = ${k.sourceKey}`)))):this.#e.client.select($).from(k)}#o(){return this.#t?C(this.#e.client.select(n).from(e`remote.entities`).where(c(s(e.raw("is_current"),1),s(e.raw("is_deleted"),!1))),this.#e.client.select(n).from(i).where(c(s(i.isCurrent,!0),s(i.isDeleted,!1),v(this.#e.client.select({id:n.id}).from(e`remote.entities as remote`).where(c(e`remote.key = ${i.key}`,e`remote.is_current = 1`)))))):this.#e.client.select(n).from(i).where(c(s(i.isCurrent,!0),s(i.isDeleted,!1)))}async getEntityWithRelationsByKey(t,o){if(!t||t.trim()==="")return null;const m=o?.revision,l=o?.version,d=m?null:await this.#m(t,l||null),y=l??d?.version,u=m||d?.revision||null,_=(this.#t?C(this.#e.client.select(n).from(e`remote.entities`).where(s(i.key,t)),this.#e.client.select(n).from(i).where(c(s(i.key,t),v(this.#e.client.select({id:n.id}).from(e`remote.entities as remote`).where(e`remote.key = ${i.key}`))))):this.#e.client.select(n).from(i).where(s(i.key,t))).as("e"),w=(this.#t?C(this.#e.client.select($).from(e`remote.entities_relations`),this.#e.client.select($).from(k).where(v(this.#e.client.select({id:$.id}).from(e`remote.entities_relations as remote`).where(e`remote.source_key = ${k.sourceKey}`)))):this.#e.client.select($).from(k)).as("combined_relations"),g=(this.#t?C(this.#e.client.select(n).from(e`remote.entities`),this.#e.client.select(n).from(i).where(v(this.#e.client.select({id:n.id}).from(e`remote.entities as remote`).where(e`remote.key = ${i.key}`)))):this.#e.client.select(n).from(i)).as("combined_target_entities"),E=this.#e.client.with(_,w,g).select({...W("e"),domains:this.#i("e").as("domains"),owners:this.#r("e").as("owners")}).from(_).$dynamic();u?E.where(c(s(e.raw("revision"),u),y?s(e.raw("version"),y):void 0)):E.where(s(e.raw("is_current"),1)),E.limit(1);const r=await E.run();if(r.rows.length===0)return null;const f=r.rows[0];return A(f)}async#m(t,o){if(o){const y=await(this.#t?C(this.#e.client.select({version:e.raw("version"),revision:e.raw("revision")}).from(e`remote.entities`).where(c(e`key = ${t}`,e`version = ${o}`)).orderBy(e.raw("revision DESC")),this.#e.client.select({version:i.version,revision:i.revision}).from(i).where(c(s(i.key,t),s(i.version,o),v(this.#e.client.select({id:e.raw("id")}).from(e`remote.entities as remote`).where(c(e`remote.key = ${i.key}`,e`remote.version = ${o}`))))).orderBy(H(i.revision))):this.#e.client.select({version:i.version,revision:i.revision}).from(i).where(c(s(i.key,t),s(i.version,o))).orderBy(H(i.revision))).limit(1).run();if(y.rows.length>0){const u=y.rows[0];return{version:u.version||null,revision:u.revision||null}}return null}const l=await(this.#t?C(this.#e.client.select({version:e.raw("version"),revision:e.raw("revision")}).from(e`remote.entities`).where(c(e`key = ${t}`,e`is_current = 1`)),this.#e.client.select({version:i.version,revision:i.revision}).from(i).where(c(s(i.key,t),s(i.isCurrent,!0),v(this.#e.client.select({id:e.raw("id")}).from(e`remote.entities as remote`).where(c(e`remote.key = ${i.key}`,e`remote.is_current = 1`)))))):this.#e.client.select({version:i.version,revision:i.revision}).from(i).where(c(s(i.key,t),s(i.isCurrent,!0)))).limit(1).run();if(l.rows.length>0){const d=l.rows[0];return{version:d.version||null,revision:d.revision||null}}return null}#i(t){return e`
35
+ `),f=r.length===1?r[0]:e`(${e.join(r,e` OR `)})`;w=e`(${_} AND ${f})`}const p=H(t.filter,["domains","owners"]),g={...t,filter:p,baseWhereCondition:w},E=this.#e.client.select(n).from(d.as("base_entities")).$dynamic();try{const r=this.#e.client.select(n).from(d.as("base_entities")).$dynamic();D(r,{...g,limit:void 0,skip:void 0,after:void 0,before:void 0});const f=this.#e.client.$count(r),a=t.limit||10;D(E,{...g,limit:a+1});const v=E.as("paged_entities"),W=this.#e.client.with(y,u,v).select({...A("paged_entities"),domains:this.#i("paged_entities").as("domains"),owners:this.#r("paged_entities").as("owners")}).from(v),[F,I]=await Promise.all([W.run(),f]),k=F.rows,L=k.length>a;return{items:k.slice(0,a).map(N=>O(N)).filter(N=>N!==null),hasMore:L,total:I}}catch(r){return Q.error("Error getting entities with relations (domain optimized path):",r),{items:[],hasMore:!1,total:0}}}async#a(t){const o=this.#s(),d=this.#n(),l=this.#o(),m=d.as("combined_relations"),y=l.as("combined_target_entities"),u=this.#e.client.select(n).from(o.as("base_entities")).$dynamic(),{whereCondition:h}=j(u,t.filter);h&&u.where(h);try{const _=this.#e.client.select(n).from(o.as("base_entities")).$dynamic();h&&_.where(h);const b=this.#e.client.$count(_),w=t.limit||10;D(u,{...t,limit:w+1});const p=u.as("paged_entities"),g=this.#e.client.with(m,y,p).select({...A("paged_entities"),domains:this.#i("paged_entities").as("domains"),owners:this.#r("paged_entities").as("owners")}).from(p),[E,r]=await Promise.all([g.run(),b]),f=E.rows,a=f.length>w;return{items:f.slice(0,w).map(v=>O(v)).filter(v=>v!==null),hasMore:a,total:r}}catch(_){return Q.error("Error getting entities with relations (optimized path):",_),{items:[],hasMore:!1,total:0}}}#s(){return this.#t?C(this.#e.client.select(n).from(e`remote.entities`).where(c(s(e.raw("is_current"),1),s(e.raw("is_deleted"),!1))),this.#e.client.select(n).from(i).where(c(s(i.isCurrent,!0),s(i.isDeleted,!1),$(this.#e.client.select({id:n.id}).from(e`remote.entities as remote`).where(c(e`remote.key = ${i.key}`,e`remote.is_current = 1`)))))):this.#e.client.select(n).from(i).where(c(s(i.isCurrent,!0),s(i.isDeleted,!1)))}#n(){return this.#t?C(this.#e.client.select(R).from(e`remote.entities_relations`),this.#e.client.select(R).from(T).where($(this.#e.client.select({id:R.id}).from(e`remote.entities_relations as remote`).where(e`remote.source_key = ${T.sourceKey}`)))):this.#e.client.select(R).from(T)}#o(){return this.#t?C(this.#e.client.select(n).from(e`remote.entities`).where(c(s(e.raw("is_current"),1),s(e.raw("is_deleted"),!1))),this.#e.client.select(n).from(i).where(c(s(i.isCurrent,!0),s(i.isDeleted,!1),$(this.#e.client.select({id:n.id}).from(e`remote.entities as remote`).where(c(e`remote.key = ${i.key}`,e`remote.is_current = 1`)))))):this.#e.client.select(n).from(i).where(c(s(i.isCurrent,!0),s(i.isDeleted,!1)))}async getEntityWithRelationsByKey(t,o){if(!t||t.trim()==="")return null;const d=o?.revision,l=o?.version,m=d?null:await this.#d(t,l||null),y=l??m?.version,u=d||m?.revision||null,_=(this.#t?C(this.#e.client.select(n).from(e`remote.entities`).where(s(i.key,t)),this.#e.client.select(n).from(i).where(c(s(i.key,t),$(this.#e.client.select({id:n.id}).from(e`remote.entities as remote`).where(e`remote.key = ${i.key}`))))):this.#e.client.select(n).from(i).where(s(i.key,t))).as("e"),w=(this.#t?C(this.#e.client.select(R).from(e`remote.entities_relations`),this.#e.client.select(R).from(T).where($(this.#e.client.select({id:R.id}).from(e`remote.entities_relations as remote`).where(e`remote.source_key = ${T.sourceKey}`)))):this.#e.client.select(R).from(T)).as("combined_relations"),g=(this.#t?C(this.#e.client.select(n).from(e`remote.entities`),this.#e.client.select(n).from(i).where($(this.#e.client.select({id:n.id}).from(e`remote.entities as remote`).where(e`remote.key = ${i.key}`)))):this.#e.client.select(n).from(i)).as("combined_target_entities"),E=this.#e.client.with(_,w,g).select({...A("e"),domains:this.#i("e").as("domains"),owners:this.#r("e").as("owners")}).from(_).$dynamic();u?E.where(c(s(e.raw("revision"),u),y?s(e.raw("version"),y):void 0)):E.where(s(e.raw("is_current"),1)),E.limit(1);const r=await E.run();if(r.rows.length===0)return null;const f=r.rows[0];return O(f)}async#d(t,o){if(o){const y=await(this.#t?C(this.#e.client.select({version:e.raw("version"),revision:e.raw("revision")}).from(e`remote.entities`).where(c(e`key = ${t}`,e`version = ${o}`)).orderBy(e.raw("revision DESC")),this.#e.client.select({version:i.version,revision:i.revision}).from(i).where(c(s(i.key,t),s(i.version,o),$(this.#e.client.select({id:e.raw("id")}).from(e`remote.entities as remote`).where(c(e`remote.key = ${i.key}`,e`remote.version = ${o}`))))).orderBy(M(i.revision))):this.#e.client.select({version:i.version,revision:i.revision}).from(i).where(c(s(i.key,t),s(i.version,o))).orderBy(M(i.revision))).limit(1).run();if(y.rows.length>0){const u=y.rows[0];return{version:u.version||null,revision:u.revision||null}}return null}const l=await(this.#t?C(this.#e.client.select({version:e.raw("version"),revision:e.raw("revision")}).from(e`remote.entities`).where(c(e`key = ${t}`,e`is_current = 1`)),this.#e.client.select({version:i.version,revision:i.revision}).from(i).where(c(s(i.key,t),s(i.isCurrent,!0),$(this.#e.client.select({id:e.raw("id")}).from(e`remote.entities as remote`).where(c(e`remote.key = ${i.key}`,e`remote.is_current = 1`)))))):this.#e.client.select({version:i.version,revision:i.revision}).from(i).where(c(s(i.key,t),s(i.isCurrent,!0)))).limit(1).run();if(l.rows.length>0){const m=l.rows[0];return{version:m.version||null,revision:m.revision||null}}return null}#i(t){return e`
36
36
  COALESCE(
37
37
  (
38
38
  SELECT json_group_array(
@@ -109,4 +109,4 @@ import{and as c,desc as H,eq as s,notExists as v,sql as e}from"drizzle-orm";impo
109
109
  ),
110
110
  json_array()
111
111
  )
112
- `}}export{Z as CatalogEntitiesBffRepository};
112
+ `}}export{U as CatalogEntitiesBffRepository};
@@ -1,4 +1,4 @@
1
- import{and as l,count as L,eq as n,isNotNull as v,notExists as E,or as D,sql as e}from"drizzle-orm";import{unionAll as f}from"drizzle-orm/sqlite-core";import{logger as b}from"../../../../../tools/notifiers/logger.js";import{VERSION_NOT_SPECIFIED as R}from"@redocly/theme/core/constants";import{applyPagination as S}from"../../../../../providers/database/pagination/index.js";import{FIELDS_TO_SELECT_FOR_ENTITY as c,FIELDS_TO_SELECT_FOR_ENTITY_RELATION as m}from"../utils.js";import{createEntityReadModel as O}from"../../mappers/create-entity-read-model.js";import{createEntityRelation as C}from"../../mappers/create-entity-relation.js";import{entitiesTable as t}from"../../../../../providers/database/databases/catalog-sqlite/schemas/entities-table.js";import{entitiesRelationsTable as y}from"../../../../../providers/database/databases/catalog-sqlite/schemas/entities-relations-table.js";import{CatalogEntitiesRelationsRepository as I}from"./catalog-entities-relations-repository.js";import{CatalogEntitiesBffRepository as g}from"./catalog-entities-bff-repository.js";class j{#e;#t=void 0;#i;#s;constructor(i){this.#e=i,this.#i=new I(this.#e,this.#t||""),this.#s=new g(this.#e,this.#t||"")}async attachDatabase(i){this.#t!==i&&(this.#t=i,await this.#e.client.run(e`ATTACH DATABASE ${i} AS remote`),this.#i=new I(this.#e,i),this.#s=new g(this.#e,i))}async getEntities(i={}){const s=this.#t?f(this.#e.client.select(c).from(e`remote.entities`),this.#e.client.select(c).from(t).where(E(this.#e.client.select({id:c.id}).from(e`remote.entities as remote`).where(e`remote.key = ${t.key}`)))):this.#e.client.select(c).from(t),r=this.#e.client.select(c).from(s.as("combined_entities")),o=this.#e.client.select(c).from(s.as("combined_entities")).$dynamic(),_=S(o,{...i,limit:void 0,skip:void 0,after:void 0,before:void 0}),a=this.#e.client.$count(_),u=r.$dynamic(),d=i.limit||10,h=S(u,{...i,limit:d+1}),[T,N]=await Promise.all([h.run(),a]),p=T.rows,w=p.length>d;return{items:p.slice(0,d).map(k=>O(k)).filter(k=>k!==null),hasMore:w,total:N}}async getEntityKeysAndVersionsBySourceFile(i){const s=this.#t?f(this.#e.client.select({keyVersion:e`key || ':' || COALESCE(version, ${R})`.as("keyVersion")}).from(e`remote.entities`).where(l(e`source_file = ${i}`,e`source = 'file'`,e`key IS NOT NULL`)),this.#e.client.select({keyVersion:e`${t.key} || ':' || COALESCE(${t.version}, ${R})`.as("keyVersion")}).from(t).where(l(n(t.sourceFile,i),n(t.source,"file"),e`${t.key} IS NOT NULL`,E(this.#e.client.select({key:e.raw("key")}).from(e`remote.entities as remote`).where(e`remote.key = ${t.key}`))))):this.#e.client.select({keyVersion:e`${t.key} || ':' || COALESCE(${t.version}, ${R})`.as("keyVersion")}).from(t).where(l(n(t.sourceFile,i),n(t.source,"file"),v(t.key))),r=await this.#e.client.selectDistinct({keyVersion:e`combined_keys_versions.keyVersion`}).from(s.as("combined_keys_versions")).run();return new Set(r.rows.map(o=>o.keyVersion))}async listEntityRevisions(i,s){const r=[n(t.key,i),n(t.isDeleted,!1),...s?[n(t.version,s)]:[]],o=this.#t?f(this.#e.client.select({version:e.raw("version"),revision:e.raw("revision"),isCurrent:e.raw("is_current"),createdAt:e.raw("created_at"),updatedAt:e.raw("updated_at"),isDefaultVersion:e.raw("is_default_version")}).from(e`remote.entities`).where(l(e`key = ${i}`,s?e`version = ${s}`:void 0)),this.#e.client.select({version:t.version,revision:t.revision,isCurrent:t.isCurrent,createdAt:t.createdAt,updatedAt:t.updatedAt,isDefaultVersion:t.isDefaultVersion}).from(t).where(l(...r,E(this.#e.client.select({version:e.raw("version")}).from(e`remote.entities as remote`).where(l(e`remote.key = ${t.key}`,e`remote.version = ${t.version}`,e`remote.revision = ${t.revision}`)))))):this.#e.client.select({version:t.version,revision:t.revision,isCurrent:t.isCurrent,createdAt:t.createdAt,updatedAt:t.updatedAt,isDefaultVersion:t.isDefaultVersion}).from(t).where(l(...r));return(await this.#e.client.select({version:e.raw("version"),revision:e.raw("revision"),isCurrent:e.raw("is_current"),createdAt:e.raw("created_at"),updatedAt:e.raw("updated_at"),isDefaultVersion:e.raw("is_default_version")}).from(o.as("combined_revisions")).orderBy(e.raw("is_current DESC"),e.raw("updated_at DESC"),e.raw("created_at DESC")).run()).rows.map(a=>({version:a.version||null,revision:a.revision??"",isCurrent:a.is_current!==null?!!a.is_current:!1,createdAt:a.created_at||null,updatedAt:a.updated_at||null,isDefaultVersion:a.is_default_version!==null?!!a.is_default_version:!1}))}async getEntitiesCountByTypes(){const i=this.#t?f(this.#e.client.select({type:e`type`}).from(e`remote.entities`).where(l(n(e.raw("is_current"),1),n(e.raw("is_deleted"),!1))),this.#e.client.select({type:t.type}).from(t).where(l(n(t.isCurrent,!0),n(t.isDeleted,!1),E(this.#e.client.select({id:e.raw("id")}).from(e`remote.entities as remote`).where(l(e`remote.key = ${t.key}`,e`remote.is_current = 1`)))))):this.#e.client.select({type:t.type}).from(t).where(l(n(t.isCurrent,!0),n(t.isDeleted,!1)));return this.#e.client.select({type:t.type,count:L()}).from(i.as("combined_entities")).groupBy(t.type).where(n(t.isDeleted,!1))}async getEntityByKey(i){const o=(await(this.#t?f(this.#e.client.select(c).from(e`remote.entities`).where(l(n(t.key,i),n(e.raw("is_current"),1),n(e.raw("is_deleted"),!1))),this.#e.client.select(c).from(t).where(l(n(t.key,i),n(t.isCurrent,!0),n(t.isDeleted,!1),E(this.#e.client.select({id:c.id}).from(e`remote.entities as remote`).where(l(e`remote.key = ${t.key}`,e`remote.is_current = 1`)))))):this.#e.client.select(c).from(t).where(l(n(t.key,i),n(t.isCurrent,!0),n(t.isDeleted,!1)))).run()).rows[0];return o?O(o):null}async getOneOutdatedEntity(){const i=this.#t?f(this.#e.client.select(c).from(e`remote.entities`),this.#e.client.select(c).from(t).where(E(this.#e.client.select({id:c.id}).from(e`remote.entities as remote`).where(e`remote.key = ${t.key}`)))):this.#e.client.select(c).from(t),r=(await this.#e.client.select(c).from(i.as("combined_entities")).where(D(e`combined_entities.scorecards_status = 'OUTDATED'`,e`combined_entities.scorecards_status IS NULL`)).orderBy(e`combined_entities.updated_at ASC`).limit(1).run()).rows[0];return r?O(r):null}async getEntitiesRelations(i={}){const s=this.#t?f(this.#e.client.select(m).from(e`remote.entities_relations`),this.#e.client.select(m).from(y).where(E(this.#e.client.select({id:m.id}).from(e`remote.entities_relations as remote`).where(e`remote.source_key = ${y.sourceKey}`)))):this.#e.client.select(m).from(y),r=this.#e.client.select(m).from(s.as("combined_entities_relations")).$dynamic(),o=this.#e.client.select(m).from(s.as("combined_entities_relations")).$dynamic(),_=S(o,{...i,limit:void 0,skip:void 0,after:void 0,before:void 0}),a=this.#e.client.$count(_),u=i.limit||10,d=S(r,{...i,limit:u+1}),[h,T]=await Promise.all([d.run(),a]),N=h.rows,p=N.length>u;return{items:N.slice(0,u).map(w=>C(w)).filter(w=>w!==null),hasMore:p,total:T}}async getEntityRelationById(i){const o=(await(this.#t?f(this.#e.client.select(m).from(e`remote.entities_relations`).where(n(y.id,i)),this.#e.client.select(m).from(y).where(l(n(y.id,i),E(this.#e.client.select({id:m.id}).from(e`remote.entities_relations as remote`).where(e`remote.id = ${y.id}`))))):this.#e.client.select(m).from(y).where(n(y.id,i))).run()).rows[0];return o?C(o):null}async getEntitiesWithRelations(i={}){return this.#s.getEntitiesWithRelations(i)}async getEntityWithRelationsByKey(i,s){return this.#s.getEntityWithRelationsByKey(i,s)}async getRelationsForEntity(i,s,r){return this.#i.getRelationsForEntity(i,s,r)}async getRelatedEntities(i,s={}){return this.#i.getRelatedEntities(i,s)}async getCatalogFilters({entitiesTypes:i=[],emptyFilters:s=[]}){if(!s.length)return{};try{return await this.#r(i),(s.includes("domains")||s.includes("owners"))&&await this.#n(),await this.#o(s)}catch(r){return console.error("Error fetching catalog filters:",r),{}}finally{await this.#l()}}async#r(i){if(this.#t?await this.#e.client.run(e`
1
+ import{and as l,count as L,eq as n,isNotNull as v,notExists as E,or as D,sql as e}from"drizzle-orm";import{unionAll as f}from"drizzle-orm/sqlite-core";import{logger as b}from"../../../../../tools/notifiers/logger.js";import{VERSION_NOT_SPECIFIED as k}from"@redocly/theme/core/constants";import{applyPagination as S}from"../../../../../providers/database/pagination/index.js";import{FIELDS_TO_SELECT_FOR_ENTITY as c,FIELDS_TO_SELECT_FOR_ENTITY_RELATION as m}from"../utils.js";import{createEntityReadModel as O}from"../../mappers/create-entity-read-model.js";import{createEntityRelation as C}from"../../mappers/create-entity-relation.js";import{entitiesTable as t}from"../../../../../providers/database/databases/catalog-sqlite/schemas/entities-table.js";import{entitiesRelationsTable as y}from"../../../../../providers/database/databases/catalog-sqlite/schemas/entities-relations-table.js";import{CatalogEntitiesRelationsRepository as I}from"./catalog-entities-relations-repository.js";import{CatalogEntitiesBffRepository as g}from"./catalog-entities-bff-repository.js";class j{#e;#t=void 0;#i;#s;constructor(i){this.#e=i,this.#i=new I(this.#e,this.#t||""),this.#s=new g(this.#e,this.#t||"")}async attachDatabase(i){this.#t!==i&&(this.#t=i,await this.#e.client.run(e`ATTACH DATABASE ${i} AS remote`),this.#i=new I(this.#e,i),this.#s=new g(this.#e,i))}async getEntities(i={}){const s=this.#t?f(this.#e.client.select(c).from(e`remote.entities`),this.#e.client.select(c).from(t).where(E(this.#e.client.select({id:c.id}).from(e`remote.entities as remote`).where(e`remote.key = ${t.key}`)))):this.#e.client.select(c).from(t),r=this.#e.client.select(c).from(s.as("combined_entities")),o=this.#e.client.select(c).from(s.as("combined_entities")).$dynamic(),_=S(o,{...i,limit:void 0,skip:void 0,after:void 0,before:void 0}),a=this.#e.client.$count(_),u=r.$dynamic(),d=i.limit||10,h=S(u,{...i,limit:d+1}),[T,N]=await Promise.all([h.run(),a]),p=T.rows,w=p.length>d;return{items:p.slice(0,d).map(R=>O(R)).filter(R=>R!==null),hasMore:w,total:N}}async getEntityKeysAndVersionsBySourceFile(i){const s=this.#t?f(this.#e.client.select({keyVersion:e`key || ':' || COALESCE(version, ${k})`.as("keyVersion")}).from(e`remote.entities`).where(l(e`source_file = ${i}`,e`source = 'file'`,e`key IS NOT NULL`)),this.#e.client.select({keyVersion:e`${t.key} || ':' || COALESCE(${t.version}, ${k})`.as("keyVersion")}).from(t).where(l(n(t.sourceFile,i),n(t.source,"file"),e`${t.key} IS NOT NULL`,E(this.#e.client.select({key:e.raw("key")}).from(e`remote.entities as remote`).where(e`remote.key = ${t.key}`))))):this.#e.client.select({keyVersion:e`${t.key} || ':' || COALESCE(${t.version}, ${k})`.as("keyVersion")}).from(t).where(l(n(t.sourceFile,i),n(t.source,"file"),v(t.key))),r=await this.#e.client.selectDistinct({keyVersion:e`combined_keys_versions.keyVersion`}).from(s.as("combined_keys_versions")).run();return new Set(r.rows.map(o=>o.keyVersion))}async listEntityRevisions(i,s){const r=[n(t.key,i),n(t.isDeleted,!1),...s?[n(t.version,s)]:[]],o=this.#t?f(this.#e.client.select({version:e.raw("version"),revision:e.raw("revision"),isCurrent:e.raw("is_current"),createdAt:e.raw("created_at"),updatedAt:e.raw("updated_at"),isDefaultVersion:e.raw("is_default_version")}).from(e`remote.entities`).where(l(e`key = ${i}`,s?e`version = ${s}`:void 0)),this.#e.client.select({version:t.version,revision:t.revision,isCurrent:t.isCurrent,createdAt:t.createdAt,updatedAt:t.updatedAt,isDefaultVersion:t.isDefaultVersion}).from(t).where(l(...r,E(this.#e.client.select({version:e.raw("version")}).from(e`remote.entities as remote`).where(l(e`remote.key = ${t.key}`,e`remote.version = ${t.version}`,e`remote.revision = ${t.revision}`)))))):this.#e.client.select({version:t.version,revision:t.revision,isCurrent:t.isCurrent,createdAt:t.createdAt,updatedAt:t.updatedAt,isDefaultVersion:t.isDefaultVersion}).from(t).where(l(...r));return(await this.#e.client.select({version:e.raw("version"),revision:e.raw("revision"),isCurrent:e.raw("is_current"),createdAt:e.raw("created_at"),updatedAt:e.raw("updated_at"),isDefaultVersion:e.raw("is_default_version")}).from(o.as("combined_revisions")).orderBy(e.raw("is_current DESC"),e.raw("updated_at DESC"),e.raw("created_at DESC")).run()).rows.map(a=>({version:a.version||null,revision:a.revision??"",isCurrent:a.is_current!==null?!!a.is_current:!1,createdAt:a.created_at||null,updatedAt:a.updated_at||null,isDefaultVersion:a.is_default_version!==null?!!a.is_default_version:!1}))}async getEntitiesCountByTypes(){const i=this.#t?f(this.#e.client.select({type:e`type`}).from(e`remote.entities`).where(l(n(e.raw("is_current"),1),n(e.raw("is_deleted"),!1))),this.#e.client.select({type:t.type}).from(t).where(l(n(t.isCurrent,!0),n(t.isDeleted,!1),E(this.#e.client.select({id:e.raw("id")}).from(e`remote.entities as remote`).where(l(e`remote.key = ${t.key}`,e`remote.is_current = 1`)))))):this.#e.client.select({type:t.type}).from(t).where(l(n(t.isCurrent,!0),n(t.isDeleted,!1)));return this.#e.client.select({type:t.type,count:L()}).from(i.as("combined_entities")).groupBy(t.type).where(n(t.isDeleted,!1))}async getEntityByKey(i){const o=(await(this.#t?f(this.#e.client.select(c).from(e`remote.entities`).where(l(n(t.key,i),n(e.raw("is_current"),1),n(e.raw("is_deleted"),!1))),this.#e.client.select(c).from(t).where(l(n(t.key,i),n(t.isCurrent,!0),n(t.isDeleted,!1),E(this.#e.client.select({id:c.id}).from(e`remote.entities as remote`).where(l(e`remote.key = ${t.key}`,e`remote.is_current = 1`)))))):this.#e.client.select(c).from(t).where(l(n(t.key,i),n(t.isCurrent,!0),n(t.isDeleted,!1)))).run()).rows[0];return o?O(o):null}async getOneOutdatedEntity(){const i=this.#t?f(this.#e.client.select(c).from(e`remote.entities`),this.#e.client.select(c).from(t).where(E(this.#e.client.select({id:c.id}).from(e`remote.entities as remote`).where(e`remote.key = ${t.key}`)))):this.#e.client.select(c).from(t),r=(await this.#e.client.select(c).from(i.as("combined_entities")).where(D(e`combined_entities.scorecards_status = 'OUTDATED'`,e`combined_entities.scorecards_status IS NULL`)).orderBy(e`combined_entities.updated_at ASC`).limit(1).run()).rows[0];return r?O(r):null}async getEntitiesRelations(i={}){const s=this.#t?f(this.#e.client.select(m).from(e`remote.entities_relations`),this.#e.client.select(m).from(y).where(E(this.#e.client.select({id:m.id}).from(e`remote.entities_relations as remote`).where(e`remote.source_key = ${y.sourceKey}`)))):this.#e.client.select(m).from(y),r=this.#e.client.select(m).from(s.as("combined_entities_relations")).$dynamic(),o=this.#e.client.select(m).from(s.as("combined_entities_relations")).$dynamic(),_=S(o,{...i,limit:void 0,skip:void 0,after:void 0,before:void 0}),a=this.#e.client.$count(_),u=i.limit||10,d=S(r,{...i,limit:u+1}),[h,T]=await Promise.all([d.run(),a]),N=h.rows,p=N.length>u;return{items:N.slice(0,u).map(w=>C(w)).filter(w=>w!==null),hasMore:p,total:T}}async getEntityRelationById(i){const o=(await(this.#t?f(this.#e.client.select(m).from(e`remote.entities_relations`).where(n(y.id,i)),this.#e.client.select(m).from(y).where(l(n(y.id,i),E(this.#e.client.select({id:m.id}).from(e`remote.entities_relations as remote`).where(e`remote.id = ${y.id}`))))):this.#e.client.select(m).from(y).where(n(y.id,i))).run()).rows[0];return o?C(o):null}async getEntitiesWithRelations(i={}){return this.#s.getEntitiesWithRelations(i)}async getEntityWithRelationsByKey(i,s){return this.#s.getEntityWithRelationsByKey(i,s)}async getRelationsForEntity(i,s,r){return this.#i.getRelationsForEntity(i,s,r)}async getRelatedEntities(i,s={}){return this.#i.getRelatedEntities(i,s)}async getCatalogFilters({entitiesTypes:i=[],emptyFilters:s=[]}){if(!s.length)return{};try{return await this.#r(i),(s.includes("domains")||s.includes("owners"))&&await this.#n(),await this.#o(s)}catch(r){return console.error("Error fetching catalog filters:",r),{}}finally{await this.#l()}}async#r(i){if(this.#t?await this.#e.client.run(e`
2
2
  CREATE TEMP TABLE IF NOT EXISTS temp_combined_entities AS
3
3
  SELECT
4
4
  e.key,
@@ -77,18 +77,13 @@ import{and as l,count as L,eq as n,isNotNull as v,notExists as E,or as D,sql as
77
77
  AND tag.value != ''
78
78
  GROUP BY tag.value
79
79
  `),i.includes("domains")&&r.push(`
80
- SELECT 'domains' as filter_name, tce.key as value, COUNT(DISTINCT tfe.key) as count
80
+ SELECT 'domains' as filter_name, tcr.source_key as value, COUNT(DISTINCT tfe.key) as count
81
81
  FROM temp_combined_relations tcr
82
- INNER JOIN temp_filtered_entities tfe ON (
83
- tfe.key = tcr.source_key OR tfe.key = tcr.target_key
84
- )
85
- INNER JOIN temp_combined_entities tce ON (
86
- (tfe.key = tcr.source_key AND tce.key = tcr.target_key)
87
- OR
88
- (tfe.key = tcr.target_key AND tce.key = tcr.source_key)
89
- )
82
+ INNER JOIN temp_filtered_entities tfe ON tfe.key = tcr.target_key
83
+ INNER JOIN temp_combined_entities tce ON tce.key = tcr.source_key
90
84
  WHERE tce.type = 'domain'
91
- GROUP BY tce.key
85
+ AND tcr.source_to_target_relation = 'hasParts'
86
+ GROUP BY tcr.source_key
92
87
  `),i.includes("owners")&&r.push(`
93
88
  SELECT 'owners' as filter_name, owner_key as value, COUNT(DISTINCT entity_key) as count
94
89
  FROM (
@@ -17,6 +17,9 @@ export declare const RbacDecorator: () => {
17
17
  any: {
18
18
  leave(node: Record<string, unknown>, ctx: any): void;
19
19
  };
20
+ ref: {
21
+ leave(node: Record<string, unknown>): void;
22
+ };
20
23
  };
21
24
  export declare function injectDecoratorIntoConfig(config: RawUniversalConfig, outputRelativePath: string, cwd: string): RawUniversalConfig;
22
25
  //# sourceMappingURL=decorators.d.ts.map
@@ -1 +1 @@
1
- import l from"node:path";import{REDOCLY_TEAMS_RBAC as b}from"@redocly/config";import{slash as k}from"../../../utils/path/slash.js";function u(a,r,o){if(!r)throw new Error("Visitor required");if(a){a.description&&r(a,"description",o.location.absolutePointer+"/description",o);for(const t in a["x-enumDescriptions"])r(a["x-enumDescriptions"],t,o.location.absolutePointer+"/x-enumDescriptions/"+t,o)}}const d=/^[a-zA-Z0-9\s\-,.!\?:;'"()/]+$/,s=({outputRelativePath:a,cwd:r})=>{const o=function(n,m,f,p){const{node:e}=p.resolve(n[m]);if(!e||typeof e!="string"||e.match(d))return;const i=p.getVisitorData();i.markdocChunks=i.markdocChunks||[],i.markdocChunks.push({node:n,pointer:k(l.relative(r,f)),markdown:e,relativePath:a,key:m})};return{any:{leave(t,n){u(t,o,n)}},ref:{leave(t,n){u(t,o,n)}}}},c=()=>{const a={};return{Tag:{enter(r){r?.["x-rbac"]&&(a[String(r.name)]=r["x-rbac"])}},any:{leave(r,o){if((o.type.name==="Operation"||o.type.name==="Webhook")&&"tags"in r&&Array.isArray(r.tags))for(const t of r.tags)a[t]&&(r["x-rbac"]=r["x-rbac"]||a[t]);r?.["x-rbac"]&&(r[b]=r["x-rbac"],delete r["x-rbac"])}}}};function x(a,r,o){const t={id:"markdown",decorators:{oas2:{markdown:s,rbac:c},oas3:{markdown:s,rbac:c},async3:{markdown:s,rbac:c}}};return{...a,decorators:{"markdown/rbac":"on","markdown/markdown":{outputRelativePath:r,cwd:o},...a.decorators||{}},plugins:[...a.plugins||[],t]}}export{s as MarkdownParserDecorator,c as RbacDecorator,x as injectDecoratorIntoConfig};
1
+ import b from"node:path";import{REDOCLY_TEAMS_RBAC as u}from"@redocly/config";import{slash as k}from"../../../utils/path/slash.js";function f(a,r,t){if(!r)throw new Error("Visitor required");if(a){a.description&&r(a,"description",t.location.absolutePointer+"/description",t);for(const o in a["x-enumDescriptions"])r(a["x-enumDescriptions"],o,t.location.absolutePointer+"/x-enumDescriptions/"+o,t)}}const g=/^[a-zA-Z0-9\s\-,.!\?:;'"()/]+$/,s=({outputRelativePath:a,cwd:r})=>{const t=function(e,m,l,p){const{node:n}=p.resolve(e[m]);if(!n||typeof n!="string"||n.match(g))return;const i=p.getVisitorData();i.markdocChunks=i.markdocChunks||[],i.markdocChunks.push({node:e,pointer:k(b.relative(r,l)),markdown:n,relativePath:a,key:m})};return{any:{leave(o,e){f(o,t,e)}},ref:{leave(o,e){f(o,t,e)}}}},c=()=>{const a={};return{Tag:{enter(r){r?.["x-rbac"]&&(a[String(r.name)]=r["x-rbac"])}},any:{leave(r,t){if((t.type.name==="Operation"||t.type.name==="Webhook")&&"tags"in r&&Array.isArray(r.tags))for(const o of r.tags)a[o]&&(r["x-rbac"]=r["x-rbac"]||a[o]);r?.["x-rbac"]&&(r[u]=r["x-rbac"],delete r["x-rbac"])}},ref:{leave(r){r?.["x-rbac"]&&(r[u]=r["x-rbac"],delete r["x-rbac"])}}}};function h(a,r,t){const o={id:"markdown",decorators:{oas2:{markdown:s,rbac:c},oas3:{markdown:s,rbac:c},async3:{markdown:s,rbac:c}}};return{...a,decorators:{"markdown/rbac":"on","markdown/markdown":{outputRelativePath:r,cwd:t},...a.decorators||{}},plugins:[...a.plugins||[],o]}}export{s as MarkdownParserDecorator,c as RbacDecorator,h as injectDecoratorIntoConfig};
@@ -1 +1 @@
1
- import{logger as r}from"../../tools/notifiers/logger.js";import{DatabaseClient as g}from"./client.js";import{DatabasePathGenerator as p}from"./database-path-generator.js";import{retryAsyncOperation as h}from"./utils/retry-async-operation.js";class u{async initialize({removeExisting:a,baseDbDir:t,runWithPragmaWalWriteOptimization:s,databaseName:o,additionalFolder:l,migrationsFolder:c}){r.info("Initializing local database client...");const m=r.startTiming(),{databasePath:e}=await p.prepareDatabasePath({baseDir:t,databaseName:o,additionalFolder:l,removeExisting:a}),n={url:`file:${e}`},i=await g.init(n,{runWithPragmaWalWriteOptimization:s});return await i.migrate(t,c),r.infoTime(m,"Local database client initialized"),{client:i,path:e}}}class w{#t;#a;constructor(a){this.#t=a?.skipLogs??!1,this.#a=this.#t?void 0:r}async initialize({removeExisting:a,baseDbDir:t,syncUrl:s,authToken:o,databaseName:l,additionalFolder:c,migrationsFolder:m}){this.#a?.info("Initializing remote database client...");const e=this.#a?.startTiming();return await h(async()=>{const{databasePath:n}=await p.prepareDatabasePath({baseDir:t,databaseName:l,additionalFolder:c,removeExisting:a}),i=await g.init({url:`file:${n}`,syncUrl:s,authToken:o});return await i.migrate(t,m),this.#a?.infoTime(e??"","Remote database client initialized"),{client:i,path:n}},{maxRetries:3,retryStrategy:"exponential",delay:1e3,logger:this.#a,messages:{retry:"Retrying remote database client initialization",maxRetriesReached:"Max retries reached, remote database client initialization failed"}})}}export{u as LocalDatabaseInitializationStrategy,w as RemoteDatabaseInitializationStrategy};
1
+ import{logger as n}from"../../tools/notifiers/logger.js";import{DatabaseClient as g}from"./client.js";import{DatabasePathGenerator as p}from"./database-path-generator.js";import{retryAsyncOperation as f}from"./utils/retry-async-operation.js";import{SqldNotRunningError as d}from"./sqld-not-running-error.js";class R{async initialize({removeExisting:i,baseDbDir:a,runWithPragmaWalWriteOptimization:o,databaseName:s,additionalFolder:l,migrationsFolder:c}){n.info("Initializing local database client...");const m=n.startTiming(),{databasePath:r}=await p.prepareDatabasePath({baseDir:a,databaseName:s,additionalFolder:l,removeExisting:i}),t={url:`file:${r}`},e=await g.init(t,{runWithPragmaWalWriteOptimization:o});return await e.migrate(a,c),n.infoTime(m,"Local database client initialized"),{client:e,path:r}}}class x{#i;#t;constructor(i){this.#i=i?.skipLogs??!1,this.#t=this.#i?void 0:n}async initialize({removeExisting:i,baseDbDir:a,syncUrl:o,authToken:s,databaseName:l,additionalFolder:c,migrationsFolder:m}){this.#t?.info("Initializing remote database client...");const r=this.#t?.startTiming();return await f(async()=>{try{const{databasePath:t}=await p.prepareDatabasePath({baseDir:a,databaseName:l,additionalFolder:c,removeExisting:i}),e=await g.init({url:`file:${t}`,syncUrl:o,authToken:s});return await e.migrate(a,m),this.#t?.infoTime(r??"","Remote database client initialized"),{client:e,path:t}}catch(t){throw d.isSqldNotRunningError(t)?new d("SQLD server is not running yet, wait for production deployment",{cause:t}):t}},{maxRetries:3,retryStrategy:"exponential",delay:1e3,logger:this.#t,messages:{retry:"Retrying remote database client initialization",maxRetriesReached:"Max retries reached, remote database client initialization failed"}})}}export{R as LocalDatabaseInitializationStrategy,x as RemoteDatabaseInitializationStrategy};
@@ -0,0 +1,5 @@
1
+ export declare class SqldNotRunningError extends Error {
2
+ constructor(message: string, options?: ErrorOptions);
3
+ static isSqldNotRunningError(error: unknown): boolean;
4
+ }
5
+ //# sourceMappingURL=sqld-not-running-error.d.ts.map
@@ -0,0 +1 @@
1
+ class e extends Error{constructor(r,n){super(r,n),this.name="SqldNotRunningError"}static isSqldNotRunningError(r){return r instanceof Error?r.message.includes('CREATE TABLE IF NOT EXISTS "__drizzle_migrations"')||r.message.includes("sync error: connection error:"):!1}}export{e as SqldNotRunningError};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/realm",
3
- "version": "0.129.0",
3
+ "version": "0.130.0-next.0",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "bin": {
@@ -33,7 +33,7 @@
33
33
  "@opentelemetry/semantic-conventions": "1.34.0",
34
34
  "@redocly/ajv": "8.17.1",
35
35
  "@redocly/openapi-core": "2.14.3",
36
- "@shikijs/transformers": "^1.22.2",
36
+ "@shikijs/transformers": "3.21.0",
37
37
  "@tanstack/react-query": "5.62.3",
38
38
  "@tanstack/react-table": "8.21.3",
39
39
  "@tanstack/react-virtual": "3.13.0",
@@ -79,7 +79,7 @@
79
79
  "react-select": "5.10.1",
80
80
  "reactjs-popup": "2.0.6",
81
81
  "semver": "7.7.3",
82
- "shiki": "1.24.4",
82
+ "shiki": "3.21.0",
83
83
  "simple-git": "3.20.0",
84
84
  "sitemap": "7.1.1",
85
85
  "stream-http": "3.2.0",
@@ -93,14 +93,14 @@
93
93
  "xml-crypto": "6.0.1",
94
94
  "xpath": "0.0.34",
95
95
  "yaml-ast-parser": "0.0.43",
96
+ "@redocly/asyncapi-docs": "1.7.0-next.0",
96
97
  "@redocly/config": "0.41.2",
97
- "@redocly/asyncapi-docs": "1.6.0",
98
- "@redocly/openapi-docs": "3.17.0",
99
- "@redocly/realm-asyncapi-sdk": "0.7.0",
100
- "@redocly/theme": "0.61.0",
101
- "@redocly/graphql-docs": "1.6.0",
102
- "@redocly/portal-plugin-mock-server": "0.14.0",
103
- "@redocly/portal-legacy-ui": "0.12.0"
98
+ "@redocly/graphql-docs": "1.7.0-next.0",
99
+ "@redocly/openapi-docs": "3.18.0-next.0",
100
+ "@redocly/portal-legacy-ui": "0.13.0-next.0",
101
+ "@redocly/portal-plugin-mock-server": "0.15.0-next.0",
102
+ "@redocly/realm-asyncapi-sdk": "0.8.0-next.0",
103
+ "@redocly/theme": "0.62.0-next.0"
104
104
  },
105
105
  "peerDependencies": {
106
106
  "react": "19.2.3",