@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,318 @@
|
|
|
1
|
+
import { parseJson } from '../parseJson';
|
|
2
|
+
const STORE_KEY = 'cookieJar';
|
|
3
|
+
/**
|
|
4
|
+
* Persists cookies by hostname in the local registry and builds Cookie headers
|
|
5
|
+
* for outbound HTTP requests.
|
|
6
|
+
*/
|
|
7
|
+
export class CookieJar {
|
|
8
|
+
storage;
|
|
9
|
+
/**
|
|
10
|
+
* @param storage - Persistence adapter used to store the jar map.
|
|
11
|
+
*/
|
|
12
|
+
constructor(storage) {
|
|
13
|
+
this.storage = storage;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Extracts the hostname from a URL string.
|
|
17
|
+
*
|
|
18
|
+
* @param url - Absolute or relative URL.
|
|
19
|
+
* @returns Hostname or null when parsing fails.
|
|
20
|
+
*/
|
|
21
|
+
static hostFromUrl(url) {
|
|
22
|
+
const trimmed = url.trim();
|
|
23
|
+
if (!trimmed)
|
|
24
|
+
return null;
|
|
25
|
+
try {
|
|
26
|
+
return new URL(trimmed).hostname || null;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
try {
|
|
30
|
+
return new URL(`https://${trimmed}`).hostname || null;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Returns cookies stored for a hostname.
|
|
39
|
+
*
|
|
40
|
+
* @param domain - Hostname to query.
|
|
41
|
+
*/
|
|
42
|
+
getCookiesForDomain(domain) {
|
|
43
|
+
return this.getStoredCookiesForDomain(domain).map(({ key, value, enabled }) => ({
|
|
44
|
+
key,
|
|
45
|
+
value,
|
|
46
|
+
enabled
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns persisted cookie domains in a stable order for management UIs.
|
|
51
|
+
*
|
|
52
|
+
* @returns Sorted hostnames with at least one stored cookie.
|
|
53
|
+
*/
|
|
54
|
+
listDomains() {
|
|
55
|
+
return Object.keys(this.getJarMap()).sort();
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Persists cookies for a hostname.
|
|
59
|
+
*
|
|
60
|
+
* @param domain - Hostname to update.
|
|
61
|
+
* @param cookies - Cookie rows to store.
|
|
62
|
+
*/
|
|
63
|
+
setCookiesForDomain(domain, cookies) {
|
|
64
|
+
const normalized = this.normalizeDomain(domain);
|
|
65
|
+
if (!normalized)
|
|
66
|
+
return;
|
|
67
|
+
const existing = this.getStoredCookiesForDomain(normalized);
|
|
68
|
+
const normalizedCookies = this.normalizeCookieRows(cookies, existing);
|
|
69
|
+
this.setStoredCookiesForDomain(normalized, normalizedCookies);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Builds a Cookie header value for enabled cookies on the request host.
|
|
73
|
+
*
|
|
74
|
+
* @param url - Request URL used to resolve the host.
|
|
75
|
+
* @returns Semicolon-delimited cookie header value, or null when none apply.
|
|
76
|
+
*/
|
|
77
|
+
buildCookieHeader(url) {
|
|
78
|
+
const host = CookieJar.hostFromUrl(url);
|
|
79
|
+
if (!host)
|
|
80
|
+
return null;
|
|
81
|
+
const scheme = this.schemeFromUrl(url);
|
|
82
|
+
const isSecureRequest = scheme === 'https:';
|
|
83
|
+
const cookies = this.getStoredCookiesForDomain(host).filter((cookie) => {
|
|
84
|
+
if (!cookie.enabled || !cookie.key.trim())
|
|
85
|
+
return false;
|
|
86
|
+
if (cookie.secure && !isSecureRequest)
|
|
87
|
+
return false;
|
|
88
|
+
if (this.hasUnsafeCookieChars(cookie.key) || this.hasUnsafeCookieChars(cookie.value)) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
return true;
|
|
92
|
+
});
|
|
93
|
+
if (cookies.length === 0)
|
|
94
|
+
return null;
|
|
95
|
+
return cookies.map((cookie) => `${cookie.key}=${cookie.value}`).join('; ');
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Upserts or removes cookies from the jar based on Set-Cookie response headers.
|
|
99
|
+
*
|
|
100
|
+
* @param url - Request URL used to resolve the host.
|
|
101
|
+
* @param setCookieHeaders - Set-Cookie header values from the response.
|
|
102
|
+
*/
|
|
103
|
+
captureSetCookies(url, setCookieHeaders) {
|
|
104
|
+
if (!setCookieHeaders?.length)
|
|
105
|
+
return;
|
|
106
|
+
const host = CookieJar.hostFromUrl(url);
|
|
107
|
+
if (!host)
|
|
108
|
+
return;
|
|
109
|
+
const cookieMap = new Map(this.getStoredCookiesForDomain(host).map((cookie) => [cookie.key, cookie]));
|
|
110
|
+
for (const header of setCookieHeaders) {
|
|
111
|
+
const parsed = this.parseSetCookieNameValue(header);
|
|
112
|
+
if (!parsed)
|
|
113
|
+
continue;
|
|
114
|
+
if (this.isSetCookieExpired(header)) {
|
|
115
|
+
cookieMap.delete(parsed.name);
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (this.hasUnsafeCookieChars(parsed.name) || this.hasUnsafeCookieChars(parsed.value)) {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
cookieMap.set(parsed.name, {
|
|
122
|
+
key: parsed.name,
|
|
123
|
+
value: parsed.value,
|
|
124
|
+
enabled: true,
|
|
125
|
+
secure: this.isSetCookieSecure(header)
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
this.setStoredCookiesForDomain(host, Array.from(cookieMap.values()));
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Returns whether a cookie name or value contains characters unsafe for Cookie
|
|
132
|
+
* header serialization, such as control characters or semicolons that could
|
|
133
|
+
* inject attribute-like segments (e.g. `; Secure`).
|
|
134
|
+
*
|
|
135
|
+
* @param value - Cookie name or value to inspect.
|
|
136
|
+
*/
|
|
137
|
+
hasUnsafeCookieChars(value) {
|
|
138
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
139
|
+
const code = value.charCodeAt(index);
|
|
140
|
+
if (code <= 0x1f || code === 0x7f || code === 0x3b) {
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Reads persisted cookies keyed by hostname.
|
|
148
|
+
*/
|
|
149
|
+
getJarMap() {
|
|
150
|
+
const stored = parseJson(this.storage.getSetting(STORE_KEY), {});
|
|
151
|
+
if (!stored || typeof stored !== 'object') {
|
|
152
|
+
return {};
|
|
153
|
+
}
|
|
154
|
+
return stored;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Persists the cookie jar map to the local registry.
|
|
158
|
+
*
|
|
159
|
+
* @param jar - Domain to cookies map.
|
|
160
|
+
*/
|
|
161
|
+
persistJarMap(jar) {
|
|
162
|
+
this.storage.setSetting(STORE_KEY, JSON.stringify(jar));
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Normalizes a hostname for cookie storage lookup.
|
|
166
|
+
*
|
|
167
|
+
* @param domain - Raw hostname or URL host.
|
|
168
|
+
*/
|
|
169
|
+
normalizeDomain(domain) {
|
|
170
|
+
return domain.trim().toLowerCase();
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Filters out rows with both key and value empty.
|
|
174
|
+
*
|
|
175
|
+
* @param cookies - Cookie rows to normalize.
|
|
176
|
+
* @param existing - Previously stored cookies used to preserve the secure flag.
|
|
177
|
+
*/
|
|
178
|
+
normalizeCookieRows(cookies, existing = []) {
|
|
179
|
+
const existingByKey = new Map(existing.map((cookie) => [cookie.key, cookie]));
|
|
180
|
+
return cookies
|
|
181
|
+
.filter((cookie) => cookie.key.trim() || cookie.value.trim())
|
|
182
|
+
.map((cookie) => {
|
|
183
|
+
const key = cookie.key.trim();
|
|
184
|
+
return {
|
|
185
|
+
key,
|
|
186
|
+
value: cookie.value,
|
|
187
|
+
enabled: cookie.enabled !== false,
|
|
188
|
+
secure: existingByKey.get(key)?.secure ?? false
|
|
189
|
+
};
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Returns stored cookies for a hostname, including internal metadata.
|
|
194
|
+
*
|
|
195
|
+
* @param domain - Hostname to query.
|
|
196
|
+
*/
|
|
197
|
+
getStoredCookiesForDomain(domain) {
|
|
198
|
+
const normalized = this.normalizeDomain(domain);
|
|
199
|
+
if (!normalized)
|
|
200
|
+
return [];
|
|
201
|
+
const cookies = this.getJarMap()[normalized];
|
|
202
|
+
if (!Array.isArray(cookies))
|
|
203
|
+
return [];
|
|
204
|
+
return cookies.map((cookie) => ({ ...cookie }));
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Persists stored cookies for a hostname.
|
|
208
|
+
*
|
|
209
|
+
* @param domain - Hostname to update.
|
|
210
|
+
* @param cookies - Cookie rows to store.
|
|
211
|
+
*/
|
|
212
|
+
setStoredCookiesForDomain(domain, cookies) {
|
|
213
|
+
const normalized = this.normalizeDomain(domain);
|
|
214
|
+
if (!normalized)
|
|
215
|
+
return;
|
|
216
|
+
const jar = this.getJarMap();
|
|
217
|
+
if (cookies.length === 0) {
|
|
218
|
+
if (normalized in jar) {
|
|
219
|
+
delete jar[normalized];
|
|
220
|
+
this.persistJarMap(jar);
|
|
221
|
+
}
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
jar[normalized] = cookies;
|
|
225
|
+
this.persistJarMap(jar);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Extracts the URL scheme from a URL string.
|
|
229
|
+
*
|
|
230
|
+
* @param url - Absolute or relative URL.
|
|
231
|
+
* @returns Scheme including trailing colon, or null when parsing fails.
|
|
232
|
+
*/
|
|
233
|
+
schemeFromUrl(url) {
|
|
234
|
+
const trimmed = url.trim();
|
|
235
|
+
if (!trimmed)
|
|
236
|
+
return null;
|
|
237
|
+
try {
|
|
238
|
+
return new URL(trimmed).protocol || null;
|
|
239
|
+
}
|
|
240
|
+
catch {
|
|
241
|
+
try {
|
|
242
|
+
return new URL(`https://${trimmed}`).protocol || null;
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Parses the name and value from a Set-Cookie header value.
|
|
251
|
+
*
|
|
252
|
+
* @param header - Raw Set-Cookie header string.
|
|
253
|
+
*/
|
|
254
|
+
parseSetCookieNameValue(header) {
|
|
255
|
+
const firstSegment = header.split(';')[0]?.trim();
|
|
256
|
+
if (!firstSegment)
|
|
257
|
+
return null;
|
|
258
|
+
const separatorIndex = firstSegment.indexOf('=');
|
|
259
|
+
if (separatorIndex <= 0)
|
|
260
|
+
return null;
|
|
261
|
+
const name = firstSegment.slice(0, separatorIndex).trim();
|
|
262
|
+
if (!name)
|
|
263
|
+
return null;
|
|
264
|
+
return {
|
|
265
|
+
name,
|
|
266
|
+
value: firstSegment.slice(separatorIndex + 1)
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Parses Set-Cookie attributes from a header value.
|
|
271
|
+
*
|
|
272
|
+
* @param header - Raw Set-Cookie header string.
|
|
273
|
+
*/
|
|
274
|
+
parseSetCookieAttributes(header) {
|
|
275
|
+
return header
|
|
276
|
+
.split(';')
|
|
277
|
+
.slice(1)
|
|
278
|
+
.map((part) => part.trim())
|
|
279
|
+
.map((attribute) => {
|
|
280
|
+
const [rawName, ...rawValueParts] = attribute.split('=');
|
|
281
|
+
return {
|
|
282
|
+
name: rawName.trim().toLowerCase(),
|
|
283
|
+
value: rawValueParts.join('=').trim()
|
|
284
|
+
};
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Returns whether a Set-Cookie header indicates the cookie should be deleted.
|
|
289
|
+
*
|
|
290
|
+
* @param header - Raw Set-Cookie header string.
|
|
291
|
+
*/
|
|
292
|
+
isSetCookieExpired(header) {
|
|
293
|
+
for (const attribute of this.parseSetCookieAttributes(header)) {
|
|
294
|
+
if (attribute.name === 'max-age') {
|
|
295
|
+
const maxAge = Number(attribute.value);
|
|
296
|
+
if (Number.isFinite(maxAge) && maxAge <= 0) {
|
|
297
|
+
return true;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
if (attribute.name === 'expires') {
|
|
301
|
+
const expiresAt = Date.parse(attribute.value);
|
|
302
|
+
if (Number.isFinite(expiresAt) && expiresAt <= Date.now()) {
|
|
303
|
+
return true;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
return false;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Returns whether a Set-Cookie header marks the cookie as Secure.
|
|
311
|
+
*
|
|
312
|
+
* @param header - Raw Set-Cookie header string.
|
|
313
|
+
*/
|
|
314
|
+
isSetCookieSecure(header) {
|
|
315
|
+
return this.parseSetCookieAttributes(header).some((attribute) => attribute.name === 'secure');
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
//# sourceMappingURL=CookieJar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieJar.js","sourceRoot":"","sources":["../../src/cookies/CookieJar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,SAAS,GAAG,WAAW,CAAC;AA8B9B;;;GAGG;AACH,MAAM,OAAO,SAAS;IACH,OAAO,CAAmB;IAE3C;;OAEG;IACH,YAAY,OAAyB;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,GAAW;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,OAAO,IAAI,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,MAAc;QAChC,OAAO,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9E,GAAG;YACH,KAAK;YACL,OAAO;SACR,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,MAAc,EAAE,OAAmB;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAChE,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,GAAW;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,eAAe,GAAG,MAAM,KAAK,QAAQ,CAAC;QAE5C,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACrE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YACxD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe;gBAAE,OAAO,KAAK,CAAC;YACpD,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrF,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEtC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,GAAW,EAAE,gBAAsC;QACnE,IAAI,CAAC,gBAAgB,EAAE,MAAM;YAAE,OAAO;QAEtC,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAC3E,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtF,SAAS;YACX,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;gBACzB,GAAG,EAAE,MAAM,CAAC,IAAI;gBAChB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;OAMG;IACK,oBAAoB,CAAC,KAAa;QACxC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,SAAS;QACf,MAAM,MAAM,GAAG,SAAS,CACtB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAClC,EAAE,CACH,CAAC;QACF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,GAAmC;QACvD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,MAAc;QACpC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,CAAC,OAAmB,EAAE,WAA2B,EAAE;QAC5E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAE9E,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5D,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO;gBACL,GAAG;gBACH,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,KAAK;gBACjC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK;aAChD,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACK,yBAAyB,CAAC,MAAc;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QAEvC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACK,yBAAyB,CAAC,MAAc,EAAE,OAAuB;QACvE,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;gBACtB,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO;QACT,CAAC;QAED,GAAG,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,GAAW;QAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,OAAO,IAAI,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,uBAAuB,CAAC,MAAc;QAC5C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAE/B,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,cAAc,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAErC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;SAC9C,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,wBAAwB,CAAC,MAAc;QAC7C,OAAO,MAAM;aACV,KAAK,CAAC,GAAG,CAAC;aACV,KAAK,CAAC,CAAC,CAAC;aACR,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YACjB,MAAM,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzD,OAAO;gBACL,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;gBAClC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;aACtC,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CAAC,MAAc;QACvC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;oBAC3C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;oBAC1D,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,MAAc;QACtC,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAChG,CAAC;CACF"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { buildTeamHubJoinUrl as buildApiTeamHubJoinUrl, summarizeInvitationAccess, type InvitationLinkParams } from '@harborclient/team-hub-api';
|
|
2
|
+
/**
|
|
3
|
+
* Custom URL scheme registered by HarborClient for deep links from the web.
|
|
4
|
+
*/
|
|
5
|
+
export declare const HARBOR_PROTOCOL = "harborclient";
|
|
6
|
+
export { buildApiTeamHubJoinUrl as buildTeamHubJoinUrl, summarizeInvitationAccess, type InvitationLinkParams };
|
|
7
|
+
/**
|
|
8
|
+
* Parsed HarborClient deep-link action dispatched to the renderer.
|
|
9
|
+
*/
|
|
10
|
+
export type HarborDeepLink = {
|
|
11
|
+
action: 'install-plugin';
|
|
12
|
+
pluginId: string;
|
|
13
|
+
} | {
|
|
14
|
+
action: 'install-theme';
|
|
15
|
+
pluginId: string;
|
|
16
|
+
} | {
|
|
17
|
+
action: 'install-snippet';
|
|
18
|
+
pluginId: string;
|
|
19
|
+
} | {
|
|
20
|
+
action: 'open-run-results';
|
|
21
|
+
uuid: string;
|
|
22
|
+
} | TeamHubJoinDeepLinkPayload;
|
|
23
|
+
/**
|
|
24
|
+
* Parsed Team Hub join payload carried by HTTPS invite links and deep links.
|
|
25
|
+
*/
|
|
26
|
+
export interface TeamHubJoinDeepLinkPayload {
|
|
27
|
+
action: 'join-team-hub';
|
|
28
|
+
baseUrl: string;
|
|
29
|
+
code: string;
|
|
30
|
+
name?: string;
|
|
31
|
+
role?: 'admin' | 'user';
|
|
32
|
+
expiresAt?: string;
|
|
33
|
+
hubName?: string;
|
|
34
|
+
accessSummary?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parses an HTTPS or harborclient:// Team Hub invite link into a join payload.
|
|
38
|
+
*
|
|
39
|
+
* @param url - Raw invite link pasted by the user or opened from a browser.
|
|
40
|
+
* @returns Parsed join payload, or null when invalid.
|
|
41
|
+
*/
|
|
42
|
+
export declare function parseTeamHubInviteLink(url: string): TeamHubJoinDeepLinkPayload | null;
|
|
43
|
+
/**
|
|
44
|
+
* Parses a harborclient:// URL into a supported deep-link action.
|
|
45
|
+
*
|
|
46
|
+
* Only plugin ids from the query string are trusted; repository URLs must be
|
|
47
|
+
* resolved from the curated marketplace catalog inside the app.
|
|
48
|
+
*
|
|
49
|
+
* @param url - Raw URL from the OS protocol handler or launch argv.
|
|
50
|
+
* @returns Parsed action, or null when the URL is unsupported or invalid.
|
|
51
|
+
*/
|
|
52
|
+
export declare function parseHarborDeepLink(url: string): HarborDeepLink | null;
|
|
53
|
+
/**
|
|
54
|
+
* Builds a harborclient:// install URL for one marketplace plugin id.
|
|
55
|
+
*
|
|
56
|
+
* @param pluginId - Catalog plugin manifest id.
|
|
57
|
+
* @returns Deep-link URL suitable for docs and external links.
|
|
58
|
+
*/
|
|
59
|
+
export declare function buildPluginInstallDeepLink(pluginId: string): string;
|
|
60
|
+
/**
|
|
61
|
+
* Builds a harborclient:// install URL for one marketplace theme id.
|
|
62
|
+
*
|
|
63
|
+
* @param pluginId - Catalog theme manifest id.
|
|
64
|
+
* @returns Deep-link URL suitable for docs and external links.
|
|
65
|
+
*/
|
|
66
|
+
export declare function buildThemeInstallDeepLink(pluginId: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* Builds a harborclient:// install URL for one marketplace snippet bundle id.
|
|
69
|
+
*
|
|
70
|
+
* @param pluginId - Catalog snippet bundle manifest id.
|
|
71
|
+
* @returns Deep-link URL suitable for docs and external links.
|
|
72
|
+
*/
|
|
73
|
+
export declare function buildSnippetInstallDeepLink(pluginId: string): string;
|
|
74
|
+
/**
|
|
75
|
+
* Builds a harborclient:// run-results URL for one saved snapshot UUID.
|
|
76
|
+
*
|
|
77
|
+
* @param uuid - Stable run result UUID from storage or a Team Hub share link.
|
|
78
|
+
* @returns Deep-link URL suitable for clipboard copy and external links.
|
|
79
|
+
*/
|
|
80
|
+
export declare function buildRunResultsDeepLink(uuid: string): string;
|
|
81
|
+
/**
|
|
82
|
+
* Builds a harborclient:// join URL for one Team Hub onboarding invitation.
|
|
83
|
+
*
|
|
84
|
+
* @param params - Invitation link parameters including display metadata.
|
|
85
|
+
* @returns Deep-link URL suitable for launching HarborClient.
|
|
86
|
+
*/
|
|
87
|
+
export declare function buildTeamHubJoinDeepLink(params: InvitationLinkParams): string;
|
|
88
|
+
/**
|
|
89
|
+
* Returns true when a join payload includes enough display metadata to skip preview.
|
|
90
|
+
*
|
|
91
|
+
* @param payload - Parsed join payload from an invite link.
|
|
92
|
+
*/
|
|
93
|
+
export declare function hasTeamHubJoinDisplayMetadata(payload: {
|
|
94
|
+
name?: string;
|
|
95
|
+
role?: 'admin' | 'user';
|
|
96
|
+
expiresAt?: string;
|
|
97
|
+
}): boolean;
|
|
98
|
+
//# sourceMappingURL=deepLink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepLink.d.ts","sourceRoot":"","sources":["../src/deepLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,IAAI,sBAAsB,EAM7C,yBAAyB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,4BAA4B,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAE9C,OAAO,EACL,sBAAsB,IAAI,mBAAmB,EAC7C,yBAAyB,EACzB,KAAK,oBAAoB,EAC1B,CAAC;AAIF;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB;IACE,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd,GACD,0BAA0B,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAkHD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI,CAuBrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAwBtE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAE7E;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAEV"}
|
package/dist/deepLink.js
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { buildTeamHubJoinDeepLink as buildApiTeamHubJoinDeepLink, buildTeamHubJoinUrl as buildApiTeamHubJoinUrl, isInvitationCodeFormat, isTeamHubBaseUrl, normalizeTeamHubBaseUrl, parseTeamHubJoinDeepLink as parseApiTeamHubJoinDeepLink, parseTeamHubJoinUrl, summarizeInvitationAccess } from '@harborclient/team-hub-api';
|
|
2
|
+
/**
|
|
3
|
+
* Custom URL scheme registered by HarborClient for deep links from the web.
|
|
4
|
+
*/
|
|
5
|
+
export const HARBOR_PROTOCOL = 'harborclient';
|
|
6
|
+
export { buildApiTeamHubJoinUrl as buildTeamHubJoinUrl, summarizeInvitationAccess };
|
|
7
|
+
const PLUGIN_MANIFEST_ID_PATTERN = /^[a-zA-Z][a-zA-Z0-9.-]*\.[a-zA-Z][a-zA-Z0-9.-]+$/;
|
|
8
|
+
const RUN_RESULT_UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
9
|
+
/**
|
|
10
|
+
* Returns whether a string is a valid plugin manifest id.
|
|
11
|
+
*
|
|
12
|
+
* @param value - Candidate plugin id from a deep-link query parameter.
|
|
13
|
+
*/
|
|
14
|
+
function isPluginManifestId(value) {
|
|
15
|
+
return value.length >= 3 && PLUGIN_MANIFEST_ID_PATTERN.test(value);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parses an install deep link for plugins or themes when the host and path match.
|
|
19
|
+
*
|
|
20
|
+
* @param parsed - Parsed harborclient:// URL.
|
|
21
|
+
* @param hostname - Expected URL hostname (`plugin`, `theme`, or `snippet`).
|
|
22
|
+
* @param action - Deep-link action to return when valid.
|
|
23
|
+
* @returns Parsed install action, or null when invalid.
|
|
24
|
+
*/
|
|
25
|
+
function parseInstallDeepLink(parsed, hostname, action) {
|
|
26
|
+
if (parsed.hostname !== hostname || parsed.pathname !== '/install') {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const pluginId = parsed.searchParams.get('id')?.trim();
|
|
30
|
+
if (!pluginId || !isPluginManifestId(pluginId)) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
return { action, pluginId };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parses a harborclient://run/<uuid> deep link when the host and path match.
|
|
37
|
+
*
|
|
38
|
+
* @param parsed - Parsed harborclient:// URL.
|
|
39
|
+
* @returns Parsed open-run-results action, or null when invalid.
|
|
40
|
+
*/
|
|
41
|
+
function parseRunResultsDeepLink(parsed) {
|
|
42
|
+
if (parsed.hostname !== 'run') {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
const uuid = parsed.pathname.replace(/^\/+/, '').trim();
|
|
46
|
+
if (!uuid || !RUN_RESULT_UUID_PATTERN.test(uuid)) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
return { action: 'open-run-results', uuid };
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Maps shared invitation link parameters into a renderer join payload.
|
|
53
|
+
*
|
|
54
|
+
* @param params - Parsed invitation link parameters.
|
|
55
|
+
*/
|
|
56
|
+
function mapInvitationLinkParams(params) {
|
|
57
|
+
return {
|
|
58
|
+
action: 'join-team-hub',
|
|
59
|
+
baseUrl: params.baseUrl,
|
|
60
|
+
code: params.code,
|
|
61
|
+
name: params.name,
|
|
62
|
+
role: params.role,
|
|
63
|
+
expiresAt: params.expiresAt,
|
|
64
|
+
hubName: params.hubName,
|
|
65
|
+
accessSummary: params.accessSummary
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Parses a legacy harborclient:// join deep link that only includes url and code.
|
|
70
|
+
*
|
|
71
|
+
* @param parsed - Parsed harborclient:// URL.
|
|
72
|
+
*/
|
|
73
|
+
function parseLegacyTeamHubJoinDeepLink(parsed) {
|
|
74
|
+
if (parsed.hostname !== 'team-hub' || parsed.pathname !== '/join') {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
const baseUrl = parsed.searchParams.get('url')?.trim();
|
|
78
|
+
const code = parsed.searchParams.get('code')?.trim();
|
|
79
|
+
if (!baseUrl || !code || !isTeamHubBaseUrl(baseUrl) || !isInvitationCodeFormat(code)) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
action: 'join-team-hub',
|
|
84
|
+
baseUrl: normalizeTeamHubBaseUrl(baseUrl),
|
|
85
|
+
code
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Parses a harborclient://team-hub/join deep link when the host and path match.
|
|
90
|
+
*
|
|
91
|
+
* @param parsed - Parsed harborclient:// URL.
|
|
92
|
+
* @returns Parsed join-team-hub action, or null when invalid.
|
|
93
|
+
*/
|
|
94
|
+
function parseTeamHubJoinDeepLink(parsed) {
|
|
95
|
+
const full = parseApiTeamHubJoinDeepLink(parsed.toString());
|
|
96
|
+
if (full) {
|
|
97
|
+
return mapInvitationLinkParams(full);
|
|
98
|
+
}
|
|
99
|
+
return parseLegacyTeamHubJoinDeepLink(parsed);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Parses an HTTPS or harborclient:// Team Hub invite link into a join payload.
|
|
103
|
+
*
|
|
104
|
+
* @param url - Raw invite link pasted by the user or opened from a browser.
|
|
105
|
+
* @returns Parsed join payload, or null when invalid.
|
|
106
|
+
*/
|
|
107
|
+
export function parseTeamHubInviteLink(url) {
|
|
108
|
+
const trimmed = url.trim();
|
|
109
|
+
if (!trimmed) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
const httpsParams = parseTeamHubJoinUrl(trimmed);
|
|
113
|
+
if (httpsParams) {
|
|
114
|
+
return mapInvitationLinkParams(httpsParams);
|
|
115
|
+
}
|
|
116
|
+
let parsed;
|
|
117
|
+
try {
|
|
118
|
+
parsed = new URL(trimmed);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
if (parsed.protocol !== `${HARBOR_PROTOCOL}:`) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
return parseTeamHubJoinDeepLink(parsed);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Parses a harborclient:// URL into a supported deep-link action.
|
|
130
|
+
*
|
|
131
|
+
* Only plugin ids from the query string are trusted; repository URLs must be
|
|
132
|
+
* resolved from the curated marketplace catalog inside the app.
|
|
133
|
+
*
|
|
134
|
+
* @param url - Raw URL from the OS protocol handler or launch argv.
|
|
135
|
+
* @returns Parsed action, or null when the URL is unsupported or invalid.
|
|
136
|
+
*/
|
|
137
|
+
export function parseHarborDeepLink(url) {
|
|
138
|
+
const trimmed = url.trim();
|
|
139
|
+
if (!trimmed) {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
let parsed;
|
|
143
|
+
try {
|
|
144
|
+
parsed = new URL(trimmed);
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
if (parsed.protocol !== `${HARBOR_PROTOCOL}:`) {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
return (parseInstallDeepLink(parsed, 'plugin', 'install-plugin') ??
|
|
153
|
+
parseInstallDeepLink(parsed, 'theme', 'install-theme') ??
|
|
154
|
+
parseInstallDeepLink(parsed, 'snippet', 'install-snippet') ??
|
|
155
|
+
parseRunResultsDeepLink(parsed) ??
|
|
156
|
+
parseTeamHubJoinDeepLink(parsed));
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Builds a harborclient:// install URL for one marketplace plugin id.
|
|
160
|
+
*
|
|
161
|
+
* @param pluginId - Catalog plugin manifest id.
|
|
162
|
+
* @returns Deep-link URL suitable for docs and external links.
|
|
163
|
+
*/
|
|
164
|
+
export function buildPluginInstallDeepLink(pluginId) {
|
|
165
|
+
return `${HARBOR_PROTOCOL}://plugin/install?id=${encodeURIComponent(pluginId)}`;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Builds a harborclient:// install URL for one marketplace theme id.
|
|
169
|
+
*
|
|
170
|
+
* @param pluginId - Catalog theme manifest id.
|
|
171
|
+
* @returns Deep-link URL suitable for docs and external links.
|
|
172
|
+
*/
|
|
173
|
+
export function buildThemeInstallDeepLink(pluginId) {
|
|
174
|
+
return `${HARBOR_PROTOCOL}://theme/install?id=${encodeURIComponent(pluginId)}`;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Builds a harborclient:// install URL for one marketplace snippet bundle id.
|
|
178
|
+
*
|
|
179
|
+
* @param pluginId - Catalog snippet bundle manifest id.
|
|
180
|
+
* @returns Deep-link URL suitable for docs and external links.
|
|
181
|
+
*/
|
|
182
|
+
export function buildSnippetInstallDeepLink(pluginId) {
|
|
183
|
+
return `${HARBOR_PROTOCOL}://snippet/install?id=${encodeURIComponent(pluginId)}`;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Builds a harborclient:// run-results URL for one saved snapshot UUID.
|
|
187
|
+
*
|
|
188
|
+
* @param uuid - Stable run result UUID from storage or a Team Hub share link.
|
|
189
|
+
* @returns Deep-link URL suitable for clipboard copy and external links.
|
|
190
|
+
*/
|
|
191
|
+
export function buildRunResultsDeepLink(uuid) {
|
|
192
|
+
return `${HARBOR_PROTOCOL}://run/${encodeURIComponent(uuid)}`;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Builds a harborclient:// join URL for one Team Hub onboarding invitation.
|
|
196
|
+
*
|
|
197
|
+
* @param params - Invitation link parameters including display metadata.
|
|
198
|
+
* @returns Deep-link URL suitable for launching HarborClient.
|
|
199
|
+
*/
|
|
200
|
+
export function buildTeamHubJoinDeepLink(params) {
|
|
201
|
+
return buildApiTeamHubJoinDeepLink(params);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Returns true when a join payload includes enough display metadata to skip preview.
|
|
205
|
+
*
|
|
206
|
+
* @param payload - Parsed join payload from an invite link.
|
|
207
|
+
*/
|
|
208
|
+
export function hasTeamHubJoinDisplayMetadata(payload) {
|
|
209
|
+
return Boolean(payload.name && payload.role && payload.expiresAt);
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=deepLink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepLink.js","sourceRoot":"","sources":["../src/deepLink.ts"],"names":[],"mappings":"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"}
|