@harborclient/core 0.1.1
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.
- package/CHANGELOG.md +13 -0
- package/LICENSE +21 -0
- package/README.md +36 -0
- package/dist/ai/chatComposer.d.ts +12 -0
- package/dist/ai/chatComposer.d.ts.map +1 -0
- package/dist/ai/chatComposer.js +20 -0
- package/dist/ai/chatComposer.js.map +1 -0
- package/dist/ai/chatContext.d.ts +181 -0
- package/dist/ai/chatContext.d.ts.map +1 -0
- package/dist/ai/chatContext.js +168 -0
- package/dist/ai/chatContext.js.map +1 -0
- package/dist/ai/chatStepMode.d.ts +43 -0
- package/dist/ai/chatStepMode.d.ts.map +1 -0
- package/dist/ai/chatStepMode.js +64 -0
- package/dist/ai/chatStepMode.js.map +1 -0
- package/dist/ai/chatTitle.d.ts +35 -0
- package/dist/ai/chatTitle.d.ts.map +1 -0
- package/dist/ai/chatTitle.js +109 -0
- package/dist/ai/chatTitle.js.map +1 -0
- package/dist/ai/gitCommitMessage.d.ts +47 -0
- package/dist/ai/gitCommitMessage.d.ts.map +1 -0
- package/dist/ai/gitCommitMessage.js +139 -0
- package/dist/ai/gitCommitMessage.js.map +1 -0
- package/dist/ai/models.d.ts +115 -0
- package/dist/ai/models.d.ts.map +1 -0
- package/dist/ai/models.js +209 -0
- package/dist/ai/models.js.map +1 -0
- package/dist/ai/requestUpdate.d.ts +273 -0
- package/dist/ai/requestUpdate.d.ts.map +1 -0
- package/dist/ai/requestUpdate.js +274 -0
- package/dist/ai/requestUpdate.js.map +1 -0
- package/dist/ai/scriptAsk.d.ts +115 -0
- package/dist/ai/scriptAsk.d.ts.map +1 -0
- package/dist/ai/scriptAsk.js +243 -0
- package/dist/ai/scriptAsk.js.map +1 -0
- package/dist/ai/scriptReferences.d.ts +377 -0
- package/dist/ai/scriptReferences.d.ts.map +1 -0
- package/dist/ai/scriptReferences.js +787 -0
- package/dist/ai/scriptReferences.js.map +1 -0
- package/dist/ai/settings.d.ts +8 -0
- package/dist/ai/settings.d.ts.map +1 -0
- package/dist/ai/settings.js +11 -0
- package/dist/ai/settings.js.map +1 -0
- package/dist/ai/tools/ITool.d.ts +26 -0
- package/dist/ai/tools/ITool.d.ts.map +1 -0
- package/dist/ai/tools/ITool.js +2 -0
- package/dist/ai/tools/ITool.js.map +1 -0
- package/dist/ai/tools/createCollection.d.ts +164 -0
- package/dist/ai/tools/createCollection.d.ts.map +1 -0
- package/dist/ai/tools/createCollection.js +36 -0
- package/dist/ai/tools/createCollection.js.map +1 -0
- package/dist/ai/tools/createFolder.d.ts +50 -0
- package/dist/ai/tools/createFolder.d.ts.map +1 -0
- package/dist/ai/tools/createFolder.js +34 -0
- package/dist/ai/tools/createFolder.js.map +1 -0
- package/dist/ai/tools/createRequest.d.ts +210 -0
- package/dist/ai/tools/createRequest.d.ts.map +1 -0
- package/dist/ai/tools/createRequest.js +88 -0
- package/dist/ai/tools/createRequest.js.map +1 -0
- package/dist/ai/tools/getActiveRequest.d.ts +20 -0
- package/dist/ai/tools/getActiveRequest.d.ts.map +1 -0
- package/dist/ai/tools/getActiveRequest.js +16 -0
- package/dist/ai/tools/getActiveRequest.js.map +1 -0
- package/dist/ai/tools/getActiveRequestDetails.d.ts +20 -0
- package/dist/ai/tools/getActiveRequestDetails.d.ts.map +1 -0
- package/dist/ai/tools/getActiveRequestDetails.js +16 -0
- package/dist/ai/tools/getActiveRequestDetails.js.map +1 -0
- package/dist/ai/tools/getActiveResponse.d.ts +39 -0
- package/dist/ai/tools/getActiveResponse.d.ts.map +1 -0
- package/dist/ai/tools/getActiveResponse.js +30 -0
- package/dist/ai/tools/getActiveResponse.js.map +1 -0
- package/dist/ai/tools/getActiveResponseSummary.d.ts +20 -0
- package/dist/ai/tools/getActiveResponseSummary.d.ts.map +1 -0
- package/dist/ai/tools/getActiveResponseSummary.js +16 -0
- package/dist/ai/tools/getActiveResponseSummary.js.map +1 -0
- package/dist/ai/tools/getActiveTerminal.d.ts +20 -0
- package/dist/ai/tools/getActiveTerminal.d.ts.map +1 -0
- package/dist/ai/tools/getActiveTerminal.js +16 -0
- package/dist/ai/tools/getActiveTerminal.js.map +1 -0
- package/dist/ai/tools/getActiveTerminalLines.d.ts +50 -0
- package/dist/ai/tools/getActiveTerminalLines.d.ts.map +1 -0
- package/dist/ai/tools/getActiveTerminalLines.js +37 -0
- package/dist/ai/tools/getActiveTerminalLines.js.map +1 -0
- package/dist/ai/tools/getCollection.d.ts +31 -0
- package/dist/ai/tools/getCollection.d.ts.map +1 -0
- package/dist/ai/tools/getCollection.js +28 -0
- package/dist/ai/tools/getCollection.js.map +1 -0
- package/dist/ai/tools/getFolder.d.ts +31 -0
- package/dist/ai/tools/getFolder.d.ts.map +1 -0
- package/dist/ai/tools/getFolder.js +28 -0
- package/dist/ai/tools/getFolder.js.map +1 -0
- package/dist/ai/tools/getMarkdownDocument.d.ts +40 -0
- package/dist/ai/tools/getMarkdownDocument.d.ts.map +1 -0
- package/dist/ai/tools/getMarkdownDocument.js +31 -0
- package/dist/ai/tools/getMarkdownDocument.js.map +1 -0
- package/dist/ai/tools/getRequest.d.ts +31 -0
- package/dist/ai/tools/getRequest.d.ts.map +1 -0
- package/dist/ai/tools/getRequest.js +28 -0
- package/dist/ai/tools/getRequest.js.map +1 -0
- package/dist/ai/tools/getSelectedCollection.d.ts +20 -0
- package/dist/ai/tools/getSelectedCollection.d.ts.map +1 -0
- package/dist/ai/tools/getSelectedCollection.js +16 -0
- package/dist/ai/tools/getSelectedCollection.js.map +1 -0
- package/dist/ai/tools/getSidebarRequest.d.ts +20 -0
- package/dist/ai/tools/getSidebarRequest.d.ts.map +1 -0
- package/dist/ai/tools/getSidebarRequest.js +16 -0
- package/dist/ai/tools/getSidebarRequest.js.map +1 -0
- package/dist/ai/tools/gitCommits.d.ts +50 -0
- package/dist/ai/tools/gitCommits.d.ts.map +1 -0
- package/dist/ai/tools/gitCommits.js +37 -0
- package/dist/ai/tools/gitCommits.js.map +1 -0
- package/dist/ai/tools/gitDiff.d.ts +70 -0
- package/dist/ai/tools/gitDiff.d.ts.map +1 -0
- package/dist/ai/tools/gitDiff.js +49 -0
- package/dist/ai/tools/gitDiff.js.map +1 -0
- package/dist/ai/tools/gitFileDiff.d.ts +80 -0
- package/dist/ai/tools/gitFileDiff.d.ts.map +1 -0
- package/dist/ai/tools/gitFileDiff.js +55 -0
- package/dist/ai/tools/gitFileDiff.js.map +1 -0
- package/dist/ai/tools/gitFileInfo.d.ts +60 -0
- package/dist/ai/tools/gitFileInfo.d.ts.map +1 -0
- package/dist/ai/tools/gitFileInfo.js +43 -0
- package/dist/ai/tools/gitFileInfo.js.map +1 -0
- package/dist/ai/tools/gitRepoInfo.d.ts +40 -0
- package/dist/ai/tools/gitRepoInfo.d.ts.map +1 -0
- package/dist/ai/tools/gitRepoInfo.js +31 -0
- package/dist/ai/tools/gitRepoInfo.js.map +1 -0
- package/dist/ai/tools/index.d.ts +1260 -0
- package/dist/ai/tools/index.d.ts.map +1 -0
- package/dist/ai/tools/index.js +100 -0
- package/dist/ai/tools/index.js.map +1 -0
- package/dist/ai/tools/listCollections.d.ts +20 -0
- package/dist/ai/tools/listCollections.d.ts.map +1 -0
- package/dist/ai/tools/listCollections.js +16 -0
- package/dist/ai/tools/listCollections.js.map +1 -0
- package/dist/ai/tools/listEnvironments.d.ts +20 -0
- package/dist/ai/tools/listEnvironments.d.ts.map +1 -0
- package/dist/ai/tools/listEnvironments.js +16 -0
- package/dist/ai/tools/listEnvironments.js.map +1 -0
- package/dist/ai/tools/listRequests.d.ts +40 -0
- package/dist/ai/tools/listRequests.d.ts.map +1 -0
- package/dist/ai/tools/listRequests.js +28 -0
- package/dist/ai/tools/listRequests.js.map +1 -0
- package/dist/ai/tools/queryResponseBody.d.ts +50 -0
- package/dist/ai/tools/queryResponseBody.d.ts.map +1 -0
- package/dist/ai/tools/queryResponseBody.js +37 -0
- package/dist/ai/tools/queryResponseBody.js.map +1 -0
- package/dist/ai/tools/schemas.d.ts +152 -0
- package/dist/ai/tools/schemas.d.ts.map +1 -0
- package/dist/ai/tools/schemas.js +81 -0
- package/dist/ai/tools/schemas.js.map +1 -0
- package/dist/ai/tools/searchDocs.d.ts +64 -0
- package/dist/ai/tools/searchDocs.d.ts.map +1 -0
- package/dist/ai/tools/searchDocs.js +44 -0
- package/dist/ai/tools/searchDocs.js.map +1 -0
- package/dist/ai/tools/sendActiveRequest.d.ts +39 -0
- package/dist/ai/tools/sendActiveRequest.d.ts.map +1 -0
- package/dist/ai/tools/sendActiveRequest.js +30 -0
- package/dist/ai/tools/sendActiveRequest.js.map +1 -0
- package/dist/ai/tools/setActiveEnvironment.d.ts +49 -0
- package/dist/ai/tools/setActiveEnvironment.d.ts.map +1 -0
- package/dist/ai/tools/setActiveEnvironment.js +36 -0
- package/dist/ai/tools/setActiveEnvironment.js.map +1 -0
- package/dist/ai/tools/systemPrompt.d.ts +5 -0
- package/dist/ai/tools/systemPrompt.d.ts.map +1 -0
- package/dist/ai/tools/systemPrompt.js +34 -0
- package/dist/ai/tools/systemPrompt.js.map +1 -0
- package/dist/ai/tools/terminalExec.d.ts +40 -0
- package/dist/ai/tools/terminalExec.d.ts.map +1 -0
- package/dist/ai/tools/terminalExec.js +31 -0
- package/dist/ai/tools/terminalExec.js.map +1 -0
- package/dist/ai/tools/types.d.ts +68 -0
- package/dist/ai/tools/types.d.ts.map +1 -0
- package/dist/ai/tools/types.js +2 -0
- package/dist/ai/tools/types.js.map +1 -0
- package/dist/ai/tools/updateActiveRequest.d.ts +279 -0
- package/dist/ai/tools/updateActiveRequest.d.ts.map +1 -0
- package/dist/ai/tools/updateActiveRequest.js +175 -0
- package/dist/ai/tools/updateActiveRequest.js.map +1 -0
- package/dist/ai/tools/updateRequestScript.d.ts +93 -0
- package/dist/ai/tools/updateRequestScript.d.ts.map +1 -0
- package/dist/ai/tools/updateRequestScript.js +57 -0
- package/dist/ai/tools/updateRequestScript.js.map +1 -0
- package/dist/auth.d.ts +192 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +294 -0
- package/dist/auth.js.map +1 -0
- package/dist/bodyRawSend.d.ts +25 -0
- package/dist/bodyRawSend.d.ts.map +1 -0
- package/dist/bodyRawSend.js +61 -0
- package/dist/bodyRawSend.js.map +1 -0
- package/dist/builtinThemes.d.ts +33 -0
- package/dist/builtinThemes.d.ts.map +1 -0
- package/dist/builtinThemes.js +40 -0
- package/dist/builtinThemes.js.map +1 -0
- package/dist/codeEditorSettings.d.ts +2 -0
- package/dist/codeEditorSettings.d.ts.map +1 -0
- package/dist/codeEditorSettings.js +2 -0
- package/dist/codeEditorSettings.js.map +1 -0
- package/dist/collectionContainerOrder.d.ts +42 -0
- package/dist/collectionContainerOrder.d.ts.map +1 -0
- package/dist/collectionContainerOrder.js +62 -0
- package/dist/collectionContainerOrder.js.map +1 -0
- package/dist/collectionRunner.d.ts +510 -0
- package/dist/collectionRunner.d.ts.map +1 -0
- package/dist/collectionRunner.js +296 -0
- package/dist/collectionRunner.js.map +1 -0
- package/dist/contrast.d.ts +16 -0
- package/dist/contrast.d.ts.map +1 -0
- package/dist/contrast.js +51 -0
- package/dist/contrast.js.map +1 -0
- package/dist/cookies/CookieJar.d.ts +151 -0
- package/dist/cookies/CookieJar.d.ts.map +1 -0
- package/dist/cookies/CookieJar.js +318 -0
- package/dist/cookies/CookieJar.js.map +1 -0
- package/dist/deepLink.d.ts +98 -0
- package/dist/deepLink.d.ts.map +1 -0
- package/dist/deepLink.js +211 -0
- package/dist/deepLink.js.map +1 -0
- package/dist/environmentVariables.d.ts +34 -0
- package/dist/environmentVariables.d.ts.map +1 -0
- package/dist/environmentVariables.js +56 -0
- package/dist/environmentVariables.js.map +1 -0
- package/dist/filestore/index.d.ts +16 -0
- package/dist/filestore/index.d.ts.map +1 -0
- package/dist/filestore/index.js +16 -0
- package/dist/filestore/index.js.map +1 -0
- package/dist/filestore/parse.d.ts +44 -0
- package/dist/filestore/parse.d.ts.map +1 -0
- package/dist/filestore/parse.js +80 -0
- package/dist/filestore/parse.js.map +1 -0
- package/dist/filestore/schemas.d.ts +1612 -0
- package/dist/filestore/schemas.d.ts.map +1 -0
- package/dist/filestore/schemas.js +586 -0
- package/dist/filestore/schemas.js.map +1 -0
- package/dist/filestore/snippet.d.ts +10 -0
- package/dist/filestore/snippet.d.ts.map +1 -0
- package/dist/filestore/snippet.js +43 -0
- package/dist/filestore/snippet.js.map +1 -0
- package/dist/filestore/storageSchemas.d.ts +123 -0
- package/dist/filestore/storageSchemas.d.ts.map +1 -0
- package/dist/filestore/storageSchemas.js +94 -0
- package/dist/filestore/storageSchemas.js.map +1 -0
- package/dist/filestore/stringify.d.ts +59 -0
- package/dist/filestore/stringify.d.ts.map +1 -0
- package/dist/filestore/stringify.js +103 -0
- package/dist/filestore/stringify.js.map +1 -0
- package/dist/filestore/validate.d.ts +60 -0
- package/dist/filestore/validate.d.ts.map +1 -0
- package/dist/filestore/validate.js +118 -0
- package/dist/filestore/validate.js.map +1 -0
- package/dist/filestore/variables.d.ts +9 -0
- package/dist/filestore/variables.d.ts.map +1 -0
- package/dist/filestore/variables.js +15 -0
- package/dist/filestore/variables.js.map +1 -0
- package/dist/formData.d.ts +2 -0
- package/dist/formData.d.ts.map +1 -0
- package/dist/formData.js +2 -0
- package/dist/formData.js.map +1 -0
- package/dist/generalSettings.d.ts +22 -0
- package/dist/generalSettings.d.ts.map +1 -0
- package/dist/generalSettings.js +188 -0
- package/dist/generalSettings.js.map +1 -0
- package/dist/gitHttpErrors.d.ts +125 -0
- package/dist/gitHttpErrors.d.ts.map +1 -0
- package/dist/gitHttpErrors.js +271 -0
- package/dist/gitHttpErrors.js.map +1 -0
- package/dist/gitSidebarExpansion.d.ts +22 -0
- package/dist/gitSidebarExpansion.d.ts.map +1 -0
- package/dist/gitSidebarExpansion.js +16 -0
- package/dist/gitSidebarExpansion.js.map +1 -0
- package/dist/gitUrl.d.ts +39 -0
- package/dist/gitUrl.d.ts.map +1 -0
- package/dist/gitUrl.js +105 -0
- package/dist/gitUrl.js.map +1 -0
- package/dist/harborclientExport.d.ts +23 -0
- package/dist/harborclientExport.d.ts.map +1 -0
- package/dist/harborclientExport.js +39 -0
- package/dist/harborclientExport.js.map +1 -0
- package/dist/highContrastPalette.d.ts +91 -0
- package/dist/highContrastPalette.d.ts.map +1 -0
- package/dist/highContrastPalette.js +118 -0
- package/dist/highContrastPalette.js.map +1 -0
- package/dist/httpHeaders.d.ts +2 -0
- package/dist/httpHeaders.d.ts.map +1 -0
- package/dist/httpHeaders.js +2 -0
- package/dist/httpHeaders.js.map +1 -0
- package/dist/httpMethod.d.ts +9 -0
- package/dist/httpMethod.d.ts.map +1 -0
- package/dist/httpMethod.js +23 -0
- package/dist/httpMethod.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/ICookieJar.d.ts +41 -0
- package/dist/interfaces/ICookieJar.d.ts.map +1 -0
- package/dist/interfaces/ICookieJar.js +2 -0
- package/dist/interfaces/ICookieJar.js.map +1 -0
- package/dist/interfaces/IScriptRunner.d.ts +20 -0
- package/dist/interfaces/IScriptRunner.d.ts.map +1 -0
- package/dist/interfaces/IScriptRunner.js +2 -0
- package/dist/interfaces/IScriptRunner.js.map +1 -0
- package/dist/interfaces/PluginHooks.d.ts +24 -0
- package/dist/interfaces/PluginHooks.d.ts.map +1 -0
- package/dist/interfaces/PluginHooks.js +2 -0
- package/dist/interfaces/PluginHooks.js.map +1 -0
- package/dist/interfaces/SettingsProvider.d.ts +20 -0
- package/dist/interfaces/SettingsProvider.d.ts.map +1 -0
- package/dist/interfaces/SettingsProvider.js +2 -0
- package/dist/interfaces/SettingsProvider.js.map +1 -0
- package/dist/interfaces/index.d.ts +5 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +2 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/mcpToolNames.d.ts +27 -0
- package/dist/mcpToolNames.d.ts.map +1 -0
- package/dist/mcpToolNames.js +41 -0
- package/dist/mcpToolNames.js.map +1 -0
- package/dist/multipartRaw.d.ts +85 -0
- package/dist/multipartRaw.d.ts.map +1 -0
- package/dist/multipartRaw.js +244 -0
- package/dist/multipartRaw.js.map +1 -0
- package/dist/network/executeHttpSend.d.ts +39 -0
- package/dist/network/executeHttpSend.d.ts.map +1 -0
- package/dist/network/executeHttpSend.js +60 -0
- package/dist/network/executeHttpSend.js.map +1 -0
- package/dist/pageSidebarSection.d.ts +35 -0
- package/dist/pageSidebarSection.d.ts.map +1 -0
- package/dist/pageSidebarSection.js +76 -0
- package/dist/pageSidebarSection.js.map +1 -0
- package/dist/parseJson.d.ts +8 -0
- package/dist/parseJson.d.ts.map +1 -0
- package/dist/parseJson.js +17 -0
- package/dist/parseJson.js.map +1 -0
- package/dist/plugin/catalog.d.ts +229 -0
- package/dist/plugin/catalog.d.ts.map +1 -0
- package/dist/plugin/catalog.js +248 -0
- package/dist/plugin/catalog.js.map +1 -0
- package/dist/plugin/catalogCategories.d.ts +30 -0
- package/dist/plugin/catalogCategories.d.ts.map +1 -0
- package/dist/plugin/catalogCategories.js +88 -0
- package/dist/plugin/catalogCategories.js.map +1 -0
- package/dist/plugin/customThemeExport.d.ts +95 -0
- package/dist/plugin/customThemeExport.d.ts.map +1 -0
- package/dist/plugin/customThemeExport.js +264 -0
- package/dist/plugin/customThemeExport.js.map +1 -0
- package/dist/plugin/databaseTypes.d.ts +90 -0
- package/dist/plugin/databaseTypes.d.ts.map +1 -0
- package/dist/plugin/databaseTypes.js +2 -0
- package/dist/plugin/databaseTypes.js.map +1 -0
- package/dist/plugin/githubRaw.d.ts +54 -0
- package/dist/plugin/githubRaw.d.ts.map +1 -0
- package/dist/plugin/githubRaw.js +138 -0
- package/dist/plugin/githubRaw.js.map +1 -0
- package/dist/plugin/httpRequest.d.ts +17 -0
- package/dist/plugin/httpRequest.d.ts.map +1 -0
- package/dist/plugin/httpRequest.js +45 -0
- package/dist/plugin/httpRequest.js.map +1 -0
- package/dist/plugin/importHandlers.d.ts +65 -0
- package/dist/plugin/importHandlers.d.ts.map +1 -0
- package/dist/plugin/importHandlers.js +2 -0
- package/dist/plugin/importHandlers.js.map +1 -0
- package/dist/plugin/pluginDatabaseApi.d.ts +39 -0
- package/dist/plugin/pluginDatabaseApi.d.ts.map +1 -0
- package/dist/plugin/pluginDatabaseApi.js +45 -0
- package/dist/plugin/pluginDatabaseApi.js.map +1 -0
- package/dist/plugin/pluginSurface.d.ts +20 -0
- package/dist/plugin/pluginSurface.d.ts.map +1 -0
- package/dist/plugin/pluginSurface.js +31 -0
- package/dist/plugin/pluginSurface.js.map +1 -0
- package/dist/plugin/stripPluginScreenshotImagesFromMarkdown.d.ts +9 -0
- package/dist/plugin/stripPluginScreenshotImagesFromMarkdown.d.ts.map +1 -0
- package/dist/plugin/stripPluginScreenshotImagesFromMarkdown.js +132 -0
- package/dist/plugin/stripPluginScreenshotImagesFromMarkdown.js.map +1 -0
- package/dist/plugin/themeCategory.d.ts +62 -0
- package/dist/plugin/themeCategory.d.ts.map +1 -0
- package/dist/plugin/themeCategory.js +84 -0
- package/dist/plugin/themeCategory.js.map +1 -0
- package/dist/plugin/types.d.ts +415 -0
- package/dist/plugin/types.d.ts.map +1 -0
- package/dist/plugin/types.js +81 -0
- package/dist/plugin/types.js.map +1 -0
- package/dist/queryParams.d.ts +63 -0
- package/dist/queryParams.d.ts.map +1 -0
- package/dist/queryParams.js +170 -0
- package/dist/queryParams.js.map +1 -0
- package/dist/requestEditorTab.d.ts +24 -0
- package/dist/requestEditorTab.d.ts.map +1 -0
- package/dist/requestEditorTab.js +44 -0
- package/dist/requestEditorTab.js.map +1 -0
- package/dist/requestRunner/RequestRunner.d.ts +39 -0
- package/dist/requestRunner/RequestRunner.d.ts.map +1 -0
- package/dist/requestRunner/RequestRunner.js +298 -0
- package/dist/requestRunner/RequestRunner.js.map +1 -0
- package/dist/requestRunner/helpers.d.ts +52 -0
- package/dist/requestRunner/helpers.d.ts.map +1 -0
- package/dist/requestRunner/helpers.js +195 -0
- package/dist/requestRunner/helpers.js.map +1 -0
- package/dist/requestRunner/index.d.ts +7 -0
- package/dist/requestRunner/index.d.ts.map +1 -0
- package/dist/requestRunner/index.js +6 -0
- package/dist/requestRunner/index.js.map +1 -0
- package/dist/requestRunner/types.d.ts +148 -0
- package/dist/requestRunner/types.d.ts.map +1 -0
- package/dist/requestRunner/types.js +2 -0
- package/dist/requestRunner/types.js.map +1 -0
- package/dist/requestTags.d.ts +22 -0
- package/dist/requestTags.d.ts.map +1 -0
- package/dist/requestTags.js +34 -0
- package/dist/requestTags.js.map +1 -0
- package/dist/scriptRefs.d.ts +190 -0
- package/dist/scriptRefs.d.ts.map +1 -0
- package/dist/scriptRefs.js +387 -0
- package/dist/scriptRefs.js.map +1 -0
- package/dist/scriptStage.d.ts +118 -0
- package/dist/scriptStage.d.ts.map +1 -0
- package/dist/scriptStage.js +204 -0
- package/dist/scriptStage.js.map +1 -0
- package/dist/scripting/scriptApi.d.ts +59 -0
- package/dist/scripting/scriptApi.d.ts.map +1 -0
- package/dist/scripting/scriptApi.js +692 -0
- package/dist/scripting/scriptApi.js.map +1 -0
- package/dist/scripting/scriptAssertionCompat.d.ts +21 -0
- package/dist/scripting/scriptAssertionCompat.d.ts.map +1 -0
- package/dist/scripting/scriptAssertionCompat.js +58 -0
- package/dist/scripting/scriptAssertionCompat.js.map +1 -0
- package/dist/scripting/scriptEvaluator.d.ts +42 -0
- package/dist/scripting/scriptEvaluator.d.ts.map +1 -0
- package/dist/scripting/scriptEvaluator.js +179 -0
- package/dist/scripting/scriptEvaluator.js.map +1 -0
- package/dist/scripting/scriptExpect.d.ts +3 -0
- package/dist/scripting/scriptExpect.d.ts.map +1 -0
- package/dist/scripting/scriptExpect.js +14 -0
- package/dist/scripting/scriptExpect.js.map +1 -0
- package/dist/scripting/scriptFileOperations.d.ts +172 -0
- package/dist/scripting/scriptFileOperations.d.ts.map +1 -0
- package/dist/scripting/scriptFileOperations.js +271 -0
- package/dist/scripting/scriptFileOperations.js.map +1 -0
- package/dist/scripting/scriptResponseAssertions.d.ts +40 -0
- package/dist/scripting/scriptResponseAssertions.d.ts.map +1 -0
- package/dist/scripting/scriptResponseAssertions.js +249 -0
- package/dist/scripting/scriptResponseAssertions.js.map +1 -0
- package/dist/scripting/scriptResponseDocument.d.ts +47 -0
- package/dist/scripting/scriptResponseDocument.d.ts.map +1 -0
- package/dist/scripting/scriptResponseDocument.js +49 -0
- package/dist/scripting/scriptResponseDocument.js.map +1 -0
- package/dist/scripting/scriptRunner.d.ts +2 -0
- package/dist/scripting/scriptRunner.d.ts.map +1 -0
- package/dist/scripting/scriptRunner.js +132 -0
- package/dist/scripting/scriptRunner.js.map +1 -0
- package/dist/scripting/scriptSnippetBundler.d.ts +46 -0
- package/dist/scripting/scriptSnippetBundler.d.ts.map +1 -0
- package/dist/scripting/scriptSnippetBundler.js +136 -0
- package/dist/scripting/scriptSnippetBundler.js.map +1 -0
- package/dist/search/actions.d.ts +44 -0
- package/dist/search/actions.d.ts.map +1 -0
- package/dist/search/actions.js +120 -0
- package/dist/search/actions.js.map +1 -0
- package/dist/search/index.d.ts +13 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +13 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/installedPlugins.d.ts +31 -0
- package/dist/search/installedPlugins.d.ts.map +1 -0
- package/dist/search/installedPlugins.js +73 -0
- package/dist/search/installedPlugins.js.map +1 -0
- package/dist/search/oramaIndex.d.ts +47 -0
- package/dist/search/oramaIndex.d.ts.map +1 -0
- package/dist/search/oramaIndex.js +56 -0
- package/dist/search/oramaIndex.js.map +1 -0
- package/dist/search/pagesCatalog.d.ts +34 -0
- package/dist/search/pagesCatalog.d.ts.map +1 -0
- package/dist/search/pagesCatalog.js +37 -0
- package/dist/search/pagesCatalog.js.map +1 -0
- package/dist/search/plugins.d.ts +40 -0
- package/dist/search/plugins.d.ts.map +1 -0
- package/dist/search/plugins.js +79 -0
- package/dist/search/plugins.js.map +1 -0
- package/dist/search/settings.d.ts +29 -0
- package/dist/search/settings.d.ts.map +1 -0
- package/dist/search/settings.js +63 -0
- package/dist/search/settings.js.map +1 -0
- package/dist/search/settingsCatalog.d.ts +112 -0
- package/dist/search/settingsCatalog.d.ts.map +1 -0
- package/dist/search/settingsCatalog.js +426 -0
- package/dist/search/settingsCatalog.js.map +1 -0
- package/dist/search/sidebar.d.ts +139 -0
- package/dist/search/sidebar.d.ts.map +1 -0
- package/dist/search/sidebar.js +342 -0
- package/dist/search/sidebar.js.map +1 -0
- package/dist/search/slashCommands.d.ts +45 -0
- package/dist/search/slashCommands.d.ts.map +1 -0
- package/dist/search/slashCommands.js +71 -0
- package/dist/search/slashCommands.js.map +1 -0
- package/dist/search/snippets.d.ts +48 -0
- package/dist/search/snippets.d.ts.map +1 -0
- package/dist/search/snippets.js +114 -0
- package/dist/search/snippets.js.map +1 -0
- package/dist/search/types.d.ts +60 -0
- package/dist/search/types.d.ts.map +1 -0
- package/dist/search/types.js +49 -0
- package/dist/search/types.js.map +1 -0
- package/dist/search/unified.d.ts +57 -0
- package/dist/search/unified.d.ts.map +1 -0
- package/dist/search/unified.js +153 -0
- package/dist/search/unified.js.map +1 -0
- package/dist/shortcuts.d.ts +174 -0
- package/dist/shortcuts.d.ts.map +1 -0
- package/dist/shortcuts.js +1040 -0
- package/dist/shortcuts.js.map +1 -0
- package/dist/sidebarColor.d.ts +16 -0
- package/dist/sidebarColor.d.ts.map +1 -0
- package/dist/sidebarColor.js +21 -0
- package/dist/sidebarColor.js.map +1 -0
- package/dist/sidebarExpansion.d.ts +12 -0
- package/dist/sidebarExpansion.d.ts.map +1 -0
- package/dist/sidebarExpansion.js +116 -0
- package/dist/sidebarExpansion.js.map +1 -0
- package/dist/snippet/catalog.d.ts +120 -0
- package/dist/snippet/catalog.d.ts.map +1 -0
- package/dist/snippet/catalog.js +105 -0
- package/dist/snippet/catalog.js.map +1 -0
- package/dist/snippet/types.d.ts +90 -0
- package/dist/snippet/types.d.ts.map +1 -0
- package/dist/snippet/types.js +2 -0
- package/dist/snippet/types.js.map +1 -0
- package/dist/snippetBundle.d.ts +21 -0
- package/dist/snippetBundle.d.ts.map +1 -0
- package/dist/snippetBundle.js +107 -0
- package/dist/snippetBundle.js.map +1 -0
- package/dist/snippetImport.d.ts +19 -0
- package/dist/snippetImport.d.ts.map +1 -0
- package/dist/snippetImport.js +34 -0
- package/dist/snippetImport.js.map +1 -0
- package/dist/snippetScope.d.ts +42 -0
- package/dist/snippetScope.d.ts.map +1 -0
- package/dist/snippetScope.js +50 -0
- package/dist/snippetScope.js.map +1 -0
- package/dist/storage/IStorage.d.ts +375 -0
- package/dist/storage/IStorage.d.ts.map +1 -0
- package/dist/storage/IStorage.js +2 -0
- package/dist/storage/IStorage.js.map +1 -0
- package/dist/themes.d.ts +24 -0
- package/dist/themes.d.ts.map +1 -0
- package/dist/themes.js +10 -0
- package/dist/themes.js.map +1 -0
- package/dist/types/ai.d.ts +304 -0
- package/dist/types/ai.d.ts.map +1 -0
- package/dist/types/ai.js +2 -0
- package/dist/types/ai.js.map +1 -0
- package/dist/types/api/backup.d.ts +27 -0
- package/dist/types/api/backup.d.ts.map +1 -0
- package/dist/types/api/backup.js +2 -0
- package/dist/types/api/backup.js.map +1 -0
- package/dist/types/api/chats.d.ts +88 -0
- package/dist/types/api/chats.d.ts.map +1 -0
- package/dist/types/api/chats.js +2 -0
- package/dist/types/api/chats.js.map +1 -0
- package/dist/types/api/collections.d.ts +251 -0
- package/dist/types/api/collections.d.ts.map +1 -0
- package/dist/types/api/collections.js +2 -0
- package/dist/types/api/collections.js.map +1 -0
- package/dist/types/api/customThemes.d.ts +68 -0
- package/dist/types/api/customThemes.d.ts.map +1 -0
- package/dist/types/api/customThemes.js +2 -0
- package/dist/types/api/customThemes.js.map +1 -0
- package/dist/types/api/docs.d.ts +14 -0
- package/dist/types/api/docs.d.ts.map +1 -0
- package/dist/types/api/docs.js +2 -0
- package/dist/types/api/docs.js.map +1 -0
- package/dist/types/api/documents.d.ts +51 -0
- package/dist/types/api/documents.d.ts.map +1 -0
- package/dist/types/api/documents.js +2 -0
- package/dist/types/api/documents.js.map +1 -0
- package/dist/types/api/environments.d.ts +57 -0
- package/dist/types/api/environments.d.ts.map +1 -0
- package/dist/types/api/environments.js +2 -0
- package/dist/types/api/environments.js.map +1 -0
- package/dist/types/api/git.d.ts +392 -0
- package/dist/types/api/git.d.ts.map +1 -0
- package/dist/types/api/git.js +2 -0
- package/dist/types/api/git.js.map +1 -0
- package/dist/types/api/http.d.ts +47 -0
- package/dist/types/api/http.d.ts.map +1 -0
- package/dist/types/api/http.js +2 -0
- package/dist/types/api/http.js.map +1 -0
- package/dist/types/api/index.d.ts +28 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/index.js +2 -0
- package/dist/types/api/index.js.map +1 -0
- package/dist/types/api/mcp.d.ts +77 -0
- package/dist/types/api/mcp.d.ts.map +1 -0
- package/dist/types/api/mcp.js +2 -0
- package/dist/types/api/mcp.js.map +1 -0
- package/dist/types/api/plugins.d.ts +338 -0
- package/dist/types/api/plugins.d.ts.map +1 -0
- package/dist/types/api/plugins.js +2 -0
- package/dist/types/api/plugins.js.map +1 -0
- package/dist/types/api/requestHistory.d.ts +27 -0
- package/dist/types/api/requestHistory.d.ts.map +1 -0
- package/dist/types/api/requestHistory.js +2 -0
- package/dist/types/api/requestHistory.js.map +1 -0
- package/dist/types/api/requests.d.ts +35 -0
- package/dist/types/api/requests.d.ts.map +1 -0
- package/dist/types/api/requests.js +2 -0
- package/dist/types/api/requests.js.map +1 -0
- package/dist/types/api/settings.d.ts +163 -0
- package/dist/types/api/settings.d.ts.map +1 -0
- package/dist/types/api/settings.js +2 -0
- package/dist/types/api/settings.js.map +1 -0
- package/dist/types/api/sharing.d.ts +68 -0
- package/dist/types/api/sharing.d.ts.map +1 -0
- package/dist/types/api/sharing.js +2 -0
- package/dist/types/api/sharing.js.map +1 -0
- package/dist/types/api/snippets.d.ts +159 -0
- package/dist/types/api/snippets.d.ts.map +1 -0
- package/dist/types/api/snippets.js +2 -0
- package/dist/types/api/snippets.js.map +1 -0
- package/dist/types/api/storage.d.ts +57 -0
- package/dist/types/api/storage.d.ts.map +1 -0
- package/dist/types/api/storage.js +2 -0
- package/dist/types/api/storage.js.map +1 -0
- package/dist/types/api/tabGroup.d.ts +43 -0
- package/dist/types/api/tabGroup.d.ts.map +1 -0
- package/dist/types/api/tabGroup.js +2 -0
- package/dist/types/api/tabGroup.js.map +1 -0
- package/dist/types/api/teamHub.d.ts +225 -0
- package/dist/types/api/teamHub.d.ts.map +1 -0
- package/dist/types/api/teamHub.js +2 -0
- package/dist/types/api/teamHub.js.map +1 -0
- package/dist/types/api/terminal.d.ts +101 -0
- package/dist/types/api/terminal.d.ts.map +1 -0
- package/dist/types/api/terminal.js +2 -0
- package/dist/types/api/terminal.js.map +1 -0
- package/dist/types/api/trash.d.ts +27 -0
- package/dist/types/api/trash.d.ts.map +1 -0
- package/dist/types/api/trash.js +2 -0
- package/dist/types/api/trash.js.map +1 -0
- package/dist/types/api/window.d.ts +251 -0
- package/dist/types/api/window.d.ts.map +1 -0
- package/dist/types/api/window.js +2 -0
- package/dist/types/api/window.js.map +1 -0
- package/dist/types/app.d.ts +83 -0
- package/dist/types/app.d.ts.map +1 -0
- package/dist/types/app.js +2 -0
- package/dist/types/app.js.map +1 -0
- package/dist/types/collection.d.ts +559 -0
- package/dist/types/collection.d.ts.map +1 -0
- package/dist/types/collection.js +2 -0
- package/dist/types/collection.js.map +1 -0
- package/dist/types/common.d.ts +23 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +2 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/customTheme.d.ts +163 -0
- package/dist/types/customTheme.d.ts.map +1 -0
- package/dist/types/customTheme.js +311 -0
- package/dist/types/customTheme.js.map +1 -0
- package/dist/types/environment.d.ts +64 -0
- package/dist/types/environment.d.ts.map +1 -0
- package/dist/types/environment.js +2 -0
- package/dist/types/environment.js.map +1 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +20 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +153 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +2 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/request.d.ts +294 -0
- package/dist/types/request.d.ts.map +1 -0
- package/dist/types/request.js +2 -0
- package/dist/types/request.js.map +1 -0
- package/dist/types/requestHistory.d.ts +88 -0
- package/dist/types/requestHistory.d.ts.map +1 -0
- package/dist/types/requestHistory.js +5 -0
- package/dist/types/requestHistory.js.map +1 -0
- package/dist/types/script.d.ts +366 -0
- package/dist/types/script.d.ts.map +1 -0
- package/dist/types/script.js +34 -0
- package/dist/types/script.js.map +1 -0
- package/dist/types/settings.d.ts +340 -0
- package/dist/types/settings.d.ts.map +1 -0
- package/dist/types/settings.js +3 -0
- package/dist/types/settings.js.map +1 -0
- package/dist/types/sharing.d.ts +87 -0
- package/dist/types/sharing.d.ts.map +1 -0
- package/dist/types/sharing.js +2 -0
- package/dist/types/sharing.js.map +1 -0
- package/dist/types/snippet.d.ts +150 -0
- package/dist/types/snippet.d.ts.map +1 -0
- package/dist/types/snippet.js +2 -0
- package/dist/types/snippet.js.map +1 -0
- package/dist/types/storage.d.ts +846 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/storage.js +2 -0
- package/dist/types/storage.js.map +1 -0
- package/dist/types/tabGroup.d.ts +108 -0
- package/dist/types/tabGroup.d.ts.map +1 -0
- package/dist/types/tabGroup.js +26 -0
- package/dist/types/tabGroup.js.map +1 -0
- package/dist/types/teamHub.d.ts +690 -0
- package/dist/types/teamHub.d.ts.map +1 -0
- package/dist/types/teamHub.js +2 -0
- package/dist/types/teamHub.js.map +1 -0
- package/dist/types/trash.d.ts +63 -0
- package/dist/types/trash.d.ts.map +1 -0
- package/dist/types/trash.js +2 -0
- package/dist/types/trash.js.map +1 -0
- package/dist/types/window.d.ts +14 -0
- package/dist/types/window.d.ts.map +1 -0
- package/dist/types/window.js +2 -0
- package/dist/types/window.js.map +1 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/urlencoded.d.ts +2 -0
- package/dist/urlencoded.d.ts.map +1 -0
- package/dist/urlencoded.js +2 -0
- package/dist/urlencoded.js.map +1 -0
- package/dist/urlencodedRaw.d.ts +23 -0
- package/dist/urlencodedRaw.d.ts.map +1 -0
- package/dist/urlencodedRaw.js +60 -0
- package/dist/urlencodedRaw.js.map +1 -0
- package/dist/userAgent.d.ts +132 -0
- package/dist/userAgent.d.ts.map +1 -0
- package/dist/userAgent.js +178 -0
- package/dist/userAgent.js.map +1 -0
- package/dist/zoomPresets.d.ts +38 -0
- package/dist/zoomPresets.d.ts.map +1 -0
- package/dist/zoomPresets.js +67 -0
- package/dist/zoomPresets.js.map +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { sanitizePluginCatalogCategories } from './catalogCategories';
|
|
3
|
+
/**
|
|
4
|
+
* Public URL of the generated plugin catalog served from harborclient.com.
|
|
5
|
+
*/
|
|
6
|
+
export const PLUGIN_CATALOG_URL = 'https://harborclient.com/plugin_catalog.json';
|
|
7
|
+
/**
|
|
8
|
+
* Public URL of the generated theme catalog served from harborclient.com.
|
|
9
|
+
*/
|
|
10
|
+
export const THEME_CATALOG_URL = 'https://harborclient.com/theme_catalog.json';
|
|
11
|
+
/**
|
|
12
|
+
* Public URL of the official HarborClient plugin signing key served from harborclient.com.
|
|
13
|
+
*/
|
|
14
|
+
export const PLUGIN_SIGNING_PUBLIC_KEY_URL = 'https://harborclient.com/plugins/harborclient.key';
|
|
15
|
+
/**
|
|
16
|
+
* Public URL of the trusted plugin signing key registry served from harborclient.com.
|
|
17
|
+
*/
|
|
18
|
+
export const PLUGIN_TRUSTED_KEYS_URL = 'https://harborclient.com/plugins/trusted.json';
|
|
19
|
+
const pluginManifestId = z
|
|
20
|
+
.string()
|
|
21
|
+
.min(3)
|
|
22
|
+
.regex(/^[a-zA-Z][a-zA-Z0-9.-]*\.[a-zA-Z][a-zA-Z0-9.-]+$/);
|
|
23
|
+
/**
|
|
24
|
+
* Validates that a catalog entry points at a public GitHub repository over HTTPS.
|
|
25
|
+
*
|
|
26
|
+
* @param url - Repository URL from the catalog source file.
|
|
27
|
+
* @returns Trimmed URL when valid.
|
|
28
|
+
*/
|
|
29
|
+
function parseGitHubRepoUrl(url) {
|
|
30
|
+
const trimmed = url.trim();
|
|
31
|
+
let parsed;
|
|
32
|
+
try {
|
|
33
|
+
parsed = new URL(trimmed);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
throw new Error(`Plugin catalog repoUrl is not valid: ${url}`);
|
|
37
|
+
}
|
|
38
|
+
if (parsed.protocol !== 'https:') {
|
|
39
|
+
throw new Error(`Plugin catalog repoUrl must use https://: ${url}`);
|
|
40
|
+
}
|
|
41
|
+
if (parsed.hostname !== 'github.com') {
|
|
42
|
+
throw new Error(`Plugin catalog repoUrl must be hosted on github.com: ${url}`);
|
|
43
|
+
}
|
|
44
|
+
const segments = parsed.pathname.split('/').filter(Boolean);
|
|
45
|
+
if (segments.length < 2) {
|
|
46
|
+
throw new Error(`Plugin catalog repoUrl must include owner and repository: ${url}`);
|
|
47
|
+
}
|
|
48
|
+
return trimmed;
|
|
49
|
+
}
|
|
50
|
+
const catalogThemeContributionSchema = z.object({
|
|
51
|
+
id: z.string().min(1),
|
|
52
|
+
title: z.string().min(1),
|
|
53
|
+
type: z.enum(['light', 'dark', 'high-contrast'])
|
|
54
|
+
});
|
|
55
|
+
/**
|
|
56
|
+
* Zod schema for one curated plugin or theme marketplace listing.
|
|
57
|
+
*/
|
|
58
|
+
export const pluginCatalogEntrySchema = z.object({
|
|
59
|
+
id: pluginManifestId,
|
|
60
|
+
name: z.string().min(1),
|
|
61
|
+
version: z.string().min(1),
|
|
62
|
+
summary: z.string().min(1),
|
|
63
|
+
author: z.string().min(1),
|
|
64
|
+
categories: z.array(z.string().min(1)).transform(sanitizePluginCatalogCategories),
|
|
65
|
+
repoUrl: z.string().min(1).transform(parseGitHubRepoUrl),
|
|
66
|
+
ref: z.string().min(1).optional(),
|
|
67
|
+
homepage: z.string().url().optional(),
|
|
68
|
+
icon: z.string().url().optional(),
|
|
69
|
+
/** Absolute URL or repository-relative path (e.g. `screenshot.png`). */
|
|
70
|
+
screenshot: z.string().min(1).optional(),
|
|
71
|
+
/** Absolute URLs or repository-relative paths for marketplace thumbnails. */
|
|
72
|
+
screenshots: z.array(z.string().min(1)).optional(),
|
|
73
|
+
/** Inlined Markdown description fetched from the plugin repository at build time. */
|
|
74
|
+
description: z.string().min(1).optional(),
|
|
75
|
+
minAppVersion: z.string().min(1).optional(),
|
|
76
|
+
/** Theme contributions copied from manifest.contributes.themes at catalog build time. */
|
|
77
|
+
contributes: z
|
|
78
|
+
.object({
|
|
79
|
+
themes: z.array(catalogThemeContributionSchema).optional()
|
|
80
|
+
})
|
|
81
|
+
.optional()
|
|
82
|
+
});
|
|
83
|
+
/**
|
|
84
|
+
* Zod schema for the plugin marketplace catalog document.
|
|
85
|
+
*/
|
|
86
|
+
export const pluginCatalogSchema = z.object({
|
|
87
|
+
schemaVersion: z.literal(1),
|
|
88
|
+
plugins: z.array(pluginCatalogEntrySchema)
|
|
89
|
+
});
|
|
90
|
+
/**
|
|
91
|
+
* Zod schema for the theme marketplace catalog document.
|
|
92
|
+
*/
|
|
93
|
+
export const themeCatalogSchema = z.object({
|
|
94
|
+
schemaVersion: z.literal(1),
|
|
95
|
+
themes: z.array(pluginCatalogEntrySchema)
|
|
96
|
+
});
|
|
97
|
+
/**
|
|
98
|
+
* Parses and validates a plugin catalog payload.
|
|
99
|
+
*
|
|
100
|
+
* @param raw - Unknown JSON value from disk or an HTTP response.
|
|
101
|
+
* @returns Validated catalog with unique plugin ids.
|
|
102
|
+
* @throws When the payload is invalid or contains duplicate ids.
|
|
103
|
+
*/
|
|
104
|
+
export function parsePluginCatalog(raw) {
|
|
105
|
+
const parsed = pluginCatalogSchema.parse(raw);
|
|
106
|
+
const seen = new Set();
|
|
107
|
+
for (const entry of parsed.plugins) {
|
|
108
|
+
if (seen.has(entry.id)) {
|
|
109
|
+
throw new Error(`Plugin catalog contains duplicate id: ${entry.id}`);
|
|
110
|
+
}
|
|
111
|
+
seen.add(entry.id);
|
|
112
|
+
}
|
|
113
|
+
return parsed;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Parses and validates a theme catalog payload.
|
|
117
|
+
*
|
|
118
|
+
* @param raw - Unknown JSON value from disk or an HTTP response.
|
|
119
|
+
* @returns Validated catalog with unique theme plugin ids.
|
|
120
|
+
* @throws When the payload is invalid or contains duplicate ids.
|
|
121
|
+
*/
|
|
122
|
+
export function parseThemeCatalog(raw) {
|
|
123
|
+
const parsed = themeCatalogSchema.parse(raw);
|
|
124
|
+
const seen = new Set();
|
|
125
|
+
for (const entry of parsed.themes) {
|
|
126
|
+
if (seen.has(entry.id)) {
|
|
127
|
+
throw new Error(`Theme catalog contains duplicate id: ${entry.id}`);
|
|
128
|
+
}
|
|
129
|
+
seen.add(entry.id);
|
|
130
|
+
}
|
|
131
|
+
return parsed;
|
|
132
|
+
}
|
|
133
|
+
const pluginTrustedKeyEntrySchema = z.object({
|
|
134
|
+
author: z.string().min(1),
|
|
135
|
+
key: z.string().url()
|
|
136
|
+
});
|
|
137
|
+
/**
|
|
138
|
+
* Parses and validates a trusted plugin signing key registry payload.
|
|
139
|
+
*
|
|
140
|
+
* @param raw - Unknown JSON value from disk or an HTTP response.
|
|
141
|
+
* @returns Validated trusted key entries with unique key URLs.
|
|
142
|
+
* @throws When the payload is invalid or contains duplicate key URLs.
|
|
143
|
+
*/
|
|
144
|
+
export function parsePluginTrustedKeys(raw) {
|
|
145
|
+
const parsed = z.array(pluginTrustedKeyEntrySchema).parse(raw);
|
|
146
|
+
const seen = new Set();
|
|
147
|
+
for (const entry of parsed) {
|
|
148
|
+
if (seen.has(entry.key)) {
|
|
149
|
+
throw new Error(`Plugin trusted keys contain duplicate key URL: ${entry.key}`);
|
|
150
|
+
}
|
|
151
|
+
seen.add(entry.key);
|
|
152
|
+
}
|
|
153
|
+
return parsed;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Validates that a plugin source URL uses http or https and returns the trimmed value.
|
|
157
|
+
*
|
|
158
|
+
* @param url - Catalog or trusted registry URL from user settings.
|
|
159
|
+
* @returns Trimmed URL when valid.
|
|
160
|
+
*/
|
|
161
|
+
function parsePluginSourceUrl(url) {
|
|
162
|
+
const trimmed = url.trim();
|
|
163
|
+
let parsed;
|
|
164
|
+
try {
|
|
165
|
+
parsed = new URL(trimmed);
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
throw new Error(`Plugin source URL is not valid: ${url}`);
|
|
169
|
+
}
|
|
170
|
+
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
|
|
171
|
+
throw new Error(`Plugin source URL must use http:// or https://: ${url}`);
|
|
172
|
+
}
|
|
173
|
+
return trimmed;
|
|
174
|
+
}
|
|
175
|
+
const pluginSourceSchema = z.object({
|
|
176
|
+
url: z.string().min(1).transform(parsePluginSourceUrl),
|
|
177
|
+
enabled: z.boolean()
|
|
178
|
+
});
|
|
179
|
+
/**
|
|
180
|
+
* Zod schema for persisted plugin catalog and trusted-key source settings.
|
|
181
|
+
*/
|
|
182
|
+
export const pluginSourcesSchema = z.object({
|
|
183
|
+
catalogs: z.array(pluginSourceSchema),
|
|
184
|
+
trusted: z.array(pluginSourceSchema)
|
|
185
|
+
});
|
|
186
|
+
/**
|
|
187
|
+
* Returns the built-in HarborClient catalog and trusted-key endpoints, enabled by default.
|
|
188
|
+
*
|
|
189
|
+
* @returns Default plugin source settings with HarborClient URLs first in each list.
|
|
190
|
+
*/
|
|
191
|
+
export function getDefaultPluginSources() {
|
|
192
|
+
return {
|
|
193
|
+
catalogs: [{ url: PLUGIN_CATALOG_URL, enabled: true }],
|
|
194
|
+
trusted: [{ url: PLUGIN_TRUSTED_KEYS_URL, enabled: true }]
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Deduplicates plugin source rows by URL while preserving the first occurrence.
|
|
199
|
+
*
|
|
200
|
+
* @param sources - Raw or normalized plugin source rows.
|
|
201
|
+
* @returns Sources with duplicate URLs removed.
|
|
202
|
+
*/
|
|
203
|
+
function dedupePluginSources(sources) {
|
|
204
|
+
const seen = new Set();
|
|
205
|
+
const deduped = [];
|
|
206
|
+
for (const source of sources) {
|
|
207
|
+
if (seen.has(source.url)) {
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
seen.add(source.url);
|
|
211
|
+
deduped.push(source);
|
|
212
|
+
}
|
|
213
|
+
return deduped;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Normalizes persisted plugin source settings with trimmed URLs and deduplication.
|
|
217
|
+
*
|
|
218
|
+
* @param raw - Unknown settings from storage or user input.
|
|
219
|
+
* @returns Validated settings, or defaults when both lists are empty after normalization.
|
|
220
|
+
*/
|
|
221
|
+
export function normalizePluginSources(raw) {
|
|
222
|
+
const parsed = pluginSourcesSchema.safeParse(raw);
|
|
223
|
+
if (!parsed.success) {
|
|
224
|
+
return getDefaultPluginSources();
|
|
225
|
+
}
|
|
226
|
+
const catalogs = dedupePluginSources(parsed.data.catalogs);
|
|
227
|
+
const trusted = dedupePluginSources(parsed.data.trusted);
|
|
228
|
+
if (catalogs.length === 0 && trusted.length === 0) {
|
|
229
|
+
return getDefaultPluginSources();
|
|
230
|
+
}
|
|
231
|
+
return { catalogs, trusted };
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Returns whether a plugin source URL is hosted on harborclient.com or a subdomain.
|
|
235
|
+
*
|
|
236
|
+
* @param url - Catalog or trusted registry URL to inspect.
|
|
237
|
+
* @returns True when the hostname is harborclient.com or ends with .harborclient.com.
|
|
238
|
+
*/
|
|
239
|
+
export function isHarborClientEndpoint(url) {
|
|
240
|
+
try {
|
|
241
|
+
const hostname = new URL(url.trim()).hostname.toLowerCase();
|
|
242
|
+
return hostname === 'harborclient.com' || hostname.endsWith('.harborclient.com');
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/plugin/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical marketplace plugin category slugs in display order.
|
|
3
|
+
*/
|
|
4
|
+
export declare const PLUGIN_CATALOG_CATEGORIES: readonly ["requests", "auth", "environments", "import", "scripting", "logging", "jwt", "response", "themes", "light", "dark", "high-contrast", "collections", "editor", "testing", "export", "graphql", "websocket", "mock", "debugging", "security", "sidebar", "utilities"];
|
|
5
|
+
/**
|
|
6
|
+
* One allowed plugin marketplace category slug.
|
|
7
|
+
*/
|
|
8
|
+
export type PluginCatalogCategory = (typeof PLUGIN_CATALOG_CATEGORIES)[number];
|
|
9
|
+
/**
|
|
10
|
+
* Human-readable labels for marketplace category slugs shown in UI.
|
|
11
|
+
*/
|
|
12
|
+
export declare const PLUGIN_CATALOG_CATEGORY_LABELS: Record<PluginCatalogCategory, string>;
|
|
13
|
+
/**
|
|
14
|
+
* Returns whether a string is a recognized plugin marketplace category slug.
|
|
15
|
+
*
|
|
16
|
+
* @param value - Raw category string from catalog JSON.
|
|
17
|
+
* @returns True when the value is a predefined category slug.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isPluginCatalogCategory(value: string): value is PluginCatalogCategory;
|
|
20
|
+
/**
|
|
21
|
+
* Keeps only predefined category slugs, preserving order and removing duplicates.
|
|
22
|
+
*
|
|
23
|
+
* Unknown categories from catalog entries are dropped so third-party catalogs
|
|
24
|
+
* cannot introduce uncontrolled filter labels in the marketplace UI.
|
|
25
|
+
*
|
|
26
|
+
* @param categories - Raw category strings from a catalog entry.
|
|
27
|
+
* @returns Sanitized category slugs, which may be empty when none are recognized.
|
|
28
|
+
*/
|
|
29
|
+
export declare function sanitizePluginCatalogCategories(categories: string[]): PluginCatalogCategory[];
|
|
30
|
+
//# sourceMappingURL=catalogCategories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalogCategories.d.ts","sourceRoot":"","sources":["../../src/plugin/catalogCategories.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,yBAAyB,+QAwB5B,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAwBhF,CAAC;AAIF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,qBAAqB,CAErF;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,qBAAqB,EAAE,CAa7F"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical marketplace plugin category slugs in display order.
|
|
3
|
+
*/
|
|
4
|
+
export const PLUGIN_CATALOG_CATEGORIES = [
|
|
5
|
+
'requests',
|
|
6
|
+
'auth',
|
|
7
|
+
'environments',
|
|
8
|
+
'import',
|
|
9
|
+
'scripting',
|
|
10
|
+
'logging',
|
|
11
|
+
'jwt',
|
|
12
|
+
'response',
|
|
13
|
+
'themes',
|
|
14
|
+
'light',
|
|
15
|
+
'dark',
|
|
16
|
+
'high-contrast',
|
|
17
|
+
'collections',
|
|
18
|
+
'editor',
|
|
19
|
+
'testing',
|
|
20
|
+
'export',
|
|
21
|
+
'graphql',
|
|
22
|
+
'websocket',
|
|
23
|
+
'mock',
|
|
24
|
+
'debugging',
|
|
25
|
+
'security',
|
|
26
|
+
'sidebar',
|
|
27
|
+
'utilities'
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* Human-readable labels for marketplace category slugs shown in UI.
|
|
31
|
+
*/
|
|
32
|
+
export const PLUGIN_CATALOG_CATEGORY_LABELS = {
|
|
33
|
+
'requests': 'Requests',
|
|
34
|
+
'auth': 'Authentication',
|
|
35
|
+
'environments': 'Environments',
|
|
36
|
+
'import': 'Import',
|
|
37
|
+
'scripting': 'Scripting',
|
|
38
|
+
'logging': 'Logging',
|
|
39
|
+
'jwt': 'JWT',
|
|
40
|
+
'response': 'Response',
|
|
41
|
+
'themes': 'Themes',
|
|
42
|
+
'light': 'Light',
|
|
43
|
+
'dark': 'Dark',
|
|
44
|
+
'high-contrast': 'High Contrast',
|
|
45
|
+
'collections': 'Collections',
|
|
46
|
+
'editor': 'Editor',
|
|
47
|
+
'testing': 'Testing',
|
|
48
|
+
'export': 'Export',
|
|
49
|
+
'graphql': 'GraphQL',
|
|
50
|
+
'websocket': 'WebSocket',
|
|
51
|
+
'mock': 'Mocking',
|
|
52
|
+
'debugging': 'Debugging',
|
|
53
|
+
'security': 'Security',
|
|
54
|
+
'sidebar': 'Sidebar',
|
|
55
|
+
'utilities': 'Utilities'
|
|
56
|
+
};
|
|
57
|
+
const categorySet = new Set(PLUGIN_CATALOG_CATEGORIES);
|
|
58
|
+
/**
|
|
59
|
+
* Returns whether a string is a recognized plugin marketplace category slug.
|
|
60
|
+
*
|
|
61
|
+
* @param value - Raw category string from catalog JSON.
|
|
62
|
+
* @returns True when the value is a predefined category slug.
|
|
63
|
+
*/
|
|
64
|
+
export function isPluginCatalogCategory(value) {
|
|
65
|
+
return categorySet.has(value);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Keeps only predefined category slugs, preserving order and removing duplicates.
|
|
69
|
+
*
|
|
70
|
+
* Unknown categories from catalog entries are dropped so third-party catalogs
|
|
71
|
+
* cannot introduce uncontrolled filter labels in the marketplace UI.
|
|
72
|
+
*
|
|
73
|
+
* @param categories - Raw category strings from a catalog entry.
|
|
74
|
+
* @returns Sanitized category slugs, which may be empty when none are recognized.
|
|
75
|
+
*/
|
|
76
|
+
export function sanitizePluginCatalogCategories(categories) {
|
|
77
|
+
const seen = new Set();
|
|
78
|
+
const sanitized = [];
|
|
79
|
+
for (const category of categories) {
|
|
80
|
+
if (!isPluginCatalogCategory(category) || seen.has(category)) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
seen.add(category);
|
|
84
|
+
sanitized.push(category);
|
|
85
|
+
}
|
|
86
|
+
return sanitized;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=catalogCategories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalogCategories.js","sourceRoot":"","sources":["../../src/plugin/catalogCategories.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU;IACV,MAAM;IACN,cAAc;IACd,QAAQ;IACR,WAAW;IACX,SAAS;IACT,KAAK;IACL,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;IACN,eAAe;IACf,aAAa;IACb,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS;IACT,WAAW;IACX,MAAM;IACN,WAAW;IACX,UAAU;IACV,SAAS;IACT,WAAW;CACH,CAAC;AAOX;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAA0C;IACnF,UAAU,EAAE,UAAU;IACtB,MAAM,EAAE,gBAAgB;IACxB,cAAc,EAAE,cAAc;IAC9B,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,WAAW;IACxB,SAAS,EAAE,SAAS;IACpB,KAAK,EAAE,KAAK;IACZ,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,MAAM;IACd,eAAe,EAAE,eAAe;IAChC,aAAa,EAAE,aAAa;IAC5B,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,WAAW;IACxB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE,UAAU;IACtB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,WAAW;CACzB,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,yBAAyB,CAAC,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,+BAA+B,CAAC,UAAoB;IAClE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC9C,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { CustomTheme, CustomThemeExport, CustomThemeImportDraft, CustomThemeType } from '../types/customTheme';
|
|
3
|
+
import type { ThemeSource } from '../types/settings';
|
|
4
|
+
/**
|
|
5
|
+
* Zod schema for saving a custom theme from the Designer form.
|
|
6
|
+
*/
|
|
7
|
+
export declare const customThemeSaveInputSchema: z.ZodObject<{
|
|
8
|
+
id: z.ZodOptional<z.ZodString>;
|
|
9
|
+
title: z.ZodString;
|
|
10
|
+
type: z.ZodEnum<{
|
|
11
|
+
light: "light";
|
|
12
|
+
dark: "dark";
|
|
13
|
+
"high-contrast": "high-contrast";
|
|
14
|
+
}>;
|
|
15
|
+
colors: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
16
|
+
metrics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
17
|
+
stylesheet: z.ZodOptional<z.ZodString>;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
/**
|
|
20
|
+
* Zod schema for portable custom theme export files.
|
|
21
|
+
*/
|
|
22
|
+
export declare const customThemeExportSchema: z.ZodObject<{
|
|
23
|
+
harborclientVersion: z.ZodLiteral<1>;
|
|
24
|
+
harborclientExport: z.ZodLiteral<"theme">;
|
|
25
|
+
theme: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
26
|
+
metrics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
27
|
+
title: z.ZodString;
|
|
28
|
+
type: z.ZodEnum<{
|
|
29
|
+
light: "light";
|
|
30
|
+
dark: "dark";
|
|
31
|
+
"high-contrast": "high-contrast";
|
|
32
|
+
}>;
|
|
33
|
+
stylesheet: z.ZodOptional<z.ZodString>;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
/**
|
|
36
|
+
* Validates a parsed JSON object as a custom theme export file.
|
|
37
|
+
*
|
|
38
|
+
* @param data - Raw parsed JSON from disk or an import dialog.
|
|
39
|
+
* @returns Validated export envelope.
|
|
40
|
+
* @throws When the file is not a valid theme export.
|
|
41
|
+
*/
|
|
42
|
+
export declare function validateCustomThemeExport(data: unknown): CustomThemeExport;
|
|
43
|
+
/**
|
|
44
|
+
* Converts a stored custom theme to its on-disk export envelope.
|
|
45
|
+
*
|
|
46
|
+
* @param theme - Custom theme with id and palette values.
|
|
47
|
+
* @returns Portable export envelope without the id field.
|
|
48
|
+
*/
|
|
49
|
+
export declare function customThemeToEnvelope(theme: CustomTheme): CustomThemeExport;
|
|
50
|
+
/**
|
|
51
|
+
* Converts a validated export envelope and filename stem into a custom theme record.
|
|
52
|
+
*
|
|
53
|
+
* @param id - Filename stem for the theme.
|
|
54
|
+
* @param envelope - Validated export envelope.
|
|
55
|
+
* @returns Custom theme record for renderer and IPC consumers.
|
|
56
|
+
*/
|
|
57
|
+
export declare function envelopeToCustomTheme(id: string, envelope: CustomThemeExport): CustomTheme;
|
|
58
|
+
/**
|
|
59
|
+
* Converts an import draft from a validated export envelope.
|
|
60
|
+
*
|
|
61
|
+
* @param envelope - Validated export envelope.
|
|
62
|
+
* @returns Draft values for the Designer form without saving.
|
|
63
|
+
*/
|
|
64
|
+
export declare function envelopeToImportDraft(envelope: CustomThemeExport): CustomThemeImportDraft;
|
|
65
|
+
/**
|
|
66
|
+
* Serializes a custom theme id into a persisted theme preference value.
|
|
67
|
+
*
|
|
68
|
+
* @param id - Custom theme filename stem.
|
|
69
|
+
* @returns Theme source string stored via theme:get/set.
|
|
70
|
+
*/
|
|
71
|
+
export declare function formatCustomThemeValue(id: string): ThemeSource;
|
|
72
|
+
/**
|
|
73
|
+
* Parses a persisted custom theme preference.
|
|
74
|
+
*
|
|
75
|
+
* @param value - Raw theme setting from storage.
|
|
76
|
+
* @returns Custom theme id when the value is custom-scoped.
|
|
77
|
+
*/
|
|
78
|
+
export declare function parseCustomThemeSource(value: string): {
|
|
79
|
+
id: string;
|
|
80
|
+
} | null;
|
|
81
|
+
/**
|
|
82
|
+
* Returns whether a string is a valid custom theme id for filenames.
|
|
83
|
+
*
|
|
84
|
+
* @param id - Candidate filename stem.
|
|
85
|
+
* @returns True when the id is safe to use as `<id>.json`.
|
|
86
|
+
*/
|
|
87
|
+
export declare function isValidCustomThemeId(id: string): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Type guard for custom theme appearance values.
|
|
90
|
+
*
|
|
91
|
+
* @param value - Candidate appearance mode.
|
|
92
|
+
* @returns True when the value is a supported custom theme type.
|
|
93
|
+
*/
|
|
94
|
+
export declare function isCustomThemeType(value: string): value is CustomThemeType;
|
|
95
|
+
//# sourceMappingURL=customThemeExport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customThemeExport.d.ts","sourceRoot":"","sources":["../../src/plugin/customThemeExport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAwIrD;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBAOrC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;iBAQK,CAAC;AAE1C;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CAW1E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,iBAAiB,CAgB3E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,WAAW,CAS1F;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,sBAAsB,CAQzF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAM3E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,eAAe,CAEzE"}
|